我遇到了以下问题。我有一张工作表,其中应突出显示当前月份。为此,我使用了条件格式公式。前三个月的公式如下:
#M1
=IF(AND(TODAY()>=DATE(YEAR($B$5);MONTH($B$5);DAY($B$5));TODAY()<=DATE(YEAR($B$5);MONTH($B$5)+1; DAY(B5)));TRUE;FALSE)
#M2
=IF(AND(TODAY()>=DATE(YEAR($B$5);MONTH($B$5)+1;DAY($B$5)+1);TODAY()<=DATE(YEAR($B$5); MONTH($B$5)+2;DAY($B$5)));TRUE;FALSE)
#M3
=IF(AND(TODAY()>=DATE(YEAR($B$5);MONTH($B$5)+2;DAY($B$5)+1);TODAY()<=DATE(YEAR($B$5); MONTH($B$5)+3;DAY($B$5)));TRUE;FALSE)
B5 是包含开始日期的单元格。为了将所有这些变化的公式写入单元格,我使用了宏。
我的问题是,当我想添加一个额外的单元格并手动更改公式时,它不再起作用。突然间范围不同了,诸如此类。我必须用宏和额外的月份重新编写这些公式。每次我想手动执行时,它都会搞砸。
有人知道为什么会发生这种情况以及如何解决它吗?
答案1
有一件事可以大大简化您的公式,并让您(和其他人)更容易排除故障,那就是简单地删除周围的“IF”。只需使用 AND,它就会自然返回 True 或 False。
在条件格式对话框中编辑公式时,按 F2 进入编辑模式(与单元格相同),然后您可以使用箭头键等在公式中移动,而不会根据活动单元格的位置插入额外的单元格范围。这可能是您所说的“范围突然不同等等”的意思,但我不确定。
目前,您的公式不会突出显示当前(或下一个)月份,而是突出显示从现在到下个月的同一日期之间的天数。这可能是您想要的,但不清楚。因此,它会突出显示从 9 月 6 日到 10 月 5 日,而不是 9 月 1 日至 9 月 30 日。如果您想突出显示日历月份,请不要使用起始数据的 DAY 部分,只需使用 1(对于月份的最后一天,使用 Month+1、Day=1,然后从结果 DATE 中取 -1)
您是否想根据这个单一的开始日期单元格突出显示大量单元格?或者您是否尝试根据每行(第 5 列)中的不同值突出显示行?如果是后者,您需要从 5 中删除 $,以便获得相对引用,但请确保在第 5 行的单元格中编辑此条件公式,否则您将引用每个案例的上方/下方的一行。