0

我已经为此寻找了一段时间的答案,但没有任何运气。这有点难以用语言表达,所以如果有任何不清楚的地方,请告诉我。

我想要的是一种在两列上执行条件语句的方法。当这两个条件都为真时,我想从与满足这些条件的同一行中的第三列返回值。因此,如果 D5 和 C5 中的条件为真,我想使用公式将 Q5 中的值返回到单元格中。条件语句很简单,但我还没有弄清楚最后一步。

如果我使用下面的公式,我会在带有公式的单元格中得到 1,这是正确的。

=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)

关于我在哪里搞砸的任何想法?谢谢!

4

3 回答 3

1

试一试 - 我确信有一种更简单的方法,但它似乎可以完成工作(确保使用 输入作为数组公式Control+Shift+Enter):

=INDEX('Stata Output'!$D$2:$Q$6,MATCH(1,(--('Stata Output'!$C$2:$C$6=1)*--('Stata Output'!$D$2:$D$6="Backcheck schedule and results")),0),14)

这样做是将您的整个表作为范围(第一个参数INDEX,然后用于MATCH查找满足您的两个条件的行(在这种情况下,列C必须是1并且列中的相应值D必须是Backcheck schedule and results)。然后您搜索结果数组为 1(表示匹配)和返回列14(表示Q我们表中的列)。您可以根据需要继续在MATCH()函数内添加过滤器。

请注意,这将仅匹配第一个“命中”。

于 2012-10-10T14:33:31.300 回答
0

试试下面的公式:

=LOOKUP(2,1/('Stata Output'!D2:D6='Backcheck schedule and results'!C2)/('Stata Output'!C2:C6=1),'Stata Output'!Q2:Q5)

如果有多个行同时满足两个条件,则此公式将返回最后一个Q的 col值。

于 2012-10-10T14:33:09.723 回答
0

看起来AND在数组公式中不能正常工作,所以我会使用这个:

=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.

只要确保使用相同大小的范围。

于 2012-10-10T15:14:16.490 回答