Excel公式从条件语句为真的范围返回值
我已经为此寻找了一段时间的答案,但没有任何运气。这有点难以用语言表达,所以如果有什么不清楚的地方请告诉我 我想要的是一种在两列上执行条件语句的方法。当这两个条件都为true时,我希望从第三列返回值,该列与满足这些条件的行位于同一行。如果D5和C5中的条件为真,我想用公式将Q5中的值返回到单元格中。条件语句很简单,但我还没有弄清楚最后一步 如果我使用下面的公式,我在单元格中得到1,这是正确的Excel公式从条件语句为真的范围返回值,excel,conditional,Excel,Conditional,我已经为此寻找了一段时间的答案,但没有任何运气。这有点难以用语言表达,所以如果有什么不清楚的地方请告诉我 我想要的是一种在两列上执行条件语句的方法。当这两个条件都为true时,我希望从第三列返回值,该列与满足这些条件的行位于同一行。如果D5和C5中的条件为真,我想用公式将Q5中的值返回到单元格中。条件语句很简单,但我还没有弄清楚最后一步 如果我使用下面的公式,我在单元格中得到1,这是正确的 =IF(AND('Stata Output'!D2:D6='Backcheck schedule and
=IF(AND('Stata Output'!D2:D6='Backcheck schedule and results'!C2, 'Stata Output'!C2:C6=1),1,0)
但是,将公式中的1替换为要从中提取值的单元格范围,每次都会得到一个零,我知道这是错误的。对于后一个公式,我使用:
=IF(AND('Stata Output'!D2:D6='Backcheck schedule and results'!C2, 'Stata Output'!C2:C6=1),'Stata Output'!Q2:Q5,0)
你知道我把事情搞砸了吗?
谢谢 试试下面的公式:
=LOOKUP(2,1/('Stata Output'!D2:D6='Backcheck schedule and results'!C2)/('Stata Output'!C2:C6=1),'Stata Output'!Q2:Q5)
如果有多行同时满足这两个条件,则此公式将返回其中最后一行的col
Q
值。试一试-我确信有一种更简单的方法,但似乎可以完成任务(确保使用Control+Shift+enter作为数组公式输入)
:
这样做的目的是将整个表作为范围(第一个参数是INDEX
,然后使用MATCH
查找满足这两个条件的行(在这种情况下,列C
必须是1
,列D
中的对应值必须是回溯检查计划和结果
)。然后在结果数组中搜索1(表示匹配),并返回列14
(表示表中的列Q
)。您可以根据需要继续在match()
函数中添加筛选器
请注意,这将只匹配第一个“命中”。看起来像是
,并且在数组公式中无法正常工作,因此我将使用以下方法:
=IF(('Stata Output'!D2:D6='Backcheck schedule and results'!C2)*('Stata Output'!C2:C6=1)=1,'Stata Output'!Q2:Q5,0)
这将为您提供一个新的结果列,该列将从每个匹配行的Q2:Q6
列中填充
要使用它,您应该选择所有结果列,输入公式,然后使用CTRL+SHIFT+ENTER
只需确保使用相同大小的范围。是的,关于AND,您是正确的,AND的结果是一个结果而不是一个数组……但是您的修订版本的问题是它会生成一个“数组”,例如,如果第3行匹配,但其他行不匹配,那么您将得到{0;text;0;0}其中text是Q3中的值……因此您需要一些其他函数来从数组中提取该值(请参见我的答案和RocketDonkey的)-如果在单个单元格中输入,您通常只会看到该数组中的第一个值(0)但是,这可能会随着你输入公式的位置而改变!@barryhoudini,是的,它给出了一个结果数组,这个公式应该应用于一系列单元格。我想我对这个问题的理解是不同的,他希望得到所有匹配行的结果,而不仅仅是其中一行。
=IF(('Stata Output'!D2:D6='Backcheck schedule and results'!C2)*('Stata Output'!C2:C6=1)=1,'Stata Output'!Q2:Q5,0)