我有一個奇怪的情況,即 2 TRUE 給出了 FALSE。
我得到了這個公式(我把它簡化為只有我感興趣的案例用于除錯目的。:
=ARRAYFORMULA(
IF(ROW(JS7:JS)=7,JR7 1,
SWITCH($F7:$F,
"M",1,
"D",2,
"W",3,
"B",IF(AND(JS$7 >= 'A 2021'!$E7:$E,mod(('A 2021'!$E7:$E-JS$7),14)=0),$D7:$D,4),
"A",5,
"O",6,
0)
)
)
基本上這個公式檢查該行是否是第 7 行,如果是,則將前一天加 1 以獲得第二天(這部分很好),否則它會進入 Switch 以回傳基于其他的值(0 到 6)列(在我的例子中是“B”,應該回傳 4)。
公式中的這部分回傳 FALSE:
AND(JS$7 >= 'A 2021'!$E7:$E,mod(('A 2021'!$E7:$E-JS$7),14)=0
然而JS$7 >= 'A 2021'!$E7:$E(檢查我們是否已經過了當前日期)是 TRUE 并且mod(('A 2021'!$E7:$E-JS$7),14)=0(使用模來檢查我們是否每兩周一次)也是 TRUE
我試圖通過JS$7 >= 'A 2021'!$E7:$E查看它的值來替換 4 的回傳值,它是 TRUE,與 mod() 相同。但是當我嘗試使用 AND() 時,它回傳 FALSE,然而,AND() 是由前面的部分組成的,這兩個部分都回傳了 TRUE。
我在這里犯了一個明顯的錯誤還是有些可疑?
uj5u.com熱心網友回復:
AND下不支持ARRAYFORMULA。嘗試:
=ARRAYFORMULA(
IF(ROW(JS7:JS)=7,JR7 1,
SWITCH($F7:$F,
"M",1,
"D",2,
"W",3,
"B",IF((JS$7 >= 'A 2021'!$E7:$E)*(MOD(('A 2021'!$E7:$E-JS$7),14)=0),$D7:$D,4),
"A",5,
"O",6,0)))
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/377333.html
