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