计算列中唯一值的数量,仅在其他列中的值大于0时才添加

时间:2017-11-06 20:16:54

标签: excel excel-formula

考虑下表:

enter image description here

我希望计算唯一的ITEM出现次数,但只有当项目的数量大于0时才会添加。

所以在这种情况下,公式应该返回B,C和D = 3

在另一个例子中,B的数量已经改变,但结果应该仍然是3,因为我希望仅对“Item”列中的唯一值求和。

enter image description here

我试图摆弄这个公式,但无法想出如何添加“数量> 0”条件:

=SUMPRODUCT((A1:A7<>"")/COUNTIF(A1:A7;A1:A7&""))

这将返回唯一值的数量而不考虑数量。

没有VBA,我的目标是否可行?

注意: 表在某些数量单元格中有空白和文本值。公式应忽略这些行。

2 个答案:

答案 0 :(得分:1)

=SUM(IF(FREQUENCY(IF(LEN(IF(IF(ISNUMBER(Quantity),Quantity,0)>0,Item,""))>0,MATCH(Item,Item,0)),
IF(LEN(IF(IF(ISNUMBER(Quantity),Quantity,0)>0,Item,""))>0,MATCH(Item,Item,0),""))>0,1))

这是一个数组公式,所以应该通过按 Ctrl + Shift 确认,同时按 Enter < / p>

应该处理B列中的空白和文本。

答案 1 :(得分:1)

即使文本或空白在数量列

中,此公式也应该有效

=SUM(IF(FREQUENCY(IF(ISNUMBER(Quantity)*(Quantity>0),MATCH(Item,Item,0)),ROW(Item)-MIN(ROW(Item))+1),1))

使用 CTRL + SHIFT确认 + ENTER