我在互联网上看到过类似的话题,但是找不到适合我问题的合适话题。由于讨论时间太长,因此我将缩短讨论时间。因此,我需要将以“ ¦”分隔的A列,B列和C列串联起来。我需要使用“ ¦”进行拆分(无需问为什么我需要串联¦然后使用¦进行拆分-这是一个漫长的过程。这只是一个要点),但是数据中可能包含“ ¦” ”。是否可以先忽略或转义数据中的“ ¦”,以便将其视为分隔符?分隔符的更改也可以出现在数据中。我正在填写表格,所以我需要使用VBA。
例如
Column A | Column B | Column C | Column D
111 | AAA | 1A1 | 111¦AAA¦1A1
222 | BBB | 2B2 | 222¦BBB¦2B2
333 | CC¦C | 3C3 | 333¦CC¦C¦3C3
如果我拆分上面的示例,它将看起来像这样,这是错误的。
Column A | Column B | Column C | Column D
111 | AAA | 1A1 |
222 | BBB | 2B2 |
333 | CC | C | 3C3
答案 0 :(得分:3)
您可以将|
替换为您不使用的字符,例如用^
(或使用某些模式,例如[ThisIsPipe]
)以及split()
(或之后),例如,以^
代替|
(或注入的图案)。
恕我直言,对于[连接~~>拆分],最好使用那些未反映在工作表中的字符
答案 1 :(得分:1)
直言不讳,您的数据格式不正确,但这就是生命:)!您需要使用所谓的“文本限定符”,以使您用作分隔符的字符出现在要分隔的文本项中,而不被视为分隔符。
您所追求的例子:
"111"|"AAA"|"1A1"
"222"|"BBB"|"2B2"
"333"|"CC|C"|"3C3"
将第三条数据行复制/粘贴到新工作表中,然后在其上运行“文本到列”向导(TtCW)以获取定界文本。在第二步中,您将在右侧看到“文本限定符”下拉列表。
您可能需要使用VBA将数据与文本限定符连接起来,然后通过TtCW再次将其拆分。记录一个宏,以查看如何使其自动化并将其合并到代码中。
答案 2 :(得分:0)
我的解决方案使用不带vba的Get&Transform(需要最新的Excel或Power Query插件)。对于您的数据,我的工作状况很好,将CC¦C留在了B列。
从范围获取数据
使用|分割全部分隔符
右键单击最后一列->按¦分隔符分隔
重命名列标题