首页 > 解决方案 > 条件格式以突出显示跨多列获取的重复项

问题描述

我有一张工作表,如果它们在多个列中相同,我需要在其中突出显示第二个重复项。

Sl. No.     Name    Age     Target(Millions)
1           ABC     30      2.3
2           DEF     40      1.3
3           ABC     30      4.3
4           GHI     44      0.3
5           JKL     33      6.3

例如,序列号 3 列名称和年龄将被突出显示,因为它与序列号 1 名称和年龄重复

请注意,并非两行都被突出显示。

我试过了

=AND(countif($B$2:$C,B2)>1, countif($B$2:$C,C2)>1)

标签: google-sheetsconditional-formatting

解决方案


这应该这样做。如果您想添加更多列,我使其可扩展:

=ROWS(QUERY(ArrayFormula(TO_TEXT(ARRAY_CONSTRAIN($A:$D, ROW()-1, COUNTA(1:1)))), "select "&JOIN(",", ArrayFormula("Col"&({2,3})))&" where "&JOIN(" and ", ArrayFormula("Col"&({2,3})&"='"&ArrayFormula(HLOOKUP(ArrayFormula(VLOOKUP($A$1,$1:$1,({2,3}),0)),$A:$D,ROW(),0))&"'"))))

可读性:

=ROWS(
    QUERY(
        ArrayFormula(
            TO_TEXT(ARRAY_CONSTRAIN(
                $A:$D,
                ROW()-1,
                COUNTA(1:1)
            ))
        ),
        "select "&
            JOIN(
                ",", 
                ArrayFormula("Col"&({2,3}))
            )&
        " where "&
            JOIN(
                " and ", 
                ArrayFormula(
                    "Col"&
                        ({2,3})&"='"&
                        ArrayFormula(
                            HLOOKUP(
                                ArrayFormula(
                                    VLOOKUP(
                                        $A$1,
                                        $1:$1,
                                        ({2,3}),
                                        0
                                    )
                                ),
                                $A:$D,
                                ROW(),
                                0
                            )
                        )&
                        "'"
                )
            )
    )
)

如果前几行中匹配单元格的行数大于 0,则突出显示单元格。要添加更多列,您必须添加到{2,3}'s 的每个实例。例如,如果要包含 D,则将 4 添加到数组中。

如果您希望大量更改您想要的列,您可以在其他地方使用您想要的列索引创建一个单独的列,然后使用 FILTER 代替数组来节省输入。

这也会突出显示原始单元格之后的任何重复单元格。


推荐阅读