我想在Excel中比较两组列范围。
我知道标准比较公式:
EG。 =(A1=E1)
我正在寻找的是以下公式的替代品
=AND(A1=E1,B1=F1,C1=G1)
由于列数很大,我在想是否可以使用单元格范围。
答案 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}
因此,数组计算为TRUE
和FALSE
的列表。 --
会将此转换为1
和0
的列表,PRODUCT
将列表中的所有值相乘。 (1
和0
的乘法与AND
和TRUE
的乘法相同 - 如果您使用"评估公式",你可以一步一步地看着它发生
{EDIT} 正如Tom Sharpe在回答中指出的那样,我对此略微过分复杂 - 您可以使用FALSE
代替AND
,像这样:
PRODUCT
答案 1 :(得分:1)
比@Chronocidal慢一点,只是为了观察
=AND(A1:C1=E1:G1)
如果使用作为数组公式输入,也有效
控制 移 输入
答案 2 :(得分:0)
也许,
=a1&b1&c1=e1&f1&g1
较大的范围可以使用较新的textjoin处理。
=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