#excel #powershell
Вопрос:
У меня есть следующие данные на одном листе Excel
Error Code type object
-Ignored:31 Modified src data *file MINOSFIC/UTMNUP10
-Ignored:33 Modified src amp; tgt data *file MINOSFIC/UVEGAP10
*Error: 08 Different data *file MINOSFIC/VM010P50
Мне нужно подсчитать записи на основе кода ошибки и поместить данные в тот же лист
ErrorCode Count
Ignored 2
Error 1
Я пробовал сводную таблицу, но, похоже, не могу использовать ее в существующем листе Excel.
Обновить:
Я могу получить подсчет, используя приведенный ниже код, но мне нужна помощь, чтобы поместить его в таблицу Excel в какой-либо таблице или каким-либо другим способом
$Excel = Import-Excel -Path "C:Verify.xlsx" -WorksheetName "EDH_VFN"
$err = 0
$ign = 0
foreach($line in $Excel )
{
$line_1 = $line.'Error Code'
if($line_1 -match "Ignored")
{
$ign =1
}
if($line_1 -match "Error")
{
$err =1
}
}
write-host "Error:"$err
write-host "Ignored:"$ign
Пожалуйста, вам нужна помощь в этом
Комментарии:
1. Итак, где у вас возникли проблемы с вашим кодом?
2. Вы можете использовать
COUNTIFS
с подстановочными*
знаками .3. @BigBen: COUNTIFS-это функция excel, если я не ошибаюсь? Мне нужно сделать это с помощью powershell. Посчитайте, что я получу . но как поместить это в существующий лист Excel, вот в чем проблема
Ответ №1:
Если вы не хотите делать это с помощью функции Excel COUNTIFS
, я бы предложил просто экспортировать этот файл Excel в файл CSV, что значительно упрощает работу в PowerShell.
Пример файла CSV
Error Code,type,object
-Ignored:31 Modified src data,*file,MINOSFIC/UTMNUP10
-Ignored:33 Modified src amp; tgt data,*file,MINOSFIC/UVEGAP10
*Error: 08 Different data,*file,MINOSFIC/VM010P50
Как только вы это сделаете, получение значений количества можно будет выполнить следующим образом:
Import-Csv -Path 'X:TheExcelToCsvExportedFile.csv' |
Group-Object @{Expression = {($_.'Error Code' -split ':')[0].Substring(1)}} |
Select-Object @{Name = 'ErrorCode' ; Expression = {$_.Name}},Count
Это выведет:
ErrorCode Count
---------- -----
Ignored 2
Error 1
вы можете просто скопировать/вставить свой файл Excel в любое удобное для вас место.
Однако будьте осторожны, чтобы это не соответствовало столбцам, которые у вас там уже есть..