将 SPLIT() 的结果保留为字符串而不是 VLOOKUP() 的数字

Keep result of SPLIT() as string instead of number for VLOOKUP()

在 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 的结果,使每个部分仍然是一个字符串?

我有一份 public 测试电子表格副本,可在此处查看:
https://docs.google.com/spreadsheets/d/115WmV0vfXfaRgT0fVifJo86od3irZQy5gB3l-g6c7Ts/edit?usp=sharing


作为背景信息,VLOOKUP 以不同方式处理字符串和数字。例如,给定此 table(第一列显示公式):

              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".

您可以 CONCAT 带有空字符串的数字将其转换为等效的字符串表示形式。

CONCAT(1.2,"") 产生 "1.2"

要对每个值执行此操作,您必须将 CONCAT() 调用包装在 ARRAYFORMULA():

=ARRAYFORMULA(CONCAT(SPLIT(F2,", "),""))

最终公式变成:

=TRANSPOSE(ARRAYFORMULA(VLOOKUP(ARRAYFORMULA(CONCAT(SPLIT(F2,", "),"")),A2:B8,2,FALSE)))