将 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)))
在 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)))