在Google表格中,我有以下公式:
=ARRAYFORMULA( VLOOKUP( SPLIT(F2,", "), A2:B8, 2, FALSE) )
目的是在单元格F2
中使用逗号分隔的字符串,并找到与这些部分关联的所有值。这可以正常工作,除非其中一个字符串看起来像一个数字。例如,如果F2
的文字为a, 1.2, 1.2.3
,则VLOOKUP会将a
视为字符串,将1.2.3
视为字符串,但会查找1.2
作为一个数字。
如何强制SPLIT的结果以使每个部分保持字符串?
我有一个可在此查看的测试电子表格的公开副本:
https://docs.google.com/spreadsheets/d/115WmV0vfXfaRgT0fVifJo86od3irZQy5gB3l-g6c7Ts/edit?usp=sharing
作为背景信息,VLOOKUP以不同方式处理字符串和数字。例如,给定此表(其中显示第一列的公式):
A B
1 ="1.2" STR
2 =1.2 NUM
4 =VLOOKUP("1.2",A1:B2,2,0)
5 =VLOOKUP(1.2,A1:B2,2,0)
... A4中显示的值为“STR”,A5中显示的值为“NUM”。
答案 0 :(得分:1)
您可以CONCAT
一个带有空字符串的数字,将其转换为等效的字符串表示形式。
CONCAT(1.2,"")
收益"1.2"
要为每个值执行此操作,您必须将CONCAT()
电话打包在ARRAYFORMULA()
中:
=ARRAYFORMULA(CONCAT(SPLIT(F2,", "),""))
最终公式因此变为:
=TRANSPOSE(ARRAYFORMULA(VLOOKUP(ARRAYFORMULA(CONCAT(SPLIT(F2,", "),"")),A2:B8,2,FALSE)))