Powershell根据过滤值计算一列中的单元格

时间:2013-09-17 18:27:45

标签: excel powershell colors

我的excel电子表格有11028行和两列。

第一列有组织单位,第二列有值。

在Excel中,我可以过滤第一列,以便有大约100个不同的组织单位。对于每个组织单位,我想计算(1)总行数(2)行数值为“未知”。

如果我手动执行此操作,将需要永远,因此我在powershell中寻找某种API,这将允许我根据A列中设置的过滤器计算B列中的行数。

这在Powershell中甚至可能吗?

2 个答案:

答案 0 :(得分:3)

尝试使用Excel。

如果您复制包含组织单位的列,并在其上使用删除重复项功能,则最终会得到一个包含组织单位唯一条目的列。然后,您只需要两个简单的公式:COUNTIF()COUNTIFS()

对于每个单位部门:

1)总行数

假设列A是您的组织单位(原始),而列D是您的唯一条目:

=COUNTIF($A$1:$A$10,D1)

这是:

=COUNTIF(organisational unit range, particular organisational unit)

示例布局,显示了计算A列中元素的公式

Count of unique entries in column A

2)值为"Unknown"

的行数

为此,您可以使用COUNTIFS(),它采用多个标准。

假设列B具有您的值,其中一些值为"Unknown"

=COUNTIFS($A$1:$A$10,D1,$B$1:$B$10,"Unknown")

这是:

=COUNTIFS(organisational unit range, particular organisational unit, value range, "Unknown")

显示Unknown

的多个条件匹配的示例

Count of entries matching "Unknown"

答案 1 :(得分:2)

$data = @"
Field1, Field2
a,1
b,2
c,3
a,Unknown
b,5
c,Unknown
a,7
b,8
c,Unknown
c,10
"@ | ConvertFrom-Csv

'Total Rows'
$data | group field1 -NoElement
'Total Rows with Unknown'
$data | Where {$_.field2 -eq 'unknown'} | group field1 -NoElement

打印

Total Rows

Count Name                     
----- ----                     
    3 a                        
    3 b                        
    4 c                        

Total Rows with Unknown

Count Name                     
----- ----                     
    1 a                        
    2 c