Excel 中的复杂查找
Complicated Lookup in Excel
我在工作表 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
我想查看工作表 1 上的第三列,它根据选项查找定义。
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 函数,因为用逗号分隔的选项以及查找、搜索和索引和匹配函数都没有帮助,因为选项的数量是多种多样的。
感谢您的提前帮助。
假设您的选项总是四个字符长,因此您不必担心它们是另一个选项中的子字符串。这样你就不需要用逗号填充它们来进行精确匹配。所以使用 Microsoft365,试试:
C2
中的公式:
=TEXTJOIN(", ",,FILTER(B:B,ISNUMBER(FIND(A:A,B2))))
在 Excel 2019 年,您将使用 CSE-entered 公式,例如:
=TEXTJOIN(", ",,IF(ISNUMBER(FIND(A:A,B2)),B:B,""))
在任何其他情况下,我建议您开始开发一个 UDF 来模仿 TEXTJOIN()
功能。
我在工作表 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 |
我想查看工作表 1 上的第三列,它根据选项查找定义。
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 函数,因为用逗号分隔的选项以及查找、搜索和索引和匹配函数都没有帮助,因为选项的数量是多种多样的。 感谢您的提前帮助。
假设您的选项总是四个字符长,因此您不必担心它们是另一个选项中的子字符串。这样你就不需要用逗号填充它们来进行精确匹配。所以使用 Microsoft365,试试:
C2
中的公式:
=TEXTJOIN(", ",,FILTER(B:B,ISNUMBER(FIND(A:A,B2))))
在 Excel 2019 年,您将使用 CSE-entered 公式,例如:
=TEXTJOIN(", ",,IF(ISNUMBER(FIND(A:A,B2)),B:B,""))
在任何其他情况下,我建议您开始开发一个 UDF 来模仿 TEXTJOIN()
功能。