当前时间: 2026-04-13 11:15:46
分类:办公文件
评论(0)
EXCEL|Power Query之拆解信息这个功能对于Excel表格中那些完全是生活化碎碎念般存在的信息,比如产品和价格一股脑全部存在于一个单元格里的内容进行规整会很有用。比如下面这个表格里的信息,潇潇洒洒存在于一个单元格内,给后续的统计工作造成无尽的困扰。就需要把产品名称和价格进行拆分,各自形成独立的列,我们用power Query来试试。1)先把上面的左表导入到查询编辑器里,然后使用功能区的拆分列,具体操作如下。2)拆分后的结果如下图所示。这步只是实现了一个单元格里只存在同一个产品名称和价格。3)下面进行产品和单价的拆分。这步要用到逆透视列这个功能。4)选中值这一列,然后选择自定义添加列,新列名命名为价格,然后编写自定义公式如下图红框部分。这一步是不是会卡在自定义列公式上?的确,这个公式,我们没学过怎么能记得住呢?有没有别的不用记公式的方法呢?还真有。在Excel的学习中,我们学过给出一个示范结果,然后按Ctrl+Enter快速填充。在Query中,在使用公式的场景中,也有个很好用的方法,那就是我们选择示例中的列。在这个案例中,除了价格,我们还需要添加一个产品名称列。这个产品名称列, 我们就使用示例来完成。5)选中值这一列,然后点击示例中的从所选内容,然后在右边的列1这一列的第一个单元格里输入土豆,操作如下。7)更改名称为产品名称,调整列的顺序至价格前,删掉前面2个没用的列后,效果如下图所示。8)关闭并上载成仅创建连接,然后在原始表格里加载,最终效果如下图所示。用这个办法是不是就简单太多了。毕竟,这么多公式,可不是光靠死记硬背就能记住的。学会了用这个示例填充,那简直是太轻松了。对了,有一步我刚忘记讲了。生成价格列后,我们要记得,右键价格列名,然后把这一列的类型更改为小数,这样就完成了格式标准化。- 「从示例添加列」是核心-完全不用写公式,手动输入 2-3 个结果,Power Query 自动识别提取规则,完美解决 “知道效果但不会写公式” 的问题
- 逆透视列的作用-把横向拆分的多列转成纵向多行,是处理一行多数据的标准操作
- 数据类型校验-拆分后必须把单价列转为「小数」,避免后续计算出错
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-04-13 16:25:20 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/521062.html
- 运行时间 : 0.195786s [ 吞吐率:5.11req/s ] 内存消耗:4,704.61kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=38f7e4857b10496a3229e03e3fed904d
- CONNECT:[ UseTime:0.001067s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001637s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000618s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.005006s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.001342s ]
- SELECT * FROM `set` [ RunTime:0.000441s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.001357s ]
- SELECT * FROM `article` WHERE `id` = 521062 LIMIT 1 [ RunTime:0.001092s ]
- UPDATE `article` SET `lasttime` = 1776068720 WHERE `id` = 521062 [ RunTime:0.001204s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000566s ]
- SELECT * FROM `article` WHERE `id` < 521062 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000933s ]
- SELECT * FROM `article` WHERE `id` > 521062 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002036s ]
- SELECT * FROM `article` WHERE `id` < 521062 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001378s ]
- SELECT * FROM `article` WHERE `id` < 521062 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.003253s ]
- SELECT * FROM `article` WHERE `id` < 521062 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002567s ]
0.200236s