我试图让Excel通过对两个数组进行或运算来使我成为一个数组。例如,让两个数组A1:A378-3B1:B34-8-8

这应该很简单,但是看起来

OR ( A1:A3 > 0 ; B1:B3 > 0 )

返回TRUE而不是我期望的数组(TRUE, TRUE, FALSE)

当然,我可以使用像
(((A1:A3 > 0)*1 + (B1:B3 > 0)*1) >= 1) *1

但是谁愿意维持呢?

另外,在“CSE(Ctrl + Shift + Enter)公式”(http://www.mrexcel.com/articles/CSE-array-formulas-excel.php)周围可能需要搜索一些内容,但实际上看起来像是黑魔法。

我错过了一些简单的事情吗?

对于那些对此感到好奇的人,我尝试构建的实际公式当然要复杂一些。它试图(通过SUMPRODUCT)计算(status == A OR status == B) AND Date = some cell的所有行。我要查找的OR只是我的SUMPRODUCT的一个数组,并且没有在单元格中定义(这太容易了)。

最佳答案

您通常不能在“数组公式”中使用OR或AND,因为,正如您在此处发现的那样,它们仅返回单个结果(仅当所有条件为TRUE时,AND才为TRUE;或者,如果所有条件为TRUE,则AND为TRUE,就像您将预期,因此在您的示例中,只要6个值中的至少一个为正,您就将获得TRUE。

我会使用与您的建议类似的方法,有效地使用+代替OR,尽管您不需要前两个* 1,因为+可以强制执行,因此就足够了
=((A1:A3 > 0) + (B1:B3 > 0) >0) *1
尽管如果您只有一个可以是一件事或另一件事的列,那么那肯定是互斥的,所以也许这只需要
=(A1:A3="A")+(A1:A3="B")

关于arrays - 如何在Excel中将逻辑或应用于数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10130598/

10-16 17:18