Excel如何比较2列范围

时间:2018-03-09 07:56:07

标签: excel excel-formula comparison

我想在Excel中比较两组列范围。

我知道标准比较公式:

EG。 =(A1=E1)

我正在寻找的是以下公式的替代品 =AND(A1=E1,B1=F1,C1=G1)

由于列数很大,我在想是否可以使用单元格范围。

3 个答案:

答案 0 :(得分:1)

=SUMPRODUCT(PRODUCT(--(A1:D1=E1:H1)))

SUMPRODUCT是强制它评估为数组公式

PRODUCT将所有值相乘

--TRUE转换为1,将FALSE转换为0

A1:D1=E1:H1,作为数组公式进行评估,给出数组{A1=E1,B1=F1,C1=G1,D1=H1}

因此,数组计算为TRUEFALSE的列表。 --会将此转换为10的列表,PRODUCT将列表中的所有值相乘。 (10的乘法与ANDTRUE的乘法相同 - 如果您使用"评估公式",你可以一步一步地看着它发生

{EDIT} 正如Tom Sharpe在回答中指出的那样,我对此略微过分复杂 - 您可以使用FALSE代替AND,像这样: PRODUCT

答案 1 :(得分:1)

比@Chronocidal慢一点,只是为了观察

=AND(A1:C1=E1:G1)
如果使用

作为数组公式输入,

也有效

控制 输入

答案 2 :(得分:0)

也许,

=a1&b1&c1=e1&f1&g1

较大的范围可以使用较新的处理。

=textjoin("", true, a1:c1)=textjoin("", true, e1:g1)

如果您没有较新的TextJoin函数,可以使用快速VBA UDF(用户定义函数)代替。

function tj(rng as range, optional delim as string = ";") as string
   dim val as range, str as string
   for each val in rng
       str = str & delim & val.value2
   next val
   tj = mid(str, len(delim)+1)
end function