我正在尝试在一行(特定单元格)中返回一个输入值,其中与输入值在同一行中的输入日期与第一行中的日期匹配。
在这个论坛和其他研究中,我确定索引匹配功能比vlookup更好。
我意识到索引函数使用列引用从中返回一个值,因此索引匹配函数返回与匹配条件列号相关的相关行号的结果。
函数如下所示:= IF($ E $ 3 = $ G $ 2:$ L $ 2,INDEX($ D:$ D,MATCH($ E $ 3,$ G $ 2:$ L $ 2,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。