答案1
假设这些天数是自定义格式的实际日期,d
您可以执行以下操作:
- 就我的情况而言,选择以下范围
A1:N37
新的条件格式规则:
=OFFSET(INDIRECT(ADDRESS(ROW(),COLUMN())),-MOD(ROW()-2,9),-MOD(COLUMN()+1,2))<TODAY()
应用格式化并确认。结果如下。
请注意,这是易失性的(因为所有自定义格式都是易失性的,如@teylyn 她的评论所述),但由于看起来你的工作表不会进行大量计算,所以你应该没问题。
你问我,这是如何运作的?我们必须将其分为几个部分:
- 该
OFFSET
函数将返回与引用单元格偏移 N 行和 N 列的单元格的值。这是我们这里的主要功能。 OFFSET
需要一个实际要偏移的参考地址。我使用了ADDRESS
函数,它应该返回一个地址。ADDRESS
至少需要一行和一列,我们用ROW()
和给出了公式COLUMN()
,它们都查看当前单元格的行和列(在条件格式中是有意义的,因为公式将应用于所有单元格)。其余参数是可选的,我们可以省略它们。- 我们用来
INDIRECT()
实际返回有效的地址。 - 该函数的第二个重要部分
OFFSET
是向其提供一个用于偏移的行号。我使用了MOD()
它将返回两个数字相除后余数的整数。例如单元格C10
将返回-MOD(ROW()-2,9)
>-MOD(10-2,9)
>-MOD(8,9)
>-8
。 - 我们对列参数使用同样的技巧,
-MOD(COLUMN()+1,2)
>-MOD(3+1,2)
>-MOD(4,2)
>-0
。请注意,在两个参数中,我们都使用了-
创建负偏移量的技巧吗? - 上述代码将为每个单元格创建一个偏移量,重定向到其相应的日期。我们只需根据该日期进行评估即可
TODAY()
。过去的任何内容都将符合我们的规则并具有条件格式。
希望这是有意义的:)