有条件地在列中格式化第一个值实例

时间:2016-05-18 13:15:37

标签: google-sheets gs-conditional-formatting google-sheets-formula

我试图在列中设置值的第一个实例的样式。我通过谷歌搜索找到了这个自定义公式:

=COUNTIF($A1:$A100,$A1)=1

但这样可以设置值的 last 实例,我不确定原因。

2 个答案:

答案 0 :(得分:1)

试试这个公式:

=COUNTIF($A$1:$A1,$A1)=1

答案 1 :(得分:1)

THE COUNTIF SOLUTION:

Max建议的公式=COUNTIF($A$1:$A1,$A1)=1是此问题的常见解决方案。它是查找重复项的公式的变体:=COUNTIF($A:$A,$A1)>1

COUNTIF DRAWBACK:

使用COUNTIF公式的一个缺点是,它依赖于第一个参数$A$1:$A1,以便正确准确地评估条件格式。该公式在条件格式中的工作方式与在物理上将公式放在B1中并将其复制到整个列时的方式相同。 B1中的第一个副本将显示为原始公式=COUNTIF($A$1:$A1,$A1)=1,但B2中的副本将显示为=COUNTIF($A$1:$A2,$A2)=1

如果您正在进行任何排序,剪切和粘贴,拖放行或单元格等,这可能是一个真正的问题并导致误报或条件格式化根本不起作用。

匹配解决方案:

此公式的改进版本可消除误报的可能性,并防止范围在排序,复制,剪切,拖放,删除等时自动更新,如下所示:

=MATCH($A1,INDIRECT("$A:$A"),0)=ROW()

匹配解决方案的说明:

INDIRECT公式中唯一的目的是阻止范围自动更新。如果您希望在复制和粘贴时更新它,则可以执行以下操作:=MATCH($A1,$A:$A,0)=ROW()此公式正常工作的关键是MATCH公式参数2查看整个列,这样就可以了找到参数1的确切位置,它可以将它与行#进行比较。如果列A中有重复项,则匹配将仅返回第一个实例的位置。由于参数2是整个列,因此返回的答案也是第一个实例的行#。因此,=ROW()上面公式的第二部分会将第一个实例的行#与当前单元格的行#进行比较,如果它们与公式相同则整个公式将返回TRUE

寻找重复的ADAPT匹配解决方案(在第一次实例之后):

MATCH公式也可用于在第一次输入后查找所有重复项。 (基本上是相反的)将公式=ROW()的最后一部分更改为<ROW()所以重复的查找公式为:=MATCH($A1,INDIRECT("$A:$A"),0)<ROW()