IF AND OR 嵌套数组公式不起作用 - 我错过了什么?

问题描述 投票:0回答:1

我正在尝试使用 ArrayFormula 设置最后一列(“状态”)的状态以显示“加强”、“疫苗接种”、“宗教豁免”,这样我就不必每次添加员工时都添加公式到列表中。

={"Covid Status";
ARRAYFORMULA (
IF (
    A2:A = "Religious Exemption" ,
         "Religious Exemption" ,
IF (
    AND ( OR ( A2:A = "Moderna" , A2:A = "Pfizer" ) ,
         AND ( ISDATE ( B2:B ) = TRUE , ISDATE ( C2:C ) = TRUE , ISDATE ( D2:D ) = TRUE ) ) ,
               "Boosted" ,
IF (
    AND ( OR ( A2:A = "Moderna" , A2:A = "Pfizer" ) ,
          AND ( ISDATE ( B2:B ) = TRUE, ISDATE ( C2:C ) = TRUE , ISDATE ( D2:D ) = FALSE ) ) ,
               "Vaccinated",
    )
    )
    )
    )
}

我也不介意在列表中添加“未接种疫苗”,但空白就足够了。

如果有更简单的方法来实现结果,我愿意接受各种选择。工作表中的“最后”列是所需的结果。

我在没有使用数组的情况下使用了公式,但它不能作为数组使用。

我希望我分享得正确。

https://docs.google.com/spreadsheets/d/1LIpe0uo6RQtbcAUcB6V5jrGaX-9wuSm-2vTU5Vj03Cs/edit?usp=sharing

Results/Desired Results

arrays if-statement google-sheets nested array-formulas
1个回答
0
投票

使用

AND(a,b)
代替
a*b
,使用
OR(a,b)
代替
a+b
,使用
ISDATE
代替
ISDATE_STRICT

={"Covid Status";
ARRAYFORMULA (
IF (
    A2:A = "Religious Exemption" ,
         "Religious Exemption" ,
IF (
     (  ( A2:A = "Moderna" ) + ( A2:A = "Pfizer" ) ) *
         ( ISDATE_STRICT ( B2:B ) * ISDATE_STRICT ( C2:C ) * ISDATE_STRICT ( D2:D ) )  ,
               "Boosted" ,
IF (
    ( ( A2:A = "Moderna") + (A2:A = "Pfizer" ) ) *
           ( ISDATE_STRICT ( B2:B ) * ISDATE_STRICT ( C2:C ) * ( 1-ISDATE_STRICT ( D2:D )) )  ,
               "Vaccinated",
    )
    )
    )
    )
}

您还可以使用

MAP
功能。

© www.soinside.com 2019 - 2024. All rights reserved.