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

时间:2016-03-01 16:03:18

标签: google-sheets formulas array-formulas

在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”。

1 个答案:

答案 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)))