Answers:
试试这个:
Custom formula is
=countif(A:A,A1)>1
或更改A
为您选择的列)A1:A100
)。将检查A1:A100单元格中写入的所有内容,如果有重复项(发生多次),则将其上色。
对于使用逗号(,
)作为小数点分隔符的语言环境,参数分隔符很可能是分号(;
)。也就是说,请尝试:=countif(A:A;A1)>1
。
对于多列,请使用countifs
。
;
对我来说是一个“无效的公式”错误。只是删除它就可以了。还要注意:指定为的第二个参数的countif
单元格应该是所选范围的第一个单元格。
=countif(B:B,B2)>1
。当使用绝对单元格引用和相对单元格引用时,这可以使用户进行一些相当高级的格式化。
尽管zolley的答案非常适合该问题,但这是适用于任何范围的更通用解决方案,并附有解释:
=COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
请注意,在此示例中,我将使用range A1:C50
。第一个参数($A$1:$C$50
)应该替换为要突出显示重复项的范围!
突出显示重复项:
Format
>Conditional formatting...
Apply to range
,选择应应用规则的范围。Format cells if
,Custom formula is
在下拉列表中选择。为什么行得通?
COUNTIF(range, criterion)
,会将每个储存格与range
进行比较criterion
,其处理方式类似于公式。如果没有提供特殊运算符,它将比较范围内的每个单元格与给定的单元格,并返回找到的与规则匹配的单元格数(在这种情况下为比较)。我们使用固定范围(带$
符号),以便始终查看完整范围。
第二个块,INDIRECT(ADDRESS(ROW(), COLUMN(), 4))
将返回当前单元格的内容。如果将其放置在单元格中,则文档将要求循环依赖,但在这种情况下,公式的计算方式就像在单元格中一样,而无需更改它。
ROW()
并且COLUMN()
将返回的行数和列数分别给定的细胞。如果未提供任何参数,则将返回当前单元格(例如,基于1的单元格B3
将返回3,对于ROW()
2 将返回2 COLUMN()
)。
然后,我们使用:ADDRESS(row, column, [absolute_relative_mode])
将数字行和列转换为单元格引用(B3
请记住,记住,当我们处于单元格上下文内时,我们不知道它的地址或内容,因此需要与之进行比较的内容)。第三个参数负责格式设置,并4
返回INDIRECT()
喜欢的格式。
INDIRECT()
,将获取单元格引用并返回其内容。在这种情况下,当前单元格的内容。然后重新开始,COUNTIF()
将对照我们的范围测试范围中的每个单元,然后返回计数。
最后一步是使我们的公式成为逻辑表达式,从而返回布尔值:COUNTIF(...) > 1
。> 1
之所以使用,是因为我们知道至少有一个与我们的细胞相同。这是我们的单元格,它在范围内,因此将与自身进行比较。因此,要表示重复,我们需要找到2个或更多与我们匹配的单元格。
资料来源:
*
)和另一个检查,因此遵循的思路((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...)))))
。那是我在移动设备上能做的最好的事情。:)
$A$1:$C$50
-与所讨论的列相对应。我比zolley更喜欢这种更通用的方法。
从“文本包含”下拉菜单中,选择“自定义公式为:”,然后输入:“ = countif(A:A,A1)> 1”(不带引号)
我确实按照zolley的建议进行了操作,但是应该做一些小的更正:使用“自定义公式为”而不是“文本包含”。然后条件渲染将起作用。
Text Contains
下拉菜单中的选项通常是,因此用户通常会单击该选项以访问下拉菜单。
=COUNTIF(C:C, C1) > 1
说明:C1
此处不引用C中的第一行。由于此公式是通过条件格式规则求值的,因此,当检查该公式以查看其是否适用时,C1
有效引用当前正在求值的任何行看看是否应该应用突出显示。(因此,更像是INDIRECT(C &ROW())
,如果这对您来说意味着什么!)。本质上,在评估条件格式公式时,将参照针对该公式运行的行评估引用第1行的所有内容。(是的,如果您使用C2,则要求该规则检查当前正在评估的行正下方的行的状态。)
所以这就是说,C1
要计算整个列中(当前要评估的当前单元格)中所有内容的C
出现次数,如果它们中的一个以上(即值重复),则:应用突出显示(因为公式,总体计算为TRUE
)。
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
说明:这仅突出显示两个COUNTIF
s是否都TRUE
(它们都出现在内AND()
)。
要评估的第一个术语(COUNTIF(C:C, C1) > 1
)与第一个示例完全相同;这是TRUE
只有在无论是在C1
有重复。(请记住,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
中的C1:C
)开始搜索范围。然后,它仅求值TRUE
(应用突出显示)在此副本(包括该副本)下面是否存在一个或多个副本:(>= 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秒的时间内,我的重复行已着色。只需复制粘贴脚本即可。
如果您不了解google apps脚本,则此链接可以为您提供帮助:
https://zapier.com/learn/google-sheets/google-apps-script-tutorial/
https://developers.google.com/apps-script/overview
我希望这有帮助。
=COUNTIFS(A:A; A1; B:B; B1)>1