Excel - 计算满足多个条件的唯一值

时间:2011-02-23 15:21:43

标签: excel-formula

我正在尝试使用一个函数来计算电子表格中唯一单元格的数量,同时满足多个条件。

给出以下示例:

A        B       C
QUANT    STORE#  PRODUCT
1        75012   banana
5                orange
6        56089   orange
3        89247   orange
7        45321   orange
2                apple
4        45321   apple

在上面的示例中,我需要知道有多少具有有效STORE#的唯一商店已收到橙子或苹果。在上面的例子中,结果应该是3(存储56089,89247和45321)。

这就是我开始尝试解决问题的方法:

=SUM(IF(FREQUENCY(B2:B9,B2:B9)>0,1))

以上公式将产生具有有效商店#的唯一商店的数量,但不仅仅是已收到橙子或苹果的商店。如何添加额外标准?

1 个答案:

答案 0 :(得分:1)

我的做法略有不同(并且有效),但我发布这个的主要原因是因为我想知道我的公式的第二部分是否可以以某种方式被制作成数组公式,从而缩短它。 / p>

为此,将B列上的3列从最小到最大排序,因为它的一部分当前是数组公式,请在公式中键入[ctrl] + [shift] + [enter]。排序后的数据现在如下所示:

  A     B       C
QUANT   STORE#  PRODUCT
  7   45321   orange
  4   45321   apple
  6   56089   orange
  1   75012   banana
  3   89247   orange
  5           orange
  2           apple

公式是:

={SUM((B3:B9>0)*(C3:C9="orange"))+SUM((B3:B9>0)*(C3:C9="apple"))}-{IF(AND(OR(C3="orange",C3="apple"),OR(C4="orange",C4="apple"),B3=B4),1,0)+IF(AND(OR(C4="orange",C4="apple"),OR(C5="orange",C5="apple"),B4=B5),1,0)+IF(AND(OR(C5="orange",C5="apple"),OR(C6="orange",C6="apple"),B5=B6),1,0)+IF(AND(OR(C6="orange",C6="apple"),OR(C7="orange",C7="apple"),B6=B7),1,0)}

第一部分(花括号)非常明显:

SUM((B3:B9>0)*(C3:C9="orange"))+SUM((B3:B9>0)*(C3:C9="apple")) 

我感兴趣的是试图看第二部分是否可以表示为数组公式。我最初想出来了

=SUM((AND((C3:C9="orange"),OR(C4:C9="orange",C4:C9="apple")))*(B3:B9=B4:B10)*(B3:B9<>""))

但由于某种原因,它似乎将“香蕉”视为合法的条目。因此,我必须手动输入第二部分中的所有元素,而不是使用数组公式。任何人都有关于如何完成这项工作的想法?