从字符串中删除:Excel中列中出现的所有单词
我已经找到了解决这个问题的方法——但我很难想象没有比我现在拥有的更简单的解决方案了 让我们假设在A列中,我有一个单元格,里面有以下单词从字符串中删除:Excel中列中出现的所有单词,excel,Excel,我已经找到了解决这个问题的方法——但我很难想象没有比我现在拥有的更简单的解决方案了 让我们假设在A列中,我有一个单元格,里面有以下单词 A1: Until A2: I A3: The A4: Have 在B1单元,我有一句话: "Until further notice, I have closed the Icecream store" 在单元格C1中,我希望它返回: "Further Notice, Closed Icecream Store" 目前,我一直在反复使用=SUBSTITU
A1: Until
A2: I
A3: The
A4: Have
在B1单元,我有一句话:
"Until further notice, I have closed the Icecream store"
在单元格C1中,我希望它返回:
"Further Notice, Closed Icecream Store"
目前,我一直在反复使用=SUBSTITUTE()函数,如下所示:
=PROPER(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(B1, $A$1, ""), $A$2, ""),$A$3, ""), $A$4, ""))
然而,有了这个公式,“冰激凌”中的“I”将被删除,而公式本身将不得不变得非常长,以便容纳A列中的数百个单元格
我发现的另一个同样笨拙的选项是,在单元格B1上使用=SPLIT()函数将字符串的每个单词分隔到它自己的单元格中(单元格C1:Z1),然后使用:
=IF(ISNUMBER(SEARCH(C1,$A$1:$A,1)),"",C1)
=IF(ISNUMBER(SEARCH(D1,$A$1:$A,1)),"",D1)
等等
在单元格AA1:AZ1中删除不需要的单词。最后在单元格BA1中,使用a=CONCATENATE()公式将所有单元格重新组合到所需字符串中。这个公式也会与“Icecream”中的“I”有问题,因此我发现唯一的解决方法是在A列中的每个单词前后加空格,并在B1中的字符串前后加空格
我很好奇,是否有更好的方法来解决这个问题,既不需要写一篇文章长的公式,也不需要使用数千个单元格和公式来分隔每个单词并单独检查
谢谢
泰勒考虑以下UDF()
例如:
因为比较是区分大小写的,所以我在A列中包含了小写和小写
用户定义函数(UDF)非常易于安装和使用:
=nojunk(B1,A1:A8)
要了解有关宏的更多信息,请参阅:
及
有关自定义项的详细信息,请参见:
考虑以下UDF():
例如:
因为比较是区分大小写的,所以我在A列中包含了小写和小写
用户定义函数(UDF)非常易于安装和使用:
=nojunk(B1,A1:A8)
要了解有关宏的更多信息,请参阅:
及
有关自定义项的详细信息,请参见:
使用googlesheets
REGEXREPLACE
和JOIN
函数,示例正则表达式可以是:
(?i)\b(Until|I|Have|The)\b
其中,(?i)
是忽略大小写标志,\b
是单词边界,()
是捕获组
=PROPER(TRIM(REGEXREPLACE(B1, "(?i)\b(" & JOIN("|", A1:A4) & ")\b", "")))
Trim
功能还可以删除单词之间的额外空格。
Excel 2016有函数,但还没有正则表达式函数(可以使用VBA UDF)
MicrosoftWord具有类似但有限的模式匹配,但在Word中加入该模式将非常具有挑战性。示例通配符替换Word中的模式:
使用Google SheetsREGEXREPLACE
和JOIN
函数,示例正则表达式可以是:
(?i)\b(Until|I|Have|The)\b
其中,(?i)
是忽略大小写标志,\b
是单词边界,()
是捕获组
=PROPER(TRIM(REGEXREPLACE(B1, "(?i)\b(" & JOIN("|", A1:A4) & ")\b", "")))
Trim
功能还可以删除单词之间的额外空格。
Excel 2016有函数,但还没有正则表达式函数(可以使用VBA UDF)
MicrosoftWord具有类似但有限的模式匹配,但在Word中加入该模式将非常具有挑战性。示例通配符替换Word中的模式:
如果少于约10个您知道要删除的唯一单词,您可以复制该列,按住Ctrl+H组合键,不使用任何内容查找/替换该单词,然后重复,直到您将其全部删除。如果您知道要删除的单词少于10个左右,您可以复制该列,按住Ctrl+H组合键,不使用任何内容查找/替换该单词,然后重复,直到您将其全部删除。您到底想实现什么?您描述的是您所做的,但不是理想的预期结果。使用Google SheetsREGEXREPLACE
和JOIN
功能更容易,如果这是一个选项的话。Google Sheets中的REGEXREPLACE
似乎是一个非常简单的选项。您能否详细说明如何将其用于“正则表达式”的多个输入?您到底想要实现什么?您描述的是您所做的,但不是理想的预期结果。使用Google SheetsREGEXREPLACE
和JOIN
功能更容易,如果这是一个选项的话。Google Sheets中的REGEXREPLACE
似乎是一个非常简单的选项。您能否详细说明如何将其用于“正则表达式”的多个输入?这是完美的。非常感谢你。除了单词之外,是否可以将其与符号(*&%\-.”和数字一起使用?@TylerSobel Mason啊是的,作为RE2语法一部分的特殊标点字符必须用“\”转义(例如“\(”)但是对于数字应该没有转义。数字必须转换为文本,但是我认为Join
函数会