Excel中数组成员的AND比较

时间:2017-10-31 04:03:52

标签: arrays excel excel-formula comparison

我遇到的情况是我根据需要比较的数据条件创建多个数组。

例如,考虑这组数据(在单元格中):

A1: ASD
A2: ASF
A3: 
A4: NOTTHISONE

然后我施加了两个条件:

NOT(ISBLANK(A1:A4) and;
LEN(A1:A4)<4

返回以下各自的数组

{TRUE,TRUE,FALSE,TRUE} and;
{TRUE,TRUE,TRUE,FALSE}

然后我希望对这些数组的VALUES进行AND比较(不比较完整的数组)。这应该产生:

{TRUE,TRUE,FALSE,FALSE}

但是使用AND()或'='似乎将两个数组作为完整对象进行比较,因此返回false(如{TRUE,TRUE,FALSE,TRUE}!= {TRUE,TRUE,TRUE,FALSE})。< / p>

有没有办法实现我正在寻找的比较?

1 个答案:

答案 0 :(得分:0)

在Excel(以及相当多的编程语言)中,&#39; True&#39;也可以表示为&#39; 1&#39;同样,&#39; False&#39;通过&#39; 0&#39;。

此外,&#39; AND&#39;相当于乘法,&#39; OR&#39;添加(您可以查看按位运算AND和OR,如果您愿意)。

考虑到这两个,您可以使用乘法从您拥有的两个公式中获取数组:

=NOT(ISBLANK(A1:A4))*(LEN(A1:A4)<4)

现在,上面的内容并没有完全给你一个真假的数组,而不是因为它无论如何,因为excel看到公式的结果会进入一个单元格,而一个单元格不能包含一个数组。

如果你把它放在一个可以使用和使用数组的公式中......但是...

=INDEX(NOT(ISBLANK(A1:A4))*(LEN(A1:A4)<4),0,0)

enter image description here

这里我提到的第一句话适用。您可以看到结果为{1;1;0;0},换句话说,True,true,false,false。