如何突出显示单元格,如果值重复在同一列谷歌电子表格?

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

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

924450 次浏览

试试这个:

  1. 选择整个列
  2. 单击格式
  3. 单击条件格式
  4. 单击添加另一条规则(或编辑现有/默认的)
  5. 格式化单元格设置为:Custom formula is
  6. 将值设置为:=countif(A:A,A1)>1(或将A更改为您选择的列)
  7. 设置格式样式。
  8. 确保范围适用于你的列(例如,A1:A100)。
  9. 单击完成

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

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

对于多列,使用countifs

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

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

截图from menu

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

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
请注意,在这个例子中,我将使用范围A1:C50。 第一个参数($A$1:$C$50)应该替换为你想要突出显示重复项的范围!< / p >

要突出重复的内容:

  1. 选择需要重复标记的整个范围。
  2. 在菜单上:Format > Conditional formatting...
  3. Apply to range下,选择规则应该应用的范围。
  4. Format cells if中,在下拉菜单中选择Custom formula is
  5. 在文本框中插入给定的公式,调整范围以匹配步骤(3)。

为什么它能起作用?

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

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

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

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

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

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


来源:

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

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

来源: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的答案是正确的。只是添加了一个Gif和步骤作为参考。

  1. 转到菜单Format > Conditional formatting..
  2. 找到Format cells if..
  3. Custom formula is字段中添加=countif(A:A,A1)>1
    • 注意:用你自己的列改变字母A
    • 李< / ul > < / >

enter image description here

突出显示重复的(在C栏):

=COUNTIF(C:C, C1) > 1

解释:这里的C1不是指c中的第一行,因为这个公式是由条件格式规则求值的,相反,当检查公式是否适用时,C1有效地引用当前正在求值的行,以确定是否应该应用高亮显示。(所以它更像是INDIRECT(C &ROW()),如果这对你有意义的话!)。本质上,在计算条件格式公式时,引用第1行的任何内容都将根据公式运行的行计算。(是的,如果使用C2,则要求该规则检查当前正在计算的行下面的行状态。)

因此,这就是说,计算C1(当前被计算的单元格)中出现在整个列C中的任何内容的次数,如果有超过1个(即值有重复),则:应用高亮(因为这个公式的整体计算结果是TRUE)。

只突出显示第一个副本:

=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)

解释:这只会突出显示两个__abc0都是TRUE(它们出现在AND()中)。

第一个要计算的项(COUNTIF(C:C, C1) > 1)与第一个例子中的完全相同;只有当C1中的内容有一个副本时,它才是TRUE。(请记住,C1有效地引用正在检查的当前行,以确定它是否应该突出显示)。

第二项(COUNTIF(C$1:C1, C1) = 1)看起来类似,但它有三个关键的区别:

它不搜索整个列C(像第一个一样:C:C),而是从第一行开始搜索:C$1 ($强制它从字面上看1行,而不是正在计算的任何一行)

然后它在正在求值的当前行C1处停止搜索。

最后它说= 1

因此,如果当前正在计算的行上面没有重复项,它将仅为TRUE(这意味着它必须是重复项中的第一个)。

结合第一个项(如果该行有重复项,则该项仅为TRUE),这意味着只有第一个项将被突出显示。

突出显示第二个及以后的重复项:

=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)

解释:第一个表达式始终相同(如果当前计算的行完全是重复的,则为TRUE)。

第二项与最后一项完全相同,只是它被否定了:它周围有NOT()。所以它忽略了第一种情况。

最后,第三个词选择重复的2,3等。COUNTIF(C1:C, C1) >= 1从当前计算的行(C1:C中的C1)开始搜索范围。然后,只有在这个副本下面(包括这个)有一个或多个副本时,它才计算为TRUE(应用高亮显示):>= 1(它必须是>=而不仅仅是>,否则最后一个副本将被忽略)。