提问人:Rasec Malkic 提问时间:11/17/2023 最后编辑:Mayukh BhattacharyaRasec Malkic 更新时间:11/17/2023 访问量:33
Vlookup喜欢公式,以搜索范围内带有文本字符串的值
Vlookup like formula to search value with text string in a range
问:
我正在尝试在 B2:B6 中的值中搜索 E1 中的值,并使用 Excel 365 从 A 列中获取相应的字母。
我尝试过这个公式,但似乎我没有正确使用,因为该函数出现错误或错误的结果。TEXTSPLIT()
MATCH()
E1: =MATCH(E1,TEXTSPLIT(B2:B6,",")*1,0)
H1型 | H2型 |
---|---|
一个 | 1,6,8,9,11,27 |
B | 2,10,14,21,22,23,24,26,33 |
C | 3 |
D | 4,7 |
E | 12,13 |
低于 E3:H3 中的预期结果,用于在 E1:H1 中搜索的不同值。感谢您的帮助。
答:
1赞
Mayukh Bhattacharya
11/17/2023
#1
不需要使用,也可以使用以下公式:TEXTSPLIT()
• 细胞中使用的配方E2
=LOOKUP(2,1/SEARCH(","&E$1&",",","&$B$2:$B$6&","),$A$2:$A$6)
或者,使用BYCOL()
=BYCOL(E1:H1,LAMBDA(α, LOOKUP(2,1/SEARCH(","&α&",",","&$B$2:$B$6&","),$A$2:$A$6)))
或者,使用TEXTSPLIT()
=TOCOL(IFS(IFERROR(--TEXTSPLIT(TEXTAFTER(","&$B$2:$B$6,",",SEQUENCE(,MAX(LEN($B$2:$B$6)-LEN(SUBSTITUTE($B$2:$B$6,",",))+1))),","),"")=E$1,$A$2:$A$6),2)
注意:为什么没有像你试图实现的那样工作,这是因为该函数被设计为使用单个文本字符串进行操作,将它们分解为行和列。当您将数组作为输入传递时,该函数不会将其识别为数组,而是将其假定为单列值并输出相同的值,而其余的值则被丢弃。TEXTSPLIT()
或者,使用TOROW()
=TOROW(IF(1-ISERR(SEARCH(","&E$1&",",","&$B$2:$B$6&",")),$A$2:$A$6,p),2)
或
• 细胞中使用的配方E2
=BYCOL(IF(1-ISERR(SEARCH(","&E1:H1&",",","&$B$2:$B$6&",")),A2:A6,""),CONCAT)
或者,为什么不以这种方式:
• 细胞中使用的配方E2
=INDEX($A$2:$A$6,XMATCH("*,"&E1&",*",","&$B$2:$B$6&",",2))
或用于溢出BYCOL()
=BYCOL(E1:H1,LAMBDA(α, INDEX($A$2:$A$6,XMATCH("*,"&α&",*",","&$B$2:$B$6&",",2))))
评论
0赞
Rasec Malkic
11/17/2023
有时我读到,在这样的论坛上,你可以得到惊喜的帮助。这是其中之一!!非常感谢您的帮助、解释和分享的不同解决方案。不知道为什么,唯一失败的是我=BYCOL(IF(1-ISERR... ... A2:A6,""),CONCAT)
0赞
Mayukh Bhattacharya
11/17/2023
在我这边工作,啊,这可能是因为你需要启用。Beta Channel
评论