我有多个使用相同ID值的表,但为其分配了不同的项目和描述。 ID顺序是固定的,并且在所有表中都是相同的。
我想做的是找出所有表中哪些表行都相同。
A B C D E F G H I
1 H1 H2 H3 H1 H2 H3 H1 H2 H3
-- -- -- -- -- -- -- -- --
2 1 a a+ 1 a a+ 1 c c+ FALSE
3 2 b b+ 2 b b+ 2 b b+ TRUE
4 3 c c+ 3 x x+ 3 a a+ FALSE
H1 = ID, same values and order in all tables
H2 = item; order varies by table
H3 = item description; items & descriptions come in fixed pairs
到目前为止,我所做的是将它们彼此相邻放置,并且我在最后一栏中使用以下公式:
=SUMPRODUCT(ABS(COUNTIF(A2:I2; A2:I2) - 3)) = 0
COUNTIF
返回整个多表行的数组,其中包含同一行中每个单元格值出现的次数。对于示例中的三个表,这将是每行每个单元格三个重复,即[3,3,3, 3,3,3, 3,3,3]
。
对于具有匹配表值的行,-3
部分将数组[0,0,0, 0,0,0, 0,0,0]
归零。
ABS
从上一步引起的数组中任何潜在负数中减去负号。这样可以确保在最后一步中,只有重复行数组的总和可以等于零,而所有其他数组的总和都可以为> 0。
SUMPRODUCT
对数组求和,然后返回一个可以与零进行比较的值,第二步保证了当前行中所有表的值都匹配。 (实际上,简单的SUM
是更简单的选择,但由于某些原因,与SUMPRODUCT
不同,输入公式时需要Ctrl + Shift + Enter。)
是否可以使用更简单的公式或布局来解决此问题?