在电源查询中加载 CSV 时如何处理多个引号?
Posted
技术标签:
【中文标题】在电源查询中加载 CSV 时如何处理多个引号?【英文标题】:How to deal with multiple quotes when loading CSV in power query? 【发布时间】:2020-03-31 20:52:21 【问题描述】:我有几个 CSV 文件要组合在一个表中(文件具有相同的结构),但文件结构已经足够有问题了。
第一行是普通的,只是用逗号分隔的表头:
帐户、描述、实体、风险、...
但是实际数据的行以双引号“开始和结束,列用逗号分隔,但人(全名)在开始和结束时有两个双引号。我知道这是一个转义字符一列中的名称,但一列就足够了。
"1625110,待开发票,587,正常,""Doe, John"",..."
所以我需要做但不知道如何用数据从每行的开头和结尾删除 ",并在每行用数据替换 ""
和 "
。
我需要在 Power Query 中执行此操作,因为随着时间的推移会有更多类似的 CSV 文件,我不想手动清理它们。
有什么想法吗?
我正在尝试简单:
= Table.AddColumn(#"Removed Other Columns", "Custom", each Csv.Document(
[Content],
[
Delimiter = ",",
QuoteStyle = QuoteStyle.Csv
]
))
【问题讨论】:
【参考方案1】:尝试先加载到单个列,替换值以删除多余的引号,然后按","
拆分。
这是加载单个文件的样子:
let
Source = Csv.Document(File.Contents("filepath\file.csv"),[Delimiter="#(tab)"]),
ReplaceQuotes = Table.ReplaceValue(Source,"""""","""",Replacer.ReplaceText,"Column1"),
SplitIntoColumns = Table.SplitColumn(ReplaceQuotes, "Column1", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv)),
#"Promoted Headers" = Table.PromoteHeaders(SplitIntoColumns, [PromoteAllScalars=true])
in
#"Promoted Headers"
我在第一步中使用了制表符分隔符来防止它分裂。
【讨论】:
以上是关于在电源查询中加载 CSV 时如何处理多个引号?的主要内容,如果未能解决你的问题,请参考以下文章
如何处理数据透视表和电源查询中的重复条目以填充到 excel 仪表板中