如何删除从 excel 单元格中重复的文本部分 - 有公式吗?

How to delete the part of the text that is repeated from excel cell - is there a formula?

我不是高级用户,但我会尽量具体。 有谁知道如何执行以下操作:我在单元格 A1 中有一些短语。我在单元格 B1 中有相同的短语,但 B1 可能包含一些其他短语。我在单元格 C1 中的首选结果是来自 B1 的文本,没有来自单元格 A1 的特定短语在 A1 中出现的次数无论它出现在哪里 在 A1 中)。 A2、B2、C2、A3、B2、C3 依此类推...

让我用一个例子来解释:我只想从 B1 中删除短语 "Msg from"(与 "Msg from" 在 A1 中出现的次数一样多,而不管 "Msg from" 在 A1 中出现的位置)

A1 Smth else, Msg from, Msg from ---> 有两个 "Msg from"

B1 Msg from, Msg from, Msg from, Smth else, Smth else---> 有三个 "Msg from"

C1 (preferred result) Msg from, Smth else, Smth else ---> 我只想要一个 "Msg from" (3 "Msg from" - 2 "Msg from" = 1 "Msg from")

A2 消息来自,Smth else,Smth else

B2 Smth else, Smth else, Msg from, Smth else

C2(首选结果)Smth else,Smth else,Smth else

A3 Smth else, Msg from, Smth else, Msg from

B3 Smth else, Smth else, Msg from, Msg from, Smth else, Msg from

C3(首选结果)Smth else,Smth else,Smth else,消息来自

...

好的,如果有人有任何想法,或者需要更多解释,请回答,我有超过 10,000 行可以这样排列。非常感谢!

=SUBSTITUTE(B2,D2,"")&REPT(", "&D2,(LEN(B2)-LEN(SUBSTITUTE(B2,D2,"")))/LEN(D2)-(LEN(A2)-LEN(SUBSTITUTE(A2,D2,"")))/LEN(D2))

假设您可以将目标文本或 MSG FROM 放在 D2 中,或者直接放在公式中替换 D2。按要求抄下来。

这会将 B2 中的所有目标文本替换为空或“”。然后它将在目标文本上添加到消息末尾所需的实例数。这是 B 列中的计数 - A 列中的计数。

以下公式计算目标文本在B2中出现的次数:

(LEN(B2)-LEN(SUBSTITUTE(B2,D2,"")))/LEN(D2)

为了计算目标文本在 A2 中出现的次数,我们调整公式并得到:

(LEN(A2)-LEN(SUBSTITUTE(A2,D2,"")))/LEN(D2)

根据您的意见,A列和B列出现次数之差的答案是前面两个公式的差:

=(LEN(B2)-LEN(SUBSTITUTE(B2,D2,"")))/LEN(D2)-(LEN(A2)-LEN(SUBSTITUTE(A2,D2,"")))/LEN(D2)

如果结果为负,则表示它在 A 中出现的次数多于在 B 中出现的次数。结果为 0 表示出现次数相等。

概念验证:

您可以使用查找和替换轻松完成此操作,但在替换部分找到所有内容后不要写任何内容,然后按替换将删除在整个单元格中重复的相同文本部分