多文件数据横向汇总,怎么整?| Power Query实战
最近遇到一位朋友提问:怎么将多个文本文件(据说100多份)按列(横向)汇总?经过详细了解,需求如下图所示:
严格来说,这个并不是数据的汇总,因为,这样的“汇总”只是将数据堆在一起,并没有同类数据追加或匹配查询等逻辑上的统一处理。
但是,相对于常见的数据追加等较“有意义”的汇总来说,这种不太常规的数据处理反而相对较难一些。
数据下载链接:https://t.zsxq.com/05UrZzjm2
我是大海,欢迎加入知识星球【Excel到PowerBI】,更多系列视频,更多实战练习,问答更详尽,学习更高效。
下面给出主要以操作为主和以函数公式为主的两种解法,供大家参考。
- 操作法 -
Step-01 从文件夹导入文件
文件识别后,选择“转换数据”进入Power Query编辑器:
Step-02 展开文件内容,生成文件合并过程
Step-03 对“转换示例文件”添加索引列,位后面的分行识别和透视列操作做准备
转换示例文件的用法是Power Query里一个很有意思的内容,若不了解,建议参考文章《666,一键生成自定义函数!“参数+示例+自定义函数”组合实在太神奇!| PQ实战》。
Step-04 对合并文件结果的“姓名/数量”列进行逆透视
Step-05 对文件名列和逆透视后得到的属性列进行合并,为后面的透视列操作做准备,也使得后面“汇总”的数据能明确区分来自于哪一个文件
Step-06 基于合并的文件名和属性列对“值”列进行透视,并且不要聚合,即可得到最终结果。
- 公式法 -
这个问题用公式法也不难,而且从解决问题的思路来说,相对与前面的逆透视再透视等操作涉及的技巧,公式法则更加直接一些。具体步骤如下:
Step-01 从文件夹导入文件
文件识别后,选择“转换数据”进入Power Query编辑器:
Step-02 用函数Csv.Document解析文本文件的内容为工作表(若觉得参数记不住,可以单独导入一个文本文件然后复制公式进行修改)
Step-03 添加自定义列,用Table.ToColumns函数将表拆分为列的组合
Step-04 新增一个步骤,用List.Combine函数将所有文件数据的列汇总成1个列表(直接点编辑栏的fx按钮新建步骤并输入公式)
继续修改公式,外面嵌套多一层,用Table.FromColumns函数将列转换为表,即得结果:
对于公式函数解法,其中涉及到表转换为列,再从列转换为表等相关操作,这些操作在使用Power Query的过程中非常重要,为此,我专门录制过视频进行讲解,建议还不太熟悉的朋友多看多练:
该视频属于完整系列视频《Excel、Power Query及Pivot》中的一集,更多内容欢迎识别下图中二维码或文末点击“阅读原文”加入知识星球学习。
- 操作 vs 函数 -
对于使用Power Query进行数据处理,界面操作和写函数公式的方法往往都是可行的,在实际工作中遇到不同的问题时,可以适当地往两个方向都想一想,界面操作可以怎么做?如果用写函数公式的话怎么做?哪一个更加简单方便?……
相信随着大家不断的练习,界面操作功能和常用函数一定会越来越熟练,进而遇到问题有思路,遇到难点有方法,这时,Power Query就真正成了提升工作效率的利器!
学习 Power BI 知识的过程中,
我遇过很多问题,踩过很多坑,
知识星球提问,
回答可跟踪可复习,
少走弯路,学习效率更高。
相关文章
- linux 误删文件恢复_centos删除的文件能恢复吗
- smalldatetime java,如何在数据导入期间将平面文件中的dd-mmm-yy值格式化为smalldatetime?…[通俗易懂]
- linux创建文件
- mysql导入excel文件_将Excel数据导入MySQL「建议收藏」
- Excel学习----一键创建相应“惟一性”的文件,再筛选数据并写入相应的文件中
- hive中数据类型转换_csv文件导入sqlserver数据库中
- 自己实现简单java缓存类文件_java怎么把数据存到缓存中
- 【Flask】大型项目中对于url_for() 的使用以及请求数据上传文件的开发实例
- 【Android 安全】DEX 加密 ( 代理 Application 开发 | multiple-dex-core 依赖库开发 | 配置元数据 | 获取 apk 文件并准备相关目录 )
- 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )
- 大数据技术之小文件处理(自定义InputFormat)详解大数据
- java操作文件类 (文件解压缩 文件增删改查)详解编程语言
- 快速导入: 使用Oracle导入文件数据(oracle导入文件数据)
- MySQL文件结构:管理数据的必要工具(mysql文件结构)
- Linux文件恢复:重建你的数据(linux恢复文件内容)
- 使用MongoDB导入TXT文件: 简单步骤详解(mongodb导入txt)
- MSSQL移动文件:轻松实现数据迁移(mssql移动文件)
- MySQL中ibd文件的作用及管理方法(mysql 中.ibd)
- 探索ORACLE与OCR文件数据转换的可能性(ocr文件 oracle)
- 利用Oracle Ctl文件快速导入数据(oracle中ctl导入)
- 如何把PHP转成EXE文件
- 如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
- c语言读取obj文件转换数据的小例子
- java使用randomaccessfile在文件任意位置写入数据