【问题标题】:Conditionally formatting duplicate rows in google sheets谷歌表格中的条件格式重复行
【发布时间】:2018-10-06 08:12:42
【问题描述】:

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

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

| |一个 |乙 | c | |---|---|---|---| | 1 |一个 |乙| C | // 匹配第 3 行和第 6 行 | 2 |一个 |乙|一个 | // 匹配第 5 行 | 3 |一个 |乙| C | // 匹配第 1 行和第 6 行 | 4 |乙|乙| C | // 不匹配其他行 | 5 |一个 |乙|一个 | // 匹配第 2 行 | 6 |一个 |乙| C | // 匹配第 1 行和第 3 行 | 7 |乙|乙|一个 | // 不匹配其他行

将突出显示除第 4 行和第 7 行之外的所有行。

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

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

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

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

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

【问题讨论】:

  • 这与this questionthis question 不同,尽管它们的标题几乎完全相同。由于标题重复的问题,我不得不将问题标题中的突出显示更改为条件格式。

标签: google-sheets


【解决方案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

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      有一个更简单的方法。

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

      【讨论】:

      • 一行中的所有单元格必须与另一行的单元格匹配才能应用条件格式,而不仅仅是 1 列中的单元格。我添加了第 7 行来帮助演示,使用您的方程式,所有行都将被格式化,但第 4 行和第 7 行不应被格式化,因为它们在 C 列的值不同。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 2021-04-28
      • 2019-07-29
      相关资源
      最近更新 更多