首页 > 解决方案 > VLOOKUP 单元格中的每个单词以执行缩写解码

问题描述

想要使用公式提供解码多个缩写

我有一个由所有“缩写”单词组成的单元格表,我想使用查找表对它们进行解释。VLOOKUP、INDEX(MATCH) 或数组公式均优于宏。

主表:

Column A | Column B                 | Column C
Part No. | Description              | DESIRED OUTPUT
ABC101   | CAL 40 UKE WH RD         | California 40" Ukelele White Red 
ABC202   | DLX 55 GTR BK BL         | Deluxe 55" Guitar Black Blue
ABC303   | CAL HD 40 VIO RD BL      | California Hot Dog 40" Violin Red Blue

缩写可以按任何顺序排列,有些可能不存在。

查找表:

Column J | Column K
Abbrev   | Expansion
CAL      | California
DLX      | Deluxe
UKE      | Ukelele
GTR      | Guitar
VIO      | Violin
WH       | White
BK       | Black
RD       | Red
BL       | Blue
40       | 40"
55       | 55"
etc.

我想我可以将“B 列”描述拆分为多列(使用MID(FIND(" ")——而不是“文本到列:分隔”),然后查找每一列,忽略空白和错误,并集中结果,但我想在一个超级公式中做到这一点。可能的?

标签: exceltextvlookup

解决方案


感谢您提供文本形式的数据示例。使复制/粘贴到 Excel 变得容易。

一个不太好的公式怎么样:

我将 HD 添加到缩写列表中,并为该列表使用了一个(可以轻松添加、更改、删​​除,而无需担心调整引用)。

=TEXTJOIN(" ",TRUE,
       INDEX(tblAbb[Expansion],
               MATCH(TEXT(
                          FILTERXML("<t><s>" & SUBSTITUTE(B2," ","</s><s>") & "</s></t>","//s"),"@"),
                             tblAbb[Abbrev],0)))

在此处输入图像描述

在此处输入图像描述

算法

  • FILTERXML返回单个缩写的数组
  • MATCH返回缩写表中这些缩写的行号的数组。
  • INDEX使用返回的数组返回MATCH扩展字符串。
  • TEXTJOIN将该数组与space每个扩展之间的分隔符连接在一起。

推荐阅读