Excel 中有条件删除部分文本

Excel 中有条件删除部分文本

你好,下面是一些单元格,其中的文本大小随机,用 * 或 % 或 % 和 * 或 * 和 % 或多个 % 或没有任何内容以及一些点分隔。

单元格 A1:adlkjadflaskd*kljadkfjasdkfjhas

单元格 A2:adslfkjasdfçlkjlkjlksjdflsdfs%309982409

单元格 A3:lkaçlaskjdfçklsadjf%sdakdaçsdlkfjaçsl%kdf

单元格 A4:lkaçlaskj%dfçklsadjfsdakdaçs%dlkfjaçsl%kd%foi.emb%bl.za*

单元格 A5:lkaçlaskj%dfçklsadjfs*dakdaçs%dlkfjaçsl%kd%.rdpdi

单元格 A6:lkaçlaskj%dfçklsadjfs*dakdaçs%dlkfjaçsl%kd%e.nem

单元格 A7:lkaçlaskj%dfçklsadjfs%dakdaçs%dlkfjaçsl%kd%ensjc。

单元格 A8:lkaçlaskj%dfçklsadjfs*dakdaçs%dlkfjaçsl%kd%qsam

单元格 A9:alksd.jflskjd

单元格 A10:.alksd.jflskjd

单元格 A11:alksdjflskjd。

单元格 A12:asdsad

请问我该如何编写表达以下内容的公式?

a) 如果仅存在 *(并且 % 不存在),则删除右侧的所有内容(包括它),仅给出左侧部分作为结果(例如,单元格 B1 将给出结果:单元格 B1:adlkjadflaskd)

b) 如果仅存在 %(并且 * 不存在),则删除左侧的所有内容(包括它),并仅给出右侧部分作为结果(例如,单元格 B2 将给出结果:单元格 B2:309982409)

c) 如果 * 和 % 同时存在,当 * 出现在前面并且 % 或 * 以任意顺序出现在最后两个后面时,则只给出第一个 * 之前的内容,并删除第一个 * 之后的其余内容(例如,单元格 B3 将给出结果:单元格 B3:lkaçlaskjdfçklsadjf)

d) 如果 % 和 * 同时存在,当 % 比 * 先出现或即使另一个 % 出现在第一个 % 之后,则仅给出结果,如果 * 是 % 之后的下一个符号(如果不是,则先不获取结果),并且文本中的 % 和 * 之间存在一个点(.),而不在任何其他位置(开始/结束)。如果有 %textwithpointinside*,则获取结果,如果没有,则不获取结果。如果文本之间不存在点,则检查单元格的其余部分是否存在另一个 %textwithpointinside* 的直接组合来打印发生的第一个结果,如果发生了一个结果,则不需要在单元格的其余部分查找其他结果,只打印第一个结果。如果 % 和 * 之间没有带点的结果,则将结果留空。 (例如,将给出结果:单元格 B4:foi.emb(因为 % 和 * 一起存在而 % 在前面,并且 %foi.emb* 是 %textwithpoint* 的第一次出现,而 %bl.za* 是第二个结果,因此这个第二个结果将不予考虑,只有第一个结果会转到单元格 B4)

e) 如果 % 和 * 同时存在(例如单元格 A5 和 A6),并且 % 先出现但没有任何直接的 %textwithpointinside*,或者单元格中存在多个 %(例如单元格 A7)且没有任何 *,则转到单元格的最后一个 % 并给出最后一个 % 后右侧的最后一个文本,但前提是最后一个文本内有一个点,如果 pont 在文本之前(单元格 A5)、文本之后(单元格 A7)或不存在(单元格 A8),则留空。 (例如,结果为:单元格 B5:空(因为最后一个 % 之后,点在文本之前,而不是在文本内部),单元格 B6:e.nem(确定,因为最后一个 % 之后,文本内部有一个点。结果不是 dfçklsadjfs,因为上面没有点,否则如果有的话就是它了),单元格 B7:空(因为最后一个 % 之后,点不在文本内部,而是在文本末尾),单元格 B8:空(因为最后一个 % 之后没有点)

f) 如果不存在 * 或 % ,则仅当文本中包含至少 1 个点(单元格 A9)时,才复制单元格的全文作为结果。如果文本前(单元格 A10)或文本后(单元格 A11)有一个点,则结果留空。如果任何地方都没有点(单元格 A12),则结果留空。(例如,结果为:单元格 B9:alksd.jflskjd(因为没有 % 或 *,但有带点的文本),单元格 B10:空(因为文本前有一个点),单元格 B11:空(因为文本后有一个点),单元格 B12:空,(因为没有 * 或 % 或点)

谢谢

答案1

由于您的要求不是很清楚,我将提供部分公式来获得 A1、A2、A5 和 A6 的结果。

如下图所示,你可以尝试这个公式:

=IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"*","")))=1,LEFT(A1,FIND("*",A1)-1),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,"%","")))=1,MID(A1,FIND("%",A1)+1,LEN(A1)-FIND("%",A1)),IF(SUMPRODUCT(LEN(A1)-LEN(SUBSTITUTE(A1,".","")))=1,A1,"")))

在此处输入图片描述

对于A3,A4,请提供正确的信息,我会帮助你完成这个公式。

相关内容