Excel公式:用字内破折号replace空格,除了字内破折号,并删除字内破折号之间的空格

我一直在寻找Stackoverflow的解决scheme,并在Excel中试验了几个小时。 我想知道如何用字内短划线replace空白区域,除了已经存在的字内短划线,以及删除excel中的字内短划线之间的拖尾和前导空格。 例如在一个Excel单元格中,我有:

Frontline Topspot for dogs 89 - 132 lbs (12 Month Supply) 

我想转换成

 Frontline-Topspot-for-dogs-89-132-lbs-(12-Month-Supply) 

有任何想法吗? 这个问题的目的是将解决scheme应用于我的产品列表电子表格中的“产品名称”列。 有任何想法吗?

如果我理解正确,下面的步骤会起作用吗? 原来在单元格A1:

= SUBSTITUTE(TRIM(SUBSTITUTE(A1,“ – ”,“”)),“”,“ – ”)

或者,在VBA中,

 Sub dashes() stringA = "Frontline Topspot for dogs 89 - 132 lbs (12 Month Supply)" stringB = Application.WorksheetFunction.Substitute(stringA, "-", " ") stringC = Application.WorksheetFunction.Trim(stringB) stringD = Application.WorksheetFunction.Substitute(stringC, " ", "-") End Sub 

用空格replace现有的破折号,修剪多余的空格,并用破折号replace空格?

键入下一个单元格= SUBSTITUTE(A1,“”,“ – ”)

首先,处理“富吧”的情况:

 =SUBSTITUTE(A1," - ", "-") 

然后,处理“富吧”的情况:

 =SUBSTITUTE(A1," ","-") 

现在把这两个放在一起:

 =SUBSTITUTE(SUBSTITUTE(A1," - ", "-")," ","-") 

通过首先消除“ – ”,我们现在知道所有剩下的“”必须replace为“ – ”。

replace空格,任何与“ – ”的东西现在将是—

用。。。来代替 ”-”

 =SUBSTITUTE(SUBSTITUTE(A1," ","-"),"---","-")