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,但您的公式当然更详尽,如果数据集中存在其他值,也会起作用。