【问题标题】:How to delete spaces between two words?如何删除两个单词之间的空格?
【发布时间】:2021-01-31 08:12:13
【问题描述】:

我有一个名称列表,我想在每个名称旁边创建一个列,以便在以下情况下发布名称更正:

  • 如果名称中包含“EL”或“AL”且两者后有空格,则需要删除该空格并将EL或AL与下一个单词连接,如下表所示:李>

我试图发挥作用

 =SUBSTITUTE(A2, "Al*","AL")

【问题讨论】:

  • 请附上您使用edit 尝试过的公式,并说明什么不起作用。
  • 您的“其他条件”与第一个条件的示例相同。请给出有关您在此处尝试执行的操作的适当示例。现在没有多大意义。
  • Substitute() 可以用空白代替空格,即什么都没有。
  • “如果名称包含“El”或“AL”并且两者后面都有空格”到底是什么意思?它们应该“El”还是“AL”,或者如您所说,应该是“UiEl”、“AmAL”之类的东西?
  • This is my attempt for the first two conditions。无法将其发布为答案,因为人们关闭了问题。公式:=IF(OR(LEFT(UPPER(A1),2)={"EL","AL"}),IF(MID(A1,3,1)=" ",SUBSTITUTE(A1," ","",1), SUBSTITUTE(A1,LEFT(A1,2),LEFT(A1,2)&" ",1)),A1)

标签: excel vba excel-formula excel-2010 substitution


【解决方案1】:

按照您提出问题的方式,ELElALAl 似乎都有可能。假设这些子字符串不会出现在字符串的开头,并且由于SUBSTITUTE() 区分大小写,您可以尝试:

B1中的公式:

=PROPER(SUBSTITUTE(SUBSTITUTE(LOWER(G1)," al "," al")," el "," el"))

【讨论】:

  • 谢谢 JvdV,公式有效。它帮助了我很多,并设法通过使用这个公式来增加更多的可能性 ,但是如果 al 或 el 在句子的开头,它不起作用,是否应该在提到的公式中嵌套一个额外的函数?
【解决方案2】:

如果是在开头,这也可以:

=IFERROR(REPLACE(A2;FIND(" ";A2;FIND("el";LOWER(A2)));1;"");IFERROR(REPLACE(A2;FIND(" ";A2;FIND("al";LOWER(A2)));1;"");A2))

我确实假设如果后面有空格,则应该替换它。如果您特别需要检查空间是否为 2 个字符,我会将“查找”部分放在辅助列中。 注意:我使用的是欧盟 Excel,因此您可能需要更换 ;用 , 让公式为您工作。

祝你好运,

【讨论】: