我有100行数据,每行包含由逗号分隔的多个项目列表。例如:
狐狸,青蛙,狗,糖果, 泰勒,达人,霍格,劳拉, 戴着帽子,记住你最喜欢的一天,玩得开心等
你可以看到,它不是一个简单的"姓氏,名字"分离
我遇到的问题是当我使用文本到列时,我可以很容易地用逗号分隔,但是我会在列表中的每个第二项之前留下一个空格。我需要在每个逗号后删除空格(但不是每个单词后的每个空格!)
我不能选择"逗号"和"空间"在分隔符选项中,因为它会删除单词之间的每个空格(例如,#af; havingafuntime')当我只想删除逗号后面的一个空格。
我知道我可以使用" trim" - 但我想知道是否有一种方法可以在将所有文本分离到列中时删除空间,一下子就可以了。
答案 0 :(得分:2)
使用excel工作“正常”时,您可以简单地省略此案例的任何公式。
您只需选择要更正的范围(例如整个A:A列),然后按Ctrl + H(替换),而不是=SUBSTITUTE(A1,", ",",")
。将“查找内容”设置为", "
,将“替换为”设置为","
(不包含"
)。点击替换所有选项以进行整个选择(不会替换未选择的单元格)。
内置的“Text to columns”无法以一步的方式进行操作。
修改强>:
将它作为一键式宏来实现这4行应该可以满足您的需求:
Sub text2cols()
Selection.Replace ", ", ","
Selection.TextToColumns Selection.Resize(1, 1), 1, , , , , True
End Sub
只需选择要分隔的范围并运行宏;)
答案 1 :(得分:0)
在您要使用文本转换为列的列的开头附近的单元格中,输入以下公式并向下复制。
=substitute(A1,", ",",")
This will remove the space after every ,
然后将结果列复制并粘贴为值。
然后使用“分隔符”执行“文本到列”操作。
答案 2 :(得分:0)
另一种选择是使用Power Query。
答案 3 :(得分:0)
我知道这是一个旧帖子,但我发现这是一个谷歌搜索,因为我有与OP相同的问题。然而,在阅读了一些建议后,我发现我可以使用Find& amp;替换功能。我选择了相关专栏并执行了以下操作:
找到:“,”(不带引号 - 用于显示空格) 替换为:,(无空格)
基本上,这使得名单来自:狐狸,青蛙,狗,糖果,泰勒,达人,霍格,劳拉,戴着帽子的猫,记住你最喜欢的一天,玩得开心
并将其改为:狐狸,青蛙,狗,糖果,泰勒,达人,霍格,劳拉,戴着帽子的猫,记住你最喜欢的一天,玩得开心
然后我只使用了逗号分隔的文本到列功能,它工作得很漂亮。
我希望这可以帮助其他人。