【发布时间】:2017-08-24 13:04:51
【问题描述】:
如何在 MS Excel 15.4 中执行此操作
我想将A列处理成B列
Column A | Column B
----------------------------------------------------------------------
one, 1, two, 2, three, 3 | one apple, two bananas, three strawberries
one, 1, four, 4 | one apple, four oranges
.......................
... many other rows ...
.......................
two, 2, four, 4, three, 3 | two bananas, four oranges, three strawberries
A 列 可以在查找表中有 n 个匹配的子字符串。
我有另一张表(查找表),其中包含将 A 列 中的文本替换为
的内容Match col | Replace col
----------------------------
one, 1 | one apple
two, 2 | two bananas
three, 3 | three strawberries
four, 4 | four oranges
... and many more ...
我想用查找表的 替换 col 值替换 A 列 中的所有子字符串
看起来我可以将VLOOKUP 与SUBSTITUTE 结合起来,但我正在努力解决它
【问题讨论】:
-
你试过什么?您是否需要将返回的值放在 B 列中? (如果你可以先做 B,然后是 C,然后是 D,等等,这可能会更容易一些,具体取决于有多少结果)。每个单元格总是返回三个,还是仅在您的示例中?
-
你可以使用辅助表/列吗?在运行
Substitute公式后,我正在考虑将您的数据通过文本拆分为列,该公式将使您的A 列变为one, 1; two, 2; three, 3。这可能对你有用吗?但是如果你有 4 个或更多的替代品,它可能会变得笨拙。为此,您可能需要 VBA。 -
@BruceWayne 我把引用表放在 K1:L4 中,然后在 B1 中使用它:
=TEXTJOIN(",",TRUE,IF(ISNUMBER(SEARCH($K$1:$K$4,A1)),$L$1:$L$4,""))这是一个数组公式,所以 Ctrl-Shift-Enter。但它需要 Office 365 Excel 订阅。 B2 中的另一个(每个单元格):=IFERROR(INDEX($L:$L,AGGREGATE(15,6,ROW($K$1:$K$4)/(ISNUMBER(SEARCH($K$1:$K$4,$A1))),COLUMN(A:A))),"")上下拖动。 -
@BruceWayne 注意,将输出按参考列表的顺序而不是 A 列的顺序。
-
标签: excel excel-formula