Google Sheet 双 TRUE 给出 FALSE

Google Sheet double TRUE giving a FALSE

我遇到了一个奇怪的情况,2 个 TRUE 给出了一个 FALSE。

我得到了这个公式(出于调试目的,我将它简化为只有我感兴趣的情况。:

=ARRAYFORMULA(
IF(ROW(JS7:JS)=7,JR7+1,
    SWITCH($F7:$F,
        "M",1,
        "D",2,
        "W",3,
        "B",IF(AND(JS >= 'A 2021'!$E7:$E,mod(('A 2021'!$E7:$E-JS),14)=0),$D7:$D,4),
        "A",5,
        "O",6,
        0)
    )
)

基本上这个公式检查行是否是第 7 行,如果是,则将前一个日期加 1 以获得第二天(这部分没问题),否则它会进入 Switch to return a基于其他列的值(0 到 6)(在我的例子中它是“B”并且应该 return 4)。

公式中的这部分return一个FALSE:

AND(JS >= 'A 2021'!$E7:$E,mod(('A 2021'!$E7:$E-JS),14)=0

yet JS >= 'A 2021'!$E7:$E(检查我们是否超过当前日期)是 TRUE,mod(('A 2021'!$E7:$E-JS),14)=0(使用 modulo 检查我们是否每 2 周一次)也是 TRUE

我试图用 JS >= 'A 2021'!$E7:$E 替换 returned 值 4 以查看它的值,结果是 TRUE,mod() 也是如此。但是当我尝试使用 AND() 时,它 returned FALSE,然而,AND() 是由前面的部分组成的,它们都 returned TRUE。

我是不是犯了一个明显的错误或者有什么可疑的地方?

ANDARRAYFORMULA 下不受支持。尝试:

=ARRAYFORMULA(
 IF(ROW(JS7:JS)=7,JR7+1,
    SWITCH($F7:$F,
        "M",1,
        "D",2,
        "W",3,
        "B",IF((JS >= 'A 2021'!$E7:$E)*(MOD(('A 2021'!$E7:$E-JS),14)=0),$D7:$D,4),
        "A",5,
        "O",6,0)))