我试图在列中设置值的第一个实例的样式。我通过谷歌搜索找到了这个自定义公式:
=COUNTIF($A1:$A100,$A1)=1
但这样可以设置值的 last 实例,我不确定原因。
答案 0 :(得分:1)
试试这个公式:
=COUNTIF($A$1:$A1,$A1)=1
答案 1 :(得分:1)
Max建议的公式=COUNTIF($A$1:$A1,$A1)=1
是此问题的常见解决方案。它是查找重复项的公式的变体:=COUNTIF($A:$A,$A1)>1
。
使用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
MATCH
公式也可用于在第一次输入后查找所有重复项。 (基本上是相反的)将公式=ROW()
的最后一部分更改为<ROW()
所以重复的查找公式为:=MATCH($A1,INDIRECT("$A:$A"),0)<ROW()