我正在寻找谷歌电子表格公式 如果值在同一列中重复,则突出显示单元格

请问有人能帮我解答这个问题吗?


当前回答

@zolley的答案是正确的。只是添加了一个Gif和步骤作为参考。

后转菜单格式>条件格式。 找到格式化单元格如果.. Add =countif(A:A,A1)>1 in field自定义公式为 注意:用您自己的列更改字母A。

其他回答

试试这个:

选择整个列 点击格式 单击“条件格式” 单击“添加另一个规则”(或编辑现有/默认的规则) “格式单元格”如果为:自定义公式为 设置值为:=countif(A:A,A1)>1(或将A更改为您选择的列) 设置格式样式。 确保该范围适用于您的列(例如,A1:A100)。 点击完成

在A1:A100单元格中写入的任何内容都将被检查,如果有重复的(出现多次),那么它将被着色。

对于使用逗号(,)作为小数分隔符的区域,参数分隔符很可能是分号(;)。也就是说,尝试:=countif(A:A;A1)>1。

对于多列,使用计数。

@zolley的答案是正确的。只是添加了一个Gif和步骤作为参考。

后转菜单格式>条件格式。 找到格式化单元格如果.. Add =countif(A:A,A1)>1 in field自定义公式为 注意:用您自己的列更改字母A。

从“文本包含”下拉菜单中选择“自定义公式是:”,并写入:“=countif(A:A, A1) > 1”(不带引号)

我完全按照zolley的建议做了,但应该做一个小修正:使用“自定义公式是”而不是“文本包含”。 然后条件渲染就可以工作了。

我试了所有的方法,没有一个奏效。

只有谷歌应用程序脚本帮助我。

来源:https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets

在你的文档顶部

1.-进入工具>脚本编辑器

2.-设置脚本的名称

3.-粘贴以下代码:

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [1];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

4.-保存并运行

在不到3秒的时间里,我的重复行被着色了。只需要复制脚本。

如果你不知道谷歌应用程序脚本,这个链接可以帮助你:

https://zapier.com/learn/google-sheets/google-apps-script-tutorial/

https://developers.google.com/apps-script/overview

我希望这能有所帮助。

虽然zolley的答案完全适合这个问题,但这里有一个更普遍的解决方案,适用于任何范围,并有解释:

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1

请注意,在这个例子中,我将使用范围A1:C50。 第一个参数($A$1:$C$50)应该替换为您想要突出显示重复项的范围!


要突出重复的内容:

选择需要重复标记的整个范围。 菜单显示:Format >条件格式设置… 在“应用到范围”下,选择规则应应用到的范围。 在“格式单元格”中,在下拉菜单中选择“自定义公式”。 在文本框中插入给定的公式,调整范围以匹配步骤(3)。


为什么它能起作用?

COUNTIF(范围,标准),将范围内的每个单元格与标准进行比较,处理方法类似于公式。如果没有提供特殊的操作符,它将比较范围内的每个单元格与给定的单元格,并返回找到的与规则匹配的单元格数(在本例中为比较)。我们使用一个固定的范围(带$符号),以便始终查看整个范围。

第二个块,INDIRECT(ADDRESS(ROW(), COLUMN(), 4)),将返回当前单元格的内容。如果它被放置在单元格内,文档会抱怨循环依赖,但在这种情况下,公式的计算就像它在单元格中一样,没有改变它。

ROW()和COLUMN()将分别返回给定单元格的行号和列号。如果不提供参数,则返回当前单元格(这是基于1的,例如,B3将为ROW()返回3,为COLUMN()返回2)。

然后我们使用:ADDRESS(row, column, [absolute_relative_mode])将数字行和列转换为单元格引用(如B3。记住,当我们在单元格的上下文中时,我们不知道它的地址或内容,我们需要内容来进行比较)。第三个参数负责格式化,4返回INDIRECT()喜欢的格式。

,将接受单元格引用并返回其内容。在本例中,是当前单元格的内容。然后回到开始,COUNTIF()将测试范围内的每个单元格,并返回计数。

最后一步是使我们的公式返回一个布尔值,方法是将其设置为逻辑表达式:COUNTIF(…)> 1。之所以使用> 1,是因为我们知道至少有一个单元格与我们的相同。这是我们的单元格,它在值域内,因此会和它自己比较。因此,为了表示副本,我们需要找到两个或更多与我们的单元格匹配的单元格。


来源:

文档编辑帮助:COUNTIF() 文档编辑器帮助:INDIRECT() 文档编辑器帮助:ADDRESS() 文档编辑器帮助:ROW() 文档编辑帮助:COLUMN()