Excel.CurrentWorkbook数据源(Power Query 之 M 语言)

数据源: 

       任意超级表

目标: 

       将超级表中的数据加载到Power Query编辑器中

操作过程: 

       选取超级表中任意单元格(选取普通表时会自动增加插入超级表的步骤)》数据》来自表格/区域

   

 M公式:

   = Excel.CurrentWorkbook(){[Name="超级表名"]}[Content]

扩展:

  以二进制形式返回文件内容:File.Contents("路径\文件名.后缀名")

  从工作簿:= Excel.Workbook(二进制Excel工作簿, 标题参数, 刷新参数)

     二进制Excel工作簿可以嵌套File.Contents("路径\文件名.xlsx")

    标题参数

      null / fasle / 缺省:在原表基础上加上默认标题

      true:第一行为标题

    刷新参数

      true:加载时刷新

      false / 缺省:加载时不刷新

  从CSV文件:= Csv.Document(二进制CSV文件,[Delimiter="指定分隔符", Encoding=文件原始格式代号])

  从文件夹:

    = Folder.Files("路径")

    = Folder.Contents("路径")

  从网页

    = Web.Contents("网址")

    = Web.Page(二进制html文件)

      二进制html文件可嵌套Web.Contents("网址")

  从其他文件/数据库:

    = Access.Database(二进制Acceess数据库)

    = Json.Document(二进制Json文件)

    = Pdf.Tables(二进制PDF文件)

    = Xml.Tables(二进制Xml文件)

    ……

建构

  表:数值到表  

列表:数值到列表

记录

= [记录标题1=数据1,...,记录标题n=数据n]

示例:

  = [第1行=1, 第2行="A"]

记录嵌套表/列表/记录

  = [记录标题1=表1,...,记录标题n=列表,...,记录标题m=记录]

  示例:= [表= #table({"A","B"},{{"a1",1},{"b1",2}}),列表={1..9},记录=[X="abc",Y=123]]

 

深化

  表

= 表 {[标题名1="指定内容1",...,标题名n="指定内容n"]} [深化列标题]

= 表 {深化单元格所在行的行数} [深化列标题]

= 表 [[标题名1],...,[标题名n]]

转换为列表

  使用第一个公式只要保证可展示唯一行即可,不需要列出所有标题

  单深化列形成列表

  单深化行形成记录

  示例:

     

    深化第二列:= 表 [列 2]

    深化第一行:= 表 {0}

    深化第一行第二列的单元格(1):

      = 表 [列 2] {0}

      = 表 {0} [列 2]

    深化第一列中为D的行对应第二列的单元格(4):

      = 表 {[列 1="D"]} [列 2]

列表

= 列表 {深化单元格所在行的行数}

  示例:

    = {"A".."Z"} {0}

    结果为A

记录

  = 记录 [深化单元格所在行的标题]

  示例:

    = [a=1,b=2] [b]

    结果为2

posted @ 2021-12-06 19:55  熬肥妖  阅读(2927)  评论(0编辑  收藏  举报