【问题标题】:Display Count of records in excel在excel中显示记录数
【发布时间】:2021-11-27 13:02:46
【问题描述】:

我在一张excel表格中有以下数据

  Error Code                         type   object
-Ignored:31 Modified src data       *file   MINOSFIC/UTMNUP10
-Ignored:33 Modified src & 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

请在执行此操作时需要帮助

【问题讨论】:

  • 那么你的代码哪里出了问题?
  • 您可以使用COUNTIFS 和通配符*
  • @BigBen:如果我没记错的话,COUNTIFS 是一个 excel 函数吗?我需要使用 powershell 来完成。我会得到的。但是如何将其放入现有的 Excel 工作表中是个问题

标签: excel powershell


【解决方案1】:

如果您不想使用 Excel 函数 COUNTIFS 执行此操作,我建议只需将该 Excel 文件导出为 CSV 文件,这样在 PowerShell 中的操作会容易得多。

CSV 文件示例

Error Code,type,object
-Ignored:31 Modified src data,*file,MINOSFIC/UTMNUP10
-Ignored:33 Modified src & 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 文件复制/粘贴到您喜欢的任何位置。

请注意,这不符合您已有的列..

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-08
    • 2016-11-07
    • 2021-01-07
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-19
    相关资源
    最近更新 更多