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文件)

    ……

建构

  表

  = #table({"列名1",...,"列名n"}, {{第一行数据},...,{第n行数据}})

  示例:

    = #table({"第一列","第二列","第三列"},{{"第1行",1,2},{"第2行",3,4}})

列表

= {数据1,...,数据n}

= {数据1..数据n}(数据1-数据n为连续数据)

示例:

  ={1,5,7}

  ={4..9}(即{4,5,6,7,8,9})

  = {"a".."d"}(即{"a","b","c","d"})

记录

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

示例:

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

深化

  表

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

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

转换为列表

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

  单深化列形成列表

  单深化行形成记录

  示例:

     

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

    深化第一行:= 表 {0}

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

      = 表 [列 2] {0}

      = 表 {0} [列 2]

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

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

列表

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

  示例:

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

    结果为A

记录

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

  示例:

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

    结果为2

相关