【问题标题】:Complicated Lookup in ExcelExcel 中的复杂查找
【发布时间】:2021-08-31 23:57:59
【问题描述】:

我在工作表 1 上的 Excel 中有一个表 1,其中显示了用逗号分隔的产品选项。

Model Options
G35UA A30E,F41A,F01B
G35UD A30E,F41A,F01B,PDIA
G35US A30E,F41A,K36B
G35UF A30E,XA43,L37A,J18G
G35UB A30E,F41A,F01B,FOOD,XA43,S10A

我在 sheet2 上有一个 table2 显示选项的定义。

Option Definition
A30E Backup Camera
F41A Fire Ext
F01B Drive Tires
PDIA Factory PDI
K21D Backup Alarm
E911 Cascade SS
K36B K Pad
D59B Full Dashboard
TR96 Tail
S10A Sun Roof

我希望在 sheet1 上查看基于选项查找定义的第三列。

Model Options Definition
G35UA A30E,F41A,F01B Backup Camera, Fire Ext, Drive Tires
G35UD A30E,F41A,F01B,PDIA Backup Camera, Fire Ext, Drive Tires, Factory PDI
G35US A30E,F41A,K36B Backup Camera, Fire Ext, K Pad
G35UF A30E,XA43,L37A,J18G Backup Camera
G35UB A30E,F41A,F01B,FOOD,XA43,S10A Backup Camera, Fire Ext, Drive Tires, Sun Roof

我没有成功使用 vlookup 功能,因为以逗号分隔的选项以及查找、搜索以及索引和匹配功能都没有帮助,因为选项的数量是多种多样的。 提前感谢您的帮助。

【问题讨论】:

    标签: excel vba excel-formula vlookup


    【解决方案1】:

    假设您的选项总是四个字符长,因此您不必担心它们是另一个选项中的子字符串。这样您就不需要用逗号填充它们以进行精确匹配。因此,使用 Microsoft365,尝试:

    C2中的公式:

    =TEXTJOIN(", ",,FILTER(B$9:B$18,ISNUMBER(FIND(A$9:A$18,B2))))
    

    在 Excel 2019 中,您可以使用 CSE 输入的公式,例如:

    =TEXTJOIN(", ",,IF(ISNUMBER(FIND(A$9:A$18,B2)),B$9:B$18,""))
    

    在任何其他情况下,我建议您开始开发 UDF 来模仿 TEXTJOIN() 功能。

    【讨论】:

    • 非常感谢,@JvdV 你太棒了。我正在使用 Excel 2016,而 TEXTJOIN 不是一个已知的函数,而且我也没有使用 UDF 的经验。任何想法。
    猜你喜欢
    • 2012-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-21
    相关资源
    最近更新 更多