Excel 公式:如果单元格包含“...”,则根据首字母缩写规则将“...”插入相邻的单元格

时间:2021-03-30 18:20:22

标签: excel excel-formula

我有一长串基于 SKU 的商品名称,例如:

  • SKU = 商品名称
  • TS = 男士 T 恤
  • PP = 男裤
  • PT = 普通口袋 T 恤
  • MS = 男士短裤
  • B = 拳击手
  • BB = 平角内裤

如何根据 C 列中的 sku 在 B 列中生成项目名称? 目前,我正在使用

<块引用>

=IF(ISNUMBER(SEARCH("...",C1)), "...")

visual example

这个公式有效,但是在每个单元格中手动输入“B”和“Boxer”很乏味。我如何自动执行此操作?

我发现了类似的 here,但我不知道如何对其进行逆向工程。

1 个答案:

答案 0 :(得分:0)

假设您有一个名为 SKU结构化参考表,如下所示:

SKU Table

请注意,您必须按字母顺序 (A-Z) 对 Code 列进行排序。

假设您要根据C列的SKU代码返回B列的产品名称,在单元格B2中输入以下公式并向下拖动:

=LOOKUP(2,1/--ISNUMBER(SEARCH(SKU[Code],C2)),SKU[Name])

见下面的演示:

Result Table

这里的关键步骤是先建立一个查找表,然后您就可以根据SKU代码查找产品名称(使用SEARCH功能)。

================ 添加解决方案 ================

要解决产品代码包含在另一个产品代码中而不返回正确产品名称的问题,请改用以下公式(假设您的所有产品代码仅由字母组成,没有任何数字):

=LOOKUP(LEFT(C2,MIN(IFERROR(FIND(ROW($1:$10)-1,C2),LEN(C2)))-1),SKU[Code],SKU[Name])

上面公式的关键是找出产品代码在每个文本字符串中的结束位置,例如产品代码以该文本字符串的第二个字符PP416结尾,下面的公式将返回数字2 表示:

=MIN(IFERROR(FIND(ROW($1:$10)-1,C2),LEN(C2))

然后您可以使用LEFT函数从文本字符串中提取产品代码,并使用LOOKUP函数返回相应的产品描述。

Second solution

如果你的Excel版本有XLOOKUP功能,我建议你用XLOOKUP替换LOOKUP,其余公式不变。您可以谷歌搜索如何使用 XLOOKUP,因为它比 LOOKUP 更强大。

如果您有任何问题,请告诉我:)