提前三周预测有值的周末,然后每隔三周使用条件格式预测周末

Predict weekends three weeks ahead of last weekend that had a value, then every other three weeks, with conditional formatting

我需要提前三周预测具有 'Day Worked' (DW) 值的周末,然后在使用条件格式后每三个周末预测一次。

    A         B
01  06/10/18  DW
02  07/10/18  DW
03  08/10/18  NW
.   .         .
.   .         .
.   .         .
22  27/10/18 
23  28/10/18 

由于10月6日和7日是工作日,我想使用条件格式来更改A22和A23的单元格颜色,然后是之后的三个周末(A43,A44)等等。

我可以通过使用简单的 OFFSET 函数来完成前三周,但这对预测之后的日期没有帮助。

不太好,但是 A 列单元格的条件格式中的这个公式应该可以满足您的要求:

=OR(
    MOD((A1-MAX($A:$A9*($B:$B9="DW")*(WEEKDAY($A:$A9,2)=6))),21)=0,
    MOD((A1-MAX($A:$A9*($B:$B9="DW")*(WEEKDAY($A:$A9,2)=7))),21)=0
)

这将突出显示星期六或星期日,这些星期六或星期日是距最近星期六或星期日 3 周的整数倍,在 B 列中 "DW"。

更改 999 行引用以适合您的实际数据集。

编辑:

只有当 B 列中至少有一个星期六/星期日 "DW" 时才会高亮显示;

=OR(
    AND(
        MAX(($B:$B9="DW")*(WEEKDAY($A:$A9,2)=6)),
        MOD((A1-MAX($A:$A9*($B:$B9="DW")*(WEEKDAY($A:$A9,2)=6))),21)=0
    ),
    AND(
        MAX(($B:$B9="DW")*(WEEKDAY($A:$A9,2)=7)),
        MOD((A1-MAX($A:$A9*($B:$B9="DW")*(WEEKDAY($A:$A9,2)=7))),21)=0
    )
)