Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0

162_Power Query 快速合并文件夹中表格之自定义函数 TableXlsxCsv_2.0

一、背景

书接上回,在前面的文章(https://jiaopengzi.com/2602.html)中我们已经发布了一版 Power Query 快速合并文件夹中表格的自定义函数 TableXlsxCsv。我们暂且把它设置为 1.0 版本。

在之前的功能下,本次新增添一个功能:自定义合并 Workbook 中的 Worksheet

先来看下动图:

162-1

二、示例

1、数据源

同一文件夹下,有三种不同文件格式数据源,明细如下图。

162-2

2、函数说明

相较 1.0 版,2.0版中对第三参数进行了调整,调整为可选参数 SheetNameList。

参数 SheetNameList 不填写或为 null 时,表示合并文件夹中 WorkBook 所有 WorkSheet 及 CSV 文件; 该参数不为 null 时,则过滤掉 CSV 格式文件。

其它参数相较 1.0 版保持不变,参阅:https://jiaopengzi.com/2602.html

162-3

3、示例1

从文件夹<订单信息>中合并所有表格,且不用文件名称添加列.

TableXlsxCsv( "订单信息", 1, 0 )

从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写

162-4

4、示例2

从文件夹<订单信息>中合并 WorkSheet 为张三和李四的表格,且不用文件名称添加列。

TableXlsxCsv( "订单信息", 1, 0, {"张三","李四"})

从文件夹<订单信息>中每个文件中从顶部移除 1 行后合并所有表,且不用文件名称添加列;第四至第八参数均不填写。162-5

5、示例3

从文件夹<订单信息>中合并 WorkSheet 为张三的表格,使用文件名称按照规则添加列。

TableXlsxCsv( "订单信息", 1, 3, {"张三"}, "数据日期", "日期", 5, 10 )

从文件夹<订单信息>中每个文件中, sheet 名称为:张三的表中,从顶部移除 1 行并且从底部移除 3 行后合并表;当第五参数 ColunmName 填写时, 后四个参数必填,添加列的名称:数据日期,数据类型为:日期格式,按照文件名称从 5 个字符开始取 10 个字符。

162-6

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 焦棚子