《精通 Power Query》封麵

內容簡介

本書是PowerQuery領域的經典之作,旨在讓讀者用正確而高效的方法精通PowerQuery。本書是兩位作者多年積累的業務和IT工作經驗總結,同時也是全球PowerQuery頂級社群的大咖經驗提煉。本書從業務背景出發,在業務和IT之間做到了良好的平衡,係統化地給出了PowerQuery的思維框架和模式,同時按照多個企業級業務場景一一展示其實用性。

無論你是PowerQuery的新手還是經驗豐富的ETL專家,都可以從各自的角度領略PowerQuery和M語言的魅力。對於業務用戶,本書給出了日常辦公所涉及的大量複雜數據問題解法的直接參考,並提供了大量案例,可以直接應用。對於專業用戶,本書給出了搭建大型專業數據項目的框架性流程指導及優化建議,並提供了相關案例,也可以直接複用。

作者簡介

肯·普爾斯(KenPuls)是加拿大特許專業會計師,微軟ExcelMVP。他經營著Excelguru谘詢公司,並通過Skillwave培訓平台教用戶如何使用Excel和PowerBI。

米格爾·埃斯科瓦爾(MiguelEscobar),在編寫本書的時候是微軟PowerBIMVP,並在巴拿馬經營著一家名為PoweredSolutions的谘詢公司。在本書英文版即將出版時,米格爾收到一份令人興奮的邀請函,即加入微軟PowerQuery團隊擔任項目經理。

BI佐羅團隊,是基於對數據分析的愛好而形成的愛好者社區,活躍成員包括微軟MVP、LVMH集團數據分析師、企業CFO等。2015年以來,經過多年發展,團隊已經孵化出不同行業的數據谘詢類企業,尤其在零售、快消、餐飲、汽車等行業聚集和沉澱了專業的研究成果,且已為50餘家企業提供了數字化轉型“開箱即用”的落地方案。團隊通過“PowerBI戰友聯盟”的微信公眾號、“BI佐羅”的小紅書、B站、抖音等平台,持續為社區帶來知識分享,也歡迎廣大愛好者一起交流討論。

目錄

第0章 導言:一場新的革命1
0.1 數據分析師的常見場景1
0.2 “魔法”的好處和危險2
0.3 未來的改變3
0.4 為什麼說PowerQuery有“魔力”5
0.4.1 提取5
0.4.2 轉換5
0.4.3加載6
0.5 PowerQuery和產品體驗的整合7
0.5.1 PowerQuery的組件7
0.5.2 產品體驗的整合8
0.6 PowerQuery的更新周期8
0.6.1 PowerQuery在線版9
0.6.2 Microsoft3659
0.6.3 Excel2016/2019/20219
0.6.4 Excel2010&20139
0.6.5 PowerBI桌麵版10
0.7 如何使用本書10
0.7.1 Microsoft365Excel10
0.7.2 PowerBI桌麵版11
0.7.3 以前的Excel版本11
0.7.4 單擊“獲取數據”按鈕11
0.7.5 特殊元素12
第1章 基礎知識13
1.1 開始之前13
1.1.1 調整Excel默認設置13
1.1.2 調整PowerBI桌麵版默認設置14
1.2 提取14
1.2.1 選擇數據14
1.2.2 身份驗證15
1.2.3 預覽窗口15
1.2.4 查詢處理16
1.3 轉換17
1.3.1 編輯器17
1.3.2 默認轉換18
1.3.3 源18
1.3.4 將第一行用作標題19
1.3.5 更改的類型19
1.3.6 調整和修改轉換20
1.4 加載22
1.4.1 設置數據類型22
1.4.2 重命名查詢23
1.4.3 在Excel中加載查詢24
1.4.4 在PowerBI中加載查詢24
1.5 刷新查詢25
1.6 編輯查詢26
1.6.1 在PowerBI中啟動查詢編輯器26
1.6.2 在Excel中啟動查詢編輯器27
1.6.3 檢查步驟27
1.6.4 重新配置步驟27
1.7 PowerQuery的價值29
第2章 查詢結構設計31
2.1 使用多查詢體係結構31
2.1.1 對ETL進行分層31
2.1.2 單個查詢的好處31
2.1.3 拆分查詢的好處32
2.1.4 關於“暫存”查詢的   性能32
2.2 查詢的引用34
2.2.1 創建基礎查詢34
2.2.2 創建查詢的引用34
2.2.3 查詢依賴關係樹的可視化37
2.2.4 使用Monkey工具查看依賴關係38
2.3 選擇查詢加載目的地38
2.3.1 在PowerBI中選擇加載目的地38
2.3.2 在Excel中選擇加載目的地39
2.3.3 更改加載目的地41
2.4 保持查詢的條理性43
2.4.1 查詢文件夾43
2.4.2 將查詢分配到文件夾44
2.4.3 排列查詢和文件夾44
2.4.4 查詢子文件夾45
2.5 拆分現有查詢45
2.6 關於查詢體係結構的最後思考47
第3章 數據類型與錯誤49
3.1 數據類型與格式49
3.1.1 數據格式49
3.1.2 數據類型49
3.1.3 如何設置數據格式52
3.1.4 設置數據類型的順序53
3.1.5 數據類型的重要性54
3.2 常見的錯誤類型55
3.3 步驟級錯誤56
3.3.1 數據源錯誤56
3.3.2 沒有找到某列58
3.4 值錯誤59
3.4.1 發現錯誤60
3.4.2 無效的數據類型轉換61
3.4.3 不兼容的數據類型63
3.5 檢查查詢錯誤64
3.5.1 發現錯誤的來源64
3.5.2 修複最初查詢65
3.5.3 刪除錯誤查詢66
3.6 關於數據類型與錯誤的最後思考66
第4章 在Excel和PowerBI間遷移查詢67
4.1 在工具之間遷移查詢67
4.1.1 Excel到Excel68
4.1.2 Excel到PowerBI70
4.1.3 PowerBI到Excel71
4.1.4 PowerBI到PowerBI71
4.2 導入查詢72
4.2.1 僅外部數據源72
4.2.2 數據模型的導入74
4.2.3 導入時複製數據75
4.2.4 導入時保持連接80
4.3 在工具之間遷移查詢的思考82
第5章 從平麵文件導入數據84
5.1 了解係統如何導入數據84
5.1.1 設置係統默認值84
5.1.2 程序如何解析平麵數據85
5.2 導入帶分隔符的文件87
5.2.1 源數據文件87
5.2.2 提取數據88
5.2.3 錯誤的解析88
5.2.4 使用區域設置89
5.3 導入無分隔符的文本文件92
5.3.1 連接到文件92
5.3.2 清理無分隔符文件93
5.3.3 按位置拆分列94
5.3.4 利用查詢中的錯誤96
5.3.5 刪除“垃圾列”98
5.3.6 合並列99
5.3.7 通過分隔符拆分列99
5.3.8 修剪重複的空格100
5.3.9 PowerQuery的閃耀時刻101
第6章 從Excel導入數據104
6.1 來自當前工作簿的數據104
6.1.1 連接到表105
6.1.2 連接到區域106
6.1.3 連接到命名區域108
6.1.4 連接到動態區域110
6.1.5 連接到工作表112
6.2 來自其他工作簿的數據112
6.2.1 連接到文件113
6.2.2 連接到表114
6.2.3 連接到命名區域115
6.2.4 連接到工作表115
6.3 關於連接到Excel數據的最後思考118
第7章 常用數據轉換121
7.1 逆透視121
7.1.1 準備數據122
7.1.2 逆透視其他列123
7.1.3 重新透視124
7.1.4 應對變化125
7.1.5 逆透視之間的區別125
7.2 數據透視126
7.3 拆分列128
7.3.1 將列拆分為多列129
7.3.2 將列拆分為多行130
7.3.3 拆分後逆透視與拆分到行131
7.4 篩選和排序132
7.4.1 按特定值篩選133
7.4.2 按上下文篩選135
7.4.3 數據排序137
7.5 數據分組138
第8章 縱向追加數據141
8.1 基本追加141
8.1.1 追加兩個表142
8.1.2 追加額外的表145
8.2 追加列標題不同的數據147
8.3 在當前文件中追加表和區域148
8.3.1 合並表149
8.3.2 合並區域或工作表153
8.3.3 Excel.CurrentWorkbook155
8.4 關於追加查詢的最後思考155
第9章 批量合並文件156
9.1 示例文件背景介紹156
9.2 過程概述157
9.2.1 合並文件的標準流程157
9.2.2 合並文件的通用架構157
9.3 步驟0:連接到文件夾159
9.3.1 連接到本地/網絡文件夾159
9.3.2 連接到SharePoint文件夾160
9.3.3 連接到OneDriveforBusiness162
9.3.4 連接到其他文件係統162
9.4 步驟1:篩選文件162
9.4.1 標準步驟163
9.4.2 應用於示例場景163
9.5 步驟2:合並文件165
9.5.1 標準步驟165
9.5.2 應用於示例場景165
9.6 步驟3:轉換示例文件167
9.6.1 使用轉換示例文件的原因168
9.6.2 使用轉換示例文件的方法168
9.7 步驟4:通過主查詢進行數據清理171
9.7.1 修複主查詢中的錯誤171
9.7.2 保存文件屬性172
9.7.3 添加更多的步驟173
9.8 更新解決方案174
9.8.1 使用數據175
9.8.2 添加新文件175
9.8.3 隻用最後幾個文件以提升速度176
第10章 橫向合並數據179
10.1 合並基礎知識179
10.1.1 創建“暫存”查詢179
10.1.2 執行合並180
10.2 連接類型182
10.2.1 左外部連接184
10.2.2 右外部連接186
10.2.3 完全外部連接187
10.2.4 內部連接188
10.2.5 左反連接189
10.2.6 右反連接190
10.2.7 完全反連接190
10.3 笛卡兒積(交叉連接)191
10.3.1 方法191
10.3.2 示例192
10.3.3 意外問題194
10.4 近似匹配195
10.4.1 方法195
10.4.2 示例196
10.5 模糊匹配198
10.5.1 基本模糊匹配199
10.5.2 轉換表200
10.5.3 減小相似性閾值201
10.5.4 保持模糊匹配的策略203
第11章 基於Web的數據源204
11.1 連接到Web數據文件204
11.2 連接到HTML網頁205
11.2.1 連接到網頁206
11.2.2 自然表和建議表206
11.2.3 使用示例添加表207
11.3 連接到沒有表的頁麵209
11.4 從Web獲取數據的注意事項212
11.4.1 收集數據的經驗213
11.4.2 數據完整性213
11.4.3 解決方案穩定性213
第12章 關係數據源214
12.1 連接到數據庫214
12.1.1 連接到數據庫214
12.1.2 管理憑據216
12.1.3 無法連接217
12.1.4 使用導航器217
12.1.5 探索數據218
12.2 查詢折疊221
12.2.1 理解查詢折疊221
12.2.2 支持查詢折疊的技術223
12.2.3 常見問題224
12.3 數據隱私級別225
12.3.1 聲明數據隱私級別226
12.3.2 管理數據隱私級別227
12.3.3 隱私與性能227
12.3.4 禁用隱私引擎228
12.4 優化230
第13章 轉換表格數據233
13.1 透視233
13.1.1 單列多行233
13.1.2 多層行標題237
13.1.3 多層列標題239
13.2 逆透視242
13.2.1 多層行標題242
13.2.2 性能優化248
13.2.3 重構249
13.2.4 保留“null”值250
13.3 分組253
13.3.1 占總計的百分比253
13.3.2 數據排序254
13.3.3 分組編號257
第14章 條件邏輯261
14.1 基礎條件邏輯261
14.1.1 數據集背景261
14.1.2 連接到數據262
14.1.3 通過用戶界麵創建條件邏輯262
14.2 手動創建IF判斷265
14.3 IFERROR函數268
14.4 多條件判斷270
14.5 與上下行進行比較273
14.6 示例中的列276
第15章 值係統282
15.1 值類型282
15.2 表283
15.3 列表284
15.3.1 語法284
15.3.2 從頭開始創建列表284
15.3.3 將列表轉換為表286
15.3.4 從表列創建列表287
15.3.5 創建列表的列表288
15.4 記錄290
15.4.1 語法290
15.4.2 從頭開始創建記錄291
15.4.3 將記錄轉換為表291
15.4.4 從頭開始創建多個記錄292
15.4.5 將多個記錄轉換為表293
15.4.6 按索引訪問表記錄294
15.4.7 按條件訪問表記錄295
15.4.8 從每個表行創建記錄298
15.5 值300
15.6 二進製文件300
15.7 錯誤301
15.7.1 行級錯誤301
15.7.2 步驟級錯誤301
15.8 函數302
15.9 關鍵詞304
15.9.1 二進製(#binary)305
15.9.2 日期時間(#datetime)306
15.9.3 時間(#time)307
15.9.4 持續時間(#duration)307
15.9.5 類型(type)308
15.9.6 表(#table)310
第16章 理解M語言314
16.1 M查詢結構314
16.1.1 查詢結構315
16.1.2 查詢定義與標識符316
16.1.3 關於通用標識符318
16.1.4 代碼注釋319
16.1.5 整體效果320
16.2 理解查詢計算320
16.2.1 什麼是延遲計算321
16.2.2 查詢計劃322
16.3 迭代器(逐行計算)324
16.3.1 循環函數324
16.3.2 關鍵詞each和_324
16.4 其他技術328
16.4.1 獲取第一個值328
16.4.2 錯誤保護330
16.4.3 固定類型動態列表331
16.4.4 自適應類型動態列表334
第17章 參數和自定義函數338
17.1 重新創建合並文件338
17.1.1 創建示例文件339
17.1.2 創建示例文件參數340
17.1.3 創建轉換示例341
17.1.4 創建轉換函數342
17.1.5 調用轉換函數342
17.1.6 更新轉換函數342
17.1.7 觀察到的規律343
17.2 使用參數構建自定義函數344
17.2.1 創建文件路徑參數345
17.2.2 創建Timesheet轉換346
17.2.3 創建Timesheet函數347
17.2.4 更新Timesheet查詢347
17.3 手動構建自定義函數349
17.3.1 構建一個單一使用場景350
17.3.2 將查詢轉換為函數350
17.3.3 從另一個查詢調用函數352
17.3.4 調試自定義函數353
17.3.5 恢複函數功能355
17.4 動態參數表355
17.4.1 動態文件路徑問題356
17.4.2 實現動態參數表357
17.4.3 創建參數表357
17.4.4 實現fnGetParameter函數功能358
17.4.5 調用函數359
17.5 參數表的意義361
第18章 處理日期時間362
18.1 邊界日期362
18.1.1 計算邊界日期363
18.1.2 處理財政年度日期364
18.1.3 處理364日型365
18.2 日期表367
18.2.1 原子日期表367
18.2.2 增強日期表368
18.2.3 財政日期列369
18.2.4 全局日期列369
18.2.5 自定義日期表371
18.2.6 示例說明373
18.3 日期時間填充374
18.3.1 日期級別填充374
18.3.2 小時級別填充376
18.3.3 帶間隔的填充377
18.4 按日期分攤378
18.4.1 起止日內按日分攤379
18.4.2 起止日內按月分攤381
18.4.3 在開始日期後按月分攤384
18.4.4 關於分攤386
第19章 查詢優化388
19.1 優化設置388
19.1.1 全局−數據加載388
19.1.2 全局−PowerQuery編輯器388
19.1.3 全局−安全性389
19.1.4 全局−隱私389
19.1.5 當前工作簿−數據加載389
19.1.6 當前工作簿−其他選項390
19.2 使用緩存391
19.2.1 強製計算391
19.2.2 緩存結果393
19.3 處理響應滯後396
19.3.1 優化策略397
19.3.2 體驗響應滯後397
19.3.3 重構解決方案399
19.3.4 調整預覽數據401
19.4 處理公式防火牆401
19.4.1 隱私級別不兼容402
19.4.2 數據源訪問402
19.4.3 重建數據組合402
19.4.4 連接式重構404
19.4.5 展開式重構406
19.4.6 傳值重構408
19.4.7 關於公式防火牆410
第20章 自動刷新412
20.1 Excel自動刷新選項412
20.2 Excel計劃刷新412
20.2.1 後台刷新412
20.2.2 每x分鍾刷新一次413
20.2.3 打開文件時刷新數據413
20.2.4 啟用快速數據加載413
20.3 用宏實現自動刷新414
20.3.1 刷新單個連接414
20.3.2 按特定順序刷新416
20.3.3 刷新所有查詢418
20.3.4 同步刷新的問題418
20.4 PowerBI中的計劃刷新418
······

最後修改:2024 年 07 月 25 日