我有一堆 CSV 文件,其中包含带尾随单位的值。这让 Excel 认为它们是文本,所以我无法在数据透视表中对它们求和。
数据看起来是这样的:
Date; Text; Amount;
2016-12-11; Gas Station; -152,00 kr
2016-12-10; Food Stare; -130,00 kr
2016-12-09; Payment; 500,00 kr
我设法“解决”了这个问题,方法是插入一个新列,去掉单位,使用 把文本转换为数字=NUMBERVALUE(SUBSTITUTE(C2; " kr"; ""))
,然后告诉 Excel 如何格式化该列和数据透视表中的值。但这感觉真的很黑客。
有什么方法可以导入数据并告诉 Excel 它已经有正确的单位,以便我可以直接使用 CSV 中的数据?
从 CSV 文件中删除单位不是一个选择,除非绝对必要,否则我宁愿远离 VB。
答案1
如果您拥有足够新的 Excel 版本,那么最好的方法之一就是使用 PowerQuery。
您可以使用 PowerQuery 从 1 个或多个 CSV 文件导入数据,也可以根据需要转换数据列。
创建新的数据查询:Data/New Query/From file/From Folder
。指定文件夹路径。您将获得预览,单击edit
。根据扩展名.csv
和您想要的任何文件名模式进行过滤。您目前有一个文件列表。
要获取数据,请删除文件列表中不需要的列。现在使用以下公式插入自定义列:
Table.PromoteHeaders(Csv.Document([Content]))
这是获取内容的最佳方式,尽管有时只需展开列即可获得所需的结果Content
。但如果需要,使用自定义列可以更轻松地保留文件元数据列(例如访问日期)。
如果文件内容重叠,则可能需要对数据进行重复数据删除。
因此,大部分工作只需通过点击即可完成,无需编程,并不比使用电子表格困难。