我尝试对不同行中的目标数据执行Vlookup。但不幸的是,我找不到方法。Vlookup、Hlookup无法正确获取目标数据。你能给个建议吗?资源数据表
Vlookup
Hlookup
结果输出(预期)
匹配ID号由这些目标数据组成。
disbfnqx1#
你在VLookup()和HLookup()上走错了路。请尝试使用此:(为便于阅读,多行显示)
VLookup()
HLookup()
=TEXTJOIN(",", TRUE, IF(NOT(ISBLANK(I3)),"POWER", ""), IF(NOT(ISBLANK(K3)),"MB", ""), IF(NOT(ISBLANK(M3)),"ANT", "") )
让我解释一下:
TextJoin()
","
TRUE
IF(NOT(ISBLANK(I3)),"POWER", "")
I3
你在找这样的东西吗?
ru9i0ody2#
对......所以,这在技术上符合你的要求。但我怀疑这可能不完全是你真正想要的。恐怕你原来的问题很不清楚,我不得不作出一些猜测/假设。
=CONCAT( IF(INDEX($H$3:$H$5,MATCH($A11,$A$3:$A$5,0))<>"",$G$1 & ", ",""), IF(INDEX($J$3:$J$5,MATCH($A11,$A$3:$A$5,0))<>"",$I$1 & ", ",""), IF(INDEX($L$3:$L$5,MATCH($A11,$A$3:$A$5,0))<>"",$K$1 & ", ","") )
CONCAT函数只是将字符串一个接一个地加在一起,在它里面,我们为每个合并的列标题都有一个公式。
CONCAT
所以,内在的公式:
IF(INDEX($H$3:$H$5,MATCH($A11,$A$3:$A$5,0))<>"",$G$1 & ", ",""),
与VLOOKUP类似,INDEX/MATCH返回特定ID编号的POWER参考编号。如果没有参考编号,则返回空字符串。如果有参考编号,则返回后面的逗号和空格。对每个Ref列重复此操作,然后CONCAT将所有结果粘在一起,但这会留下一个尾随逗号,如果需要的话,可以相对简单地删除它,我将把它留给您自己解决。至于返回参考号本身,可以用同样的方法完成,但不是返回标题,而是重复INDEX/MATCH公式:
VLOOKUP
INDEX
MATCH
=CONCAT( IF(INDEX($H$3:$H$5,MATCH($A11,$A$3:$A$5,0))<>"",INDEX($H$3:$H$5,MATCH($A11,$A$3:$A$5,0)) & ", ",""), IF(INDEX($J$3:$J$5,MATCH($A11,$A$3:$A$5,0))<>"",INDEX($J$3:$J$5,MATCH($A11,$A$3:$A$5,0)) & ", ",""), IF(INDEX($L$3:$L$5,MATCH($A11,$A$3:$A$5,0))<>"",INDEX($L$3:$L$5,MATCH($A11,$A$3:$A$5,0)) & ", ","") )
2条答案
按热度按时间disbfnqx1#
你在
VLookup()
和HLookup()
上走错了路。请尝试使用此:(为便于阅读,多行显示)
让我解释一下:
TextJoin()
根据以下条件连接信息:","
:要使用的分隔符TRUE
:如何处理空单元格IF(NOT(ISBLANK(I3)),"POWER", "")
:如果填写了I3
,则需要填写单词"POWER",如果没有填写,则填写空字符串。你在找这样的东西吗?
ru9i0ody2#
对......所以,这在技术上符合你的要求。但我怀疑这可能不完全是你真正想要的。恐怕你原来的问题很不清楚,我不得不作出一些猜测/假设。
CONCAT
函数只是将字符串一个接一个地加在一起,在它里面,我们为每个合并的列标题都有一个公式。所以,内在的公式:
与
VLOOKUP
类似,INDEX
/MATCH
返回特定ID编号的POWER参考编号。如果没有参考编号,则返回空字符串。如果有参考编号,则返回后面的逗号和空格。对每个Ref列重复此操作,然后
CONCAT
将所有结果粘在一起,但这会留下一个尾随逗号,如果需要的话,可以相对简单地删除它,我将把它留给您自己解决。至于返回参考号本身,可以用同样的方法完成,但不是返回标题,而是重复
INDEX
/MATCH
公式:VLOOKUP
?**您可能会想知道为什么我使用INDEX
/MATCH
公式,而不是VLOOKUP
公式。VLOOKUP
可以工作,但是,INDEX
/MATCH
在各个方面都更好。据我所知,从来没有VLOOKUP
是更好的选择的情况。INDEX
/MATCH
更快。当您有成百上千个公式时,通常只需交换出所有的VLOOKUP
,就可以大幅提高工作簿的速度。INDEX
/MATCH
的用途更广泛。它可以用于行或列,查找范围可以是任何位置。您甚至可以使用INDEX
/MATCH
/MATCH
在二维表格中查找值。INDEX
/MATCH
更稳定。移动或重新排序列不会破坏公式。INDEX
/MATCH
更容易使用。如果你习惯了VLOOKUP
,它可能看起来很混乱,但是一旦你理解了它,它实际上更容易使用,因为你可以直接引用范围,而不是计算列数。