【问题标题】:Keep result of SPLIT() as string instead of number for VLOOKUP()将 SPLIT() 的结果保留为字符串而不是 VLOOKUP() 的数字
【发布时间】:2023-03-28 10:38:01
【问题描述】:

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

【问题讨论】:

    标签: google-sheets formulas array-formulas


    【解决方案1】:

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

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

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

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

    因此最终公式变为:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-25
      • 2015-10-17
      • 2015-05-11
      • 1970-01-01
      • 2011-06-23
      • 2019-07-08
      • 1970-01-01
      相关资源
      最近更新 更多