Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0
162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0
一、背景
书接上回,在前面的文章(https://jiaopengzi.com/2602.html)中我们已经发布了一版 Power Query 快速合并文件夹中表格的自定义函数 TableXlsxCsv。我们暂且把它设置为 1.0 版本。
在之前的功能下,本次新增添一个功能:自定义合并 Workbook 中的 Worksheet 。
先来看下动图:
二、示例
1、数据源
同一文件夹下,有三种不同文件格式数据源,明细如下图。
2、函数说明
相较 1.0 版,2.0版中对第三参数进行了调整,调整为可选参数 SheetNameList。
参数 SheetNameList 不填写或为 null 时,表示合并文件夹中 WorkBook 所有 WorkSheet 及 CSV 文件; 该参数不为 null 时,则过滤掉 CSV 格式文件。
其它参数相较 1.0 版保持不变,参阅:https://jiaopengzi.com/2602.html 。
3、示例1
从文件夹<订单信息>中合并所有表格,且不用文件名称添加列.
TableXlsxCsv( "订单信息", 1, 0 )
从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写
4、示例2
从文件夹<订单信息>中合并 WorkSheet 为张三和李四的表格,且不用文件名称添加列。
TableXlsxCsv( "订单信息", 1, 0, {"张三","李四"})
从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写。
5、示例3
从文件夹<订单信息>中合并 WorkSheet 为张三的表格,使用文件名称按照规则添加列。
TableXlsxCsv( "订单信息", 1, 3, {"张三"}, "数据日期", "日期", 5, 10 )
从文件夹<订单信息>中每个文件中, sheet 名称为:张三的表中,从顶部移除 1 行并且从底部移除 3 行后合并表;当第五参数 ColunmName 填写时, 后四个参数必填,添加列的名称:数据日期,数据类型为:日期格式,按照文件名称从 5 个字符开始取 10 个字符。
6、自定函数 TableXlsxCsv_2.0
TableXlsxCsv 主函数如下,由于代码较长,请前往 https://jiaopengzi.com/2838.html 查看。
let
fx0 = (
FolderName as text,
RemoveFirstRows as number,
RemoveLastRows as number,
optional SheetNameList as list,
optional ColunmName as text,
optional ColumnType as text,
optional NameStartNumber as number,
optional Length as number
) as table =>
三、总结
1、自定义需要筛选的 Worksheet ,但是数据依然需要有一定的结构性和通用性。
2、对于不断变换的需求,我抽象出方法来复用,但需求总是在不断变化的,有时候为了一个简单的需求需求要写很长的函数才能抽象出来,但是复制粘贴只需要两三步即可;我们需要在这样变化中寻求平衡。
3、附件中有分步的步骤,可以自由发挥。
4、一定注意,我们的必要文件夹和必要 excel 的名称请不要更改,本次调整必要的文件夹为 <00_config> 。
5、对于很多新手朋友来说,只会点击输入参数,特别提醒可以直接在编辑栏里面手动输入和修改。
附件下载
https://jiaopengzi.com/2838.html
视频课
https://jiaopengzi.com/all-course
by 焦棚子
自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)