有条件地格式化Google工作表中的重复行

时间:2018-04-25 18:39:36

标签: google-sheets

我想应用条件格式,以便突出显示与另一行完全匹配的所有行。

假设我有一个如下的电子表格

|   | a | b | c |
|---|---|---|---|
| 1 | A | B | C | // Matches row 3 and 6
| 2 | A | B | A | // Matches row 5
| 3 | A | B | C | // Matches row 1 and 6
| 4 | B | B | C | // Matches no other row
| 5 | A | B | A | // Matches Row 2
| 6 | A | B | C | // Matches row 1 and 3
| 7 | B | B | A | // Matches no other row

第4行和第7行以外的所有行都会突出显示。

对于要被视为重复的行,给定行中每个/每个单元格的值必须与重复行中相应单元格(同一列中的单元格)的值完全匹配。

到目前为止,我的尝试只能返回行的值,只有前两个单元格是重复的,并返回每行中所有重复值的串联,这与我想要的相差很远。

CC = arrayformula(A:A&" "&B:B&" "&C:C)返回一个新行,它是A,B和C的串联,它将单元格值强制转换为字符串,因此不同的“1”和1看起来是相同的,并且也不适用于整行(如果我只是继续添加列,但看起来很糟糕)。

=filter(unique(CC), arrayformula(countif(CC, unique(CC)) > 1)) CC是上一个等式的返回值

这会输出 A B C A B A

然后我可以添加一个带有自定义公式的条件格式规则,如果它的连接内容突出显示一行“匹配”上一个等式中的一个返回值,但我不知道该怎么做,以及之前的方程已经很有缺陷了。

理想情况下,我想要一个不涉及字符串连接或输入所有列名的解决方案。

3 个答案:

答案 0 :(得分:1)

让我们回顾创建此功能所需的内容。

首先,您需要将行作为字符串获取,以便能够像您一样比较它们。我没有像你那样使用空间,因为它发生了,但你可以保留它们。

=ARRAYFORMULA(A:A&B:B&C:C)

问题在于,由于公式将位于3列,因此我们不希望它变为C:C&D:D&E:E,因此我们必须修复该列。

=ARRAYFORMULA($A:$A&$B:$B&$C:$C)

耶!现在我们有一个字符串列表,表示每行的“值”。我们现在可以计算每条线路的次数。我使用A2因为我猜你有一个标题,但如果你没有,只需用A1替换它。

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);A2&B2&C2)

我们还必须在此处修复列,否则该功能仅适用于第一个。

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);$A2&$B2&$C2)

现在剩下的就是检查你是否想要看到那些独特的或者有匹配的人

=COUNTIF(ARRAYFORMULA($A:$A&$B:$B&$C:$C);$A2&$B2&$C2)>1

答案 1 :(得分:0)

此解决方案并不涉及将值转换为字符串,但仍需要为每列添加一个函数,因此它几乎就在那里。

=countifs(arrayformula($A:$A=$A1),TRUE,arrayformula($B:$B=$B1),TRUE,arrayformula($C:$C=$C1),TRUE)>1

它只是countifs conditional = arrayformula($A:$A=$A1)中每列countifs(conditional, true)的条件。

我只需要这样做就可以将列值作为一个数组,我猜测它需要arrayformula

答案 2 :(得分:0)

有一种更简单的方法。

  • 加载条件格式(在“格式”下)。
  • 选择“自定义公式为”(位于公式列表底部)
  • 使用公式“ = countif(A:A,A1)> 1”,其中A是包含要格式化为重复项的单元格的列。