如果单元格的值不在上行,我需要一个公式来格式化单元格。
我必须将按日期排序的 100 行 10 列与其上方的列进行比较。
A 列包含日期,BJ 列包含需要与上一行进行比较的文本:
Columns... A B C D E F G ... J
Date1 A B C D E F
Date2 C E A J D K
Date3 C E A J D K
答案1
单击“条件格式”>“管理规则”>“新建规则”>“使用公式确定要格式化的单元格”。我认为您想要的公式是:
=E2<>B3
这意味着 E2 不等于 B3。
我认为就你的情况而言,你可能会做类似的事情:
=C3<>B3
B3
如果需要,您可以将其更改为单元格范围。如果您添加了屏幕截图,那会很有帮助。
这是我测试时得到的结果:
在这里,我在 B3 和 E3 上设置了条件格式。B3 的公式为=E2<>B3
,E3 的公式为=E2<>E3
如果文本不在单元格中(或行中,如果您执行类似的操作B3:F3
),那么它会使用您在设置格式时选择的内容突出显示它。
答案2
切换到R1C1编辑模式。
选择整个表格然后添加新的条件规则。
输入公式:
=or(RC2<>R[-1]C2, RC3<>R[-1]C3, RC4<>R[-1]C4, RC5<>R[-1]C5, RC6<>R[-1]C6, RC7<>R[-1]C7, RC8<>R[-1]C8, RC9<>R[-1]C9)
并添加适当的格式。
现在将发生的情况是,如果当前行中 9 个测试列中的任何一个与上一行中的匹配列不同 (-1),则将应用该格式。请注意,您将其应用于整个表格,这意味着如果任何列与其先前的值不匹配,则将突出显示整行,这比单独突出显示与其先前的值不匹配的单个列要好得多。
当然,你可以在没有 R1C1 的情况下做到这一点,但我发现在进行这样的计算时在该模式下工作要容易得多。
唯一的问题是第一个数据行与标题不同,因此将始终突出显示。要么从格式中排除前两行(标题和第一个数据行),要么使公式更复杂,以便它对前两行的所有列返回 FALSE。
这也只有在列数不多时才真正可行。如果有,您可以创建一个串联列,将其隐藏为最后一列,然后进行测试(只要串联不会使文本太长而无法放入单元格中)。如果这两种方法都不起作用,您可以考虑使用 VBA 来检测更改并重新格式化。