使用Power Query导入数据时不使用“ |”正确的定界符

时间:2018-11-20 18:40:01

标签: excel powerquery

我有一个脚本,该脚本基本上可以导入CSV报告并清理数据并将其保存在网络上的其他位置。问题是,当它从使用“ |”的Linux服务器导入该报告时作为分隔符,它错误地将几个用户放到一个都混在一起的单元格中。

我使用Power Query导入数据并过滤列以及随之而来的各种数据。

尽管数据具有“ |”在整个数据表中使用定界符,总是有几个像这样的随机字符串组成的单元格:

|Address||City|State|zip|205|305|6251|date|3650|store|lname|fname|ndc|address2||city2|state|zip|num|ber|cell|||bdate|90|Drug 200 MG|ndc|cost|pay|0.00|cost|pay|75.00|0.00|0.00|||||||||000|||200||||cost|M|0.00||||||||||||0.00|name1|name2|||||||||||||||||PRIMARY|On Hold|No Reason||||10:30|number|Will-Call|cost|drug TAB 200 MG|90|0|0|||||||||||||||||||0|Not Specified||0.00|0.00|0.00|

*我必须删除敏感数据

是否可以通过“ |”解决此问题定界符?还是我应该尝试使用另一个特殊的分隔符?我必须使用特殊的字符,因为报告中到处都是逗号,制表符和空格。

1 个答案:

答案 0 :(得分:0)

在CSV中是否存在多余的换行符?

如果是这样,则类似的代码将删除它(将文件读取为二进制文件,在换行符上进行替换,然后将其转换回普通表。)

Source = Text.Replace(Text.FromBinary(File.Contents("RAW.csv")), "#(lf)#(lf)","#(lf)"),
Source2 = Text.Replace(Source, "#(lf)""",""""),
Continue = Lines.FromText(Source2),
#"Converted to Table" = Table.FromList(Continue, Splitter.SplitTextByDelimiter(","), null, null, ExtraValues.Error),
#"Promoted Headers" = Table.PromoteHeaders(#"Converted to Table", [PromoteAllScalars=true]),