我正在尝试获取一个条件格式公式,以突出显示列中重复单元格的组,但也要区分它们。
使用公式=COUNTIF($J:$J,J1)>1
时,我得到:
123 (green)
123 (green)
345
567
765 (green)
765 (green)
812 (green)
812 (green)
876
但是我想要更多类似的东西:
123 (green)
123 (green)
345
567
765 (yellow)
765 (yellow)
812 (red) (or green again)
812 (red) (or green again)
876
我不一定需要为每个组使用不同的颜色(尽管那确实很好),但是在组之间至少要交替使用两种颜色,因此我不能轻易地在视觉上区分相邻的两个重复单元组。
对于最后一部分,我正在使用公式=isodd(match($J2,unique($J$2:$J)))
(加上iseven
来将其与另一种颜色一起使用),这个问题是它还突出显示了唯一的单元格(我不要)。
是否有一种方法可以将两个或另一个公式完全结合起来完成此任务?
答案 0 :(得分:2)
添加此脚本,工作表将突出显示重复的行。 每次您编辑工作表时,它都会自动更新。
因此,您可以插入行,添加行或更改行,它仍将正确更新。
您可以查找如何安装脚本,但是它很容易。让我知道是否卡住了。
function onEdit() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var lastRow = sheet.getLastRow();
var range = sheet.getRange(1,1,lastRow);
sheet.getRange("A1:A").setBackground("white");
var rowValues = range.getValues();
var color1 = "#DBAB30"; // light yellow
var color2= "#3DA843"; // light green
var color = color1;
if (lastRow < 2) return; // do nothing if only 1 row.
var dupCount=0;
var row;
for (row=1; row<=lastRow; row++)
{
if (row == lastRow){ // check if past the last row.
applyBackground(row-1,dupCount);
}
else{
if (rowValues[row][0] == rowValues[row-1][0])
{
dupCount++;
}
else
{
applyBackground(row-1,dupCount);
dupCount=0;
}
} // end if not last row
} // end loop
function applyBackground(row,dupCount){
if (dupCount > 0)
{
var colorRange = sheet.getRange(row-dupCount+1,1,dupCount+1);
colorRange.setBackground(color);
if (color == color1) {color = color2} else {color=color1};
}
}
}
产生此输出:
我想你要的是什么?
答案 1 :(得分:1)
这不是您想要的,但是您可以从第2行开始应用此公式来识别奇数组:
kubectl
,偶数组也类似:
=and(or(A2=A1,A2=A3),isodd(sumproduct((A$1:A1<>A$2:A2)*(A$2:A2=A$3:A3))))
如果您尝试将其应用于第1行,则将获得#REF!错误。我想找出从第1行开始的重复值的唯一方法是将第三条规则应用于整个范围:
=and(or(A2=A1,A2=A3),iseven(sumproduct((A$1:A1<>A$2:A2)*(A$2:A2=A$3:A3))))
并修改原始公式为
=and(A$1=A$2,countif(A$1:A1,"<>"&A1)=0)
和
=and(or(A2=A1,A2=A3),isodd(sumproduct((A$1:A1<>A$2:A2)*(A$2:A2=A$3:A3))+(A$1=A$2)))