有没有办法让 Excel 删除每一行中的特定单词?例如,每行都写着 Mr. 和 Mrs. {first name} {last name},我想从每行中删除 {first name}。(或者,提取前三个单词和最后一个单词,然后将它们合并。)
谢谢!
答案1
这是我的解决方案。部分使用这。
=LEFT(A6,FIND(" ",A6,FIND(" ",A6,FIND(" ",A6)+1)+1))&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ","")))))
这样会保留前 3 个单词和最后一个单词,并且不需要假设前三个单词是“Mr. and Mrs.”。如果您确实假设,则可以使用较短的版本:
="Mr. and Mrs. "&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ","")))))
编辑:使用我的顶级公式和这个公式(只给出第一个和最后一个词):
=LEFT(A6,FIND(" ",A6))&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ","")))))
我们可以将它们与 if 语句结合起来……我不确定哪种 if 语句最好,但让我向您展示一个 if 语句,其中我们计算语句中“。”的数量。如果是 2 或更大,则使用前 3 个单词和最后一个单词,否则仅使用第一个单词和最后一个单词。
IF(LEN(A6)-LEN(SUBSTITUTE(A6,".",""))>=2,LEFT(A6,FIND(" ",A6,FIND(" ",A6,FIND(" ",A6)+1)+1))&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ",""))))),LEFT(A6,FIND(" ",A6))&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ",""))))))
编辑2:如果您想使用 -and- 解决方案,您可以使用以下公式:
=LEFT(A6,FIND(" ",SUBSTITUTE(A6," and ","-and-")))&RIGHT(A6,LEN(A6)-FIND("@",SUBSTITUTE(A6," ","@",LEN(A6)-LEN(SUBSTITUTE(A6," ","")))))
答案2
这是查找第三个单词的公式,但它很长:
=MID(MID(MID(SUBSTITUTE(A1," ","^",3),1,256),FIND("^",SUBSTITUTE(A1," ","^",3)),256),2,FIND(" ",MID(MID(SUBSTITUTE(A1," ","^",3),1,256),FIND("^",SUBSTITUTE(A1," ","^",3)),256))-2)
参考链接这里。
现在,将其放在一列中,单击并拖动,然后创建第二列以删除该词。
实际上,在您的具体情况下,您只需使用这个公式即可,在这个例子中,A1 包含字符串,而 C1 是上述公式所在的位置:
=LEFT(A1, 13) & RIGHT(A1,LEN(A1) - (13 + LEN(C1)))
当然,您可以用整个第一个公式替换 C1,以便将其全部包含在一个公式中。
答案3
上述所有解决方案都很棒;但是,一个好的方法(假设 John Smith 先生在一列)是tools to columns
从Data
菜单中执行并用作space
分隔符
答案4
我会使用 Ctr+F 并使用替换工具,只需键入您想要删除的单词,然后单击替换 - 这将用任何内容替换您选择的单词!