If statement 使用多个条件组合两个嵌套的IF语句

If statement 使用多个条件组合两个嵌套的IF语句,if-statement,indexing,excel-formula,match,If Statement,Indexing,Excel Formula,Match,我在“医学”表中有两列数据 MedContinuing AgeAtMedStop Yes "Blank" Yes 72.22 No "Blank" No 72.57 "Blank" 73.85 我在另一张纸上写了一个公式,根据以下公式返回1或0: 如果MED为“空白”,则不执行任何操作 如果MedCon

我在“医学”表中有两列数据

  MedContinuing     AgeAtMedStop
      Yes             "Blank"
      Yes              72.22
      No              "Blank"
      No               72.57
    "Blank"            73.85
我在另一张纸上写了一个公式,根据以下公式返回1或0:

  • 如果
    MED
    为“空白”,则不执行任何操作
  • 如果
    MedContinue
    为“否”,并且
    AgeAtMedStop
    为空,则不执行任何操作
  • 如果
    MedContinue
    为“是”且
    AgeAtMedStop
    为“空白”,则返回1。如果
    AgeAtMedStop
    是一个数字,则返回0
  • 如果
    MedContinue
    为“否”,并且
    AgeAtMedStop
    为数字,则返回1。否则,不返回任何内容
  • medcontaining
    为“是”或“否”时,我能够编写两个单独的函数(见下文),但我需要将这两个函数组合成一个公式

    当是的时候

    =IF(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="","",
    IF(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="No","",
    IF(AND(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="Yes",INDEX(Meds!2:2,MATCH("AgeAtMedStop",Meds!$1:$1,0))=""),1,0)))
    
    当它不是

    =IF(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="","",
    IF(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="Yes","",
    IF(AND(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="No",INDEX(Meds!2:2,MATCH("AgeAtMedStop",Meds!$1:$1,0))=""),"",
    IF(AND(INDEX(Meds!2:2,MATCH("MedContinuing",Meds!$1:$1,0))="No",INDEX(Meds!2:2,MATCH("AgeAtMedStop",Meds!$1:$1,0))>0),1,0))))
    
    编辑:解决方案

    用Peter K的逻辑

    =IF(INDEX(Meds!6:6,MATCH("MedContinuing",Meds!$1:$1,0))="","",
    IF(AND(INDEX(Meds!6:6,MATCH("MedContinuing",Meds!$1:$1,0))="No",INDEX(Meds!6:6,MATCH("AgeAtMedStop",Meds!$1:$1,0))=""),"",
    IF(AND(INDEX(Meds!6:6,MATCH("MedContinuing",Meds!$1:$1,0))="Yes",INDEX(Meds!6:6,MATCH("AgeAtMedStop",Meds!$1:$1,0))=""),1,
    IF(AND(INDEX(Meds!6:6,MATCH("MedContinuing",Meds!$1:$1,0))="Yes",INDEX(Meds!6:6,MATCH("AgeAtMedStop",Meds!$1:$1,0))>0),0,
    IF(AND(INDEX(Meds!6:6,MATCH("MedContinuing",Meds!$1:$1,0))="No",INDEX(Meds!6:6,MATCH("AgeAtMedStop",Meds!$1:$1,0))>0),1,"")))))
    

    您的问题并不完全清楚,为什么要使用
    索引
    匹配
    函数来解决这样简单的问题

    我建议从基本的嵌套if函数开始:
    =IF(A2=“”;”;IF(A2=“否”;IF(B2=“”;”;1);IF(B2=“”;1;0))

    您可以将此函数放在两列旁边,然后复制到另一个工作表,以便Excel处理引用。
    我还假设您的数据是干净和正确的,即您的列中只有3个可能的MedContinue值(“是”、“否”或空白)和2个AgeAtMedStop值(空白或数字),因此,如果需要进行
    测试以消除其他可能的值,则无需进行

    从您的问题中不完全清楚为什么要使用
    索引
    匹配
    函数来解决这样简单的问题

    我建议从基本的嵌套if函数开始:
    =IF(A2=“”;”;IF(A2=“否”;IF(B2=“”;”;1);IF(B2=“”;1;0))

    您可以将此函数放在两列旁边,然后复制到另一个工作表,以便Excel处理引用。
    我还假设您的数据是干净和正确的,即您的列中只存在MedContinuing的3个可能值(“是”、“否”或空白)和AgeAtMedStop的2个可能值(空白或数字),因此如果需要进行测试以消除其他可能值,则无需进行测试。

    您可以尝试下面的方法

    我已经为您需要的逻辑创建了一个helper表,它将有助于将来更新或扩展逻辑

    单元格C2中的公式为

    =INDEX($F$2:$G$4,MATCH(A2,$E$2:$E$4,0),IF(B2="Blank",1,IF(ISNUMBER(B2),2,0)))
    

    您可以尝试下面的方法

    我已经为您需要的逻辑创建了一个helper表,它将有助于将来更新或扩展逻辑

    单元格C2中的公式为

    =INDEX($F$2:$G$4,MATCH(A2,$E$2:$E$4,0),IF(B2="Blank",1,IF(ISNUMBER(B2),2,0)))
    

    谢谢,但你的配方不起作用。甚至在我用逗号替换分号之后。然而,我能够编辑您的公式并使其工作<代码>=如果(A2=”、”、如果(和(A2=”否“、B2=”)、”、如果(和(A2=”是“、B2=”)、1、如果(和(A2=”是“、ISNUMBER(B2))、0、如果(和(A2=”否“、ISNUMBER(B2))、1“))
    。我使用索引匹配的原因太长,无法解释,但这是必需的。谢谢你的帮助。我能够将你的基本逻辑与我的答案解决方案结合起来。谢谢好的,谢谢。由于我在回答中提到的假设,我缩短了IFs,但您的公式当然更详尽,如果数据集中存在其他值,也会起作用。谢谢,但您的公式不起作用。甚至在我用逗号替换分号之后。然而,我能够编辑您的公式并使其工作<代码>=如果(A2=”、”、如果(和(A2=”否“、B2=”)、”、如果(和(A2=”是“、B2=”)、1、如果(和(A2=”是“、ISNUMBER(B2))、0、如果(和(A2=”否“、ISNUMBER(B2))、1“))
    。我使用索引匹配的原因太长,无法解释,但这是必需的。谢谢你的帮助。我能够将你的基本逻辑与我的答案解决方案结合起来。谢谢好的,谢谢。由于我在回答中提到的假设,我缩短了IFs,但您的公式当然更详尽,如果数据集中存在其他值,也会起作用。