我的工作方式稍微有些不同(但它的工作原理),但我发布这个主要原因是因为我想知道我的公式的第二部分是否可以以某种方式制作成数组公式,从而使其更短。
为此,将列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<>""))
但它似乎在计算“香蕉”作为一个合法的条目出于某种原因。因此,我必须手动输入第二部分中的所有元素,而不是使用数组公式。任何人都有如何完成这个任务的想法?
ADO怎么样? chr – Fionnuala 2011-02-23 15:45:46
有趣的问题+1 – momobo 2011-02-24 07:24:26