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。
我是不是犯了一个明显的错误或者有什么可疑的地方?
AND
在 ARRAYFORMULA
下不受支持。尝试:
=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)))
我遇到了一个奇怪的情况,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。
我是不是犯了一个明显的错误或者有什么可疑的地方?
AND
在 ARRAYFORMULA
下不受支持。尝试:
=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)))