一、其他
追加查詢
1. 數據導入
Excsl.Workbook(File.contents("C:\Temp\book1.xlsx",true,ture)
- 作用:引入數據
- 第一個參數:引用數據地址
- 引用相對路徑,在excel單元格寫入公式
- 同一文件下
=left(SUBSTITUTE(CELL("filename"),"[",""),Find("]",SUBSTITUTE(CELL("filename"),"[",""))-1)
- 不同文件下
=LEFT(CELL("filename"),FIND("[",CELL("filename"))-1)&"數據.xlsx"
- 定義名稱,替換據對路徑
Excel.CurrentWorkbook(){[Name="定義的名稱"]}[Content]{0}[Column1]
- 第二個參數:第一行是否為標題,true是,null否
- 第三個參數:號稱加快運行速度,實際效果不詳
2. 導入文件夾
Folder.Files("C:\temp\數據")
- 作用:導入文件夾,獲取二進制文件
3. 新增字段名
List.Distinct(List.Combine(List.Transform(刪除的其他列[Data],each Table.ColumnNames(_))))
- 作用:使用動態字段名
4. 展開列
Table.ExpandTableColumn(刪除的其他列,"Data",{"姓名","語文","數學","歷史"},{"姓名","語文","地理"})
- 作用:展開列
- 第一個參數:展開哪一個表
- 第二個參數:展開表的什么字段
- 第三個參數:展開字段的哪些列。(結合3,做動態列名)
- 第四個參數:返回的結果數哪些列。可省略
亂七八糟的知識
嘗試執行
- try 520 & 1314 otherwise "數字不能做鏈接"
- 作用:當執行錯誤時,返回后面的指定字符串
二、M函數
Table
1. 【添加列】Table.AddColumn
- =Table.AddColumn(源,"稱呼",each if [性別] = "男" then "先生" else "女士",type text)
- 第一個參數:引用表
- 第二個參數:添加列的字段名
- 第三個參數:列數據,需要添加操作的列
- 第四個參數:列類型,可以省略
2. 【排序字段】Table.RecorderColumns
- =Table.RecorderColumn(源,{"姓名","年齡","成績"})
- 第一個參數:引用表
- 第二個參數:列的順序
3. 【篩選】Table.SelectRows
- =Table.SelectRows(源,each [數學]>90 and [英語]>80)
- 第一個參數:引用表
- 第二個參數:篩選的條件
4. 【刪除重復項】Table.Distinct
- =Table.Distinct(源)
- 對表所有列重復的刪除
- =Table.Distinct(源,"姓名")
- 對一個列重復的刪除
- =Table.Distinct(源,{"姓名","成績"})
- 對多個列重復的刪除
5. 【計算行數】Table.RowCount
- =Table.RowCount(源)
- 對整個表的行數計數
6. 【計算列數】Table.ColumnCount
- =Table.ColumnCount(源)
- 對整個表的列數計數
List
7. 【列表求和】
- =List.Sum(列表)
8. 【列表計數】
- =List.Count({1,2,3,"","YI"})
- 對列表所有項計數,返回結果4
- =List.NoNullCount({1,2,3,"","YI"})
- 對列表非空項計數,返回結果3
9. 【判斷列表為空】
- List.IsEmpty(列表)
- 為空返回:true
- 不為空返回:false
10.【判斷列表是否沒有重復元素】
- List.IsDistinct(列表)
- 沒有重復返回:true
- 有重復返回:false
11. 【列表求平均】
- List.Acerage(列表)
12. 【列表最大值&最小值】
- List.Max({1,2,3}.521,2,false)
- List.Min({1,2,3}.521,2,false)
- 第一個參數:列表
- 第二個參數:當列表為空時。返回第二個參數(可省略)
- 第三個參數:當不是0時,求最小值(可省略)
- 第四個參數:當時true時,列表為空也返回第二參數(可省略)
- 數字 < 文本 , 英文 < 中文