突出显示单元格,如果值重复在谷歌电子表格的同一列
我正在寻找谷歌电子表格的公式“突出显示单元格,如果价值重复在同一列”
任何人都可以请帮助我这个查询?
我会这样做:
- select整个列,然后从菜单中select:格式/条件格式。
- 从“Format cells if …”下拉菜单中select“Custom formula is:”,并写入:
=countif(A:A,A1)>1
- 添加一些格式规则。
- 对于范围,写:A1:A100
完成。 您在A1:A100单元格中写入的任何内容都将被检查,如果有重复(多次出现),则会被着色。
希望这可以帮助。
虽然zolley的答案完全适合这个问题,但是对于任何范围来说,这里是一个更一般的解决scheme,再加上解释:
=COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
请注意,在这个例子中,我将使用范围A1:C50
。 第一个参数( $A$1:$C$50
)应该replace为您想突出重复的范围!
突出重复:
- select需要重复标记的整个范围。
- 在菜单上:
Format
>Conditional formatting...
- 在“
Apply to range
,selectApply to range
规则的范围。 - 在
Format cells if
,selectCustom formula is
在下拉列表中。 - 在文本框中插入给定的公式,调整范围以匹配步骤(3)。
为什么它工作?
COUNTIF(range, criterion)
将把range
每个单元格与criterion
进行比较,这与公式相似。 如果没有提供特殊的操作符,它会将范围内的每个单元格与给定的单元格进行比较,并返回find的匹配规则的单元格的数量(在这种情况下是比较)。 我们正在使用固定范围(带有$
符号),以便我们始终查看全部范围。
第二个块, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))
将返回当前单元格的内容。 如果这被放置在单元格内,docs将会关于循环依赖关系哭,但是在这种情况下,公式被评估为好像它在单元格中一样,而不改变它。
ROW()
和COLUMN()
将分别返回给定单元格的行号和列号 。 如果没有提供参数,则返回当前单元格(基于1,例如, ROW()
返回3, COLUMN()
返回2)。
然后,我们使用: ADDRESS(row, column, [absolute_relative_mode])
将数字行和列转换为单元格引用(像B3
一样。记住,当我们在单元格的上下文中时,我们不知道它是地址或内容,我们需要的内容才能与之比较)。 第三个参数需要格式化,而4
返回格式化INDIRECT()
喜欢。
INDIRECT()
将获取单元格引用并返回其内容。 在这种情况下,当前单元格的内容。 然后回到开始, COUNTIF()
将testing我们的范围内的每个单元格,并返回计数。
最后一步是让我们的公式返回一个布尔值,使其成为一个逻辑expression式: COUNTIF(...) > 1
。 > 1
被使用,因为我们知道至less有一个单元格与我们的相同。 这是我们的细胞,这是在范围内,因此将被比较自己。 所以为了表示重复,我们需要find2个或更多与我们相匹配的单元格。
资料来源:
- 文档编辑器帮助: COUNTIF()
- 文档编辑器帮助: INDIRECT()
- 文档编辑器帮助: ADDRESS()
- 文档编辑器帮助: ROW()
- 文档编辑器帮助: COLUMN()
从“Text Contains”下拉菜单中select“Custom formula is:”,然后写入:“= countif(A:A,A1)> 1”(不带引号)
我完全按照Zolley的build议,但应该做一些小的更正:使用“自定义公式是”而不是“文本包含” 。 然后有条件的渲染将工作。
此外,您可以安装附加删除重复项,并find(突出显示)或删除列或表中的重复值。
我尝试了所有的select,没有工作。
只有谷歌应用脚本帮助了我。
来源: 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
我希望这有帮助。