更改匹配标准时的索引匹配结果

时间:2018-09-03 03:54:14

标签: excel-formula

我正在尝试在一行(特定单元格)中返回一个输入值,其中与输入值在同一行中的输入日期与第一行中的日期匹配。

在这个论坛和其他研究中,我确定索引匹配功能比vlookup更好。

我意识到索引函数使用列引用从中返回一个值,因此索引匹配函数返回与匹配条件列号相关的相关行号的结果。

Example of result

函数如下所示:= IF($ E $ 3 = $ G $ 2:$ L $ 2,INDEX($ D:$ D,MATCH($ E $ 3,$ G $ 2:$ L $ 2,1)))

因为我想返回发生匹配的行的特定值,所以使用“索引”功能的替代方法是什么?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了您的问题,那么您要在单元格L3中返回“是”,因为单元格L2具有与D3相同的日期,并且单元格L1具有数字6,并且D列中的第六个单元格是“是”。

首先尝试在G2:L2中查找D3的日期:

=match($D$3,$G$2:$L$2,0)

,将0作为精确匹配的最后一个参数,并且不需要对范围进行排序。要从第1行返回值,您需要将其包装在类似

的Index中
=index($G$1:$L$1,match($D$3,$G$2:$L$2,0))

这将返回您的6。因此,现在您可以查看D列,并将Index与上面公式返回的数字一起使用。

=index($D:$D,index($G$1:$L$1,match($D$3,$G$2:$L$2,0)))

最后,仅当D3中的日期存在于G2:L2中时,才要执行此操作。有几种方法可以做到这一点,例如使用Countif

=if(countif($G$2:$L$2,$D$3),index($D:$D,index($G$1:$L$1,match($D$3,$G$2:$L$2,0))),"")

我什至不必将Countif的结果与任何东西进行比较,因为如果计数为0,则与FALSE相同;如果计数大于零,则与TRUE相同。

让我知道这是否有帮助,或者您是否需要进一步说明。

评论后编辑

您可能想得太多。我认为您想要的公式就是这个公式,输入到G3单元格中,然后上下复制。

=IF(G$2=$D3,$C3,0)

用词讲:如果当前行D列中的日期与当前列2行中的日期相同,则从当前行C列中获取值,否则返回0。

enter image description here