本書(shū)從 Excel 處理大型數(shù)據(jù)的缺點(diǎn)開(kāi)始講起,逐步講解了 Excel 和 Power BI 中的 Power Query 組件,并重點(diǎn)介紹了Power Query 的底層 M 語(yǔ)言的應(yīng)用知識(shí)。
本書(shū)分為 10 章,主要講解了 Power Query 的入門(mén)知識(shí)和數(shù)據(jù)集成、Power Query 的 M 語(yǔ)法規(guī)則系列知識(shí),針對(duì) Power Query 如何實(shí)現(xiàn)數(shù)據(jù)清洗和重構(gòu)系列知識(shí)做了詳細(xì)的講解,還重點(diǎn)介紹了目前 Power Query 的各類(lèi)內(nèi)置函數(shù)的功能,最后介紹了如何利用自定義函數(shù)實(shí)現(xiàn)復(fù)雜的數(shù)據(jù)處理和重構(gòu)過(guò)程。
本書(shū)內(nèi)容通俗易懂,案例豐富,實(shí)用性強(qiáng),特別適合入門(mén)級(jí)數(shù)據(jù)分析人員學(xué)習(xí),也適合進(jìn)階閱讀,相信通過(guò)閱讀本書(shū),讀者對(duì)數(shù)據(jù)分析過(guò)程中的清洗和重構(gòu)會(huì)有一個(gè)新的認(rèn)識(shí)。
徐鵬
----------------------------
徐鵬,微軟最有價(jià)值專(zhuān)家MVP、微軟公共論壇版主、51CTO特級(jí)講師,原微軟中國(guó)有限公司工程師,曾為中廣核、華為、比亞迪、南航、臺(tái)積電等中大型企業(yè)提供培訓(xùn)及顧問(wèn)咨詢(xún)服務(wù)。先后就職于宏碁(中國(guó))有限公司、微軟(中國(guó))有限公司。為全球500強(qiáng)企業(yè)提供各類(lèi)業(yè)務(wù)的優(yōu)化服務(wù)及顧問(wèn)咨詢(xún)服務(wù),精通數(shù)據(jù)分析方法論及Windows系統(tǒng)的自動(dòng)化運(yùn)維。
第1章 走入Power Query的世界
1.1Excel處理數(shù)據(jù)的缺點(diǎn)2
1.2Excel的Power數(shù)據(jù)處理組件3
1.3Power Query組件5
1.3.1Excel的Power Query組件8
1.3.2Power BI的Power Query數(shù)據(jù)導(dǎo)入界面10
1.4Power Query編輯器11
1.4.1Excel的Power Query編輯器
界面12
1.4.2Power BI的Power Query編輯器
界面14
1.4.3Excel在Power Query數(shù)據(jù)處理中的優(yōu)勢(shì)17
1.4.4Power BI在Power Query數(shù)據(jù)處理上的優(yōu)勢(shì)18
1.5Power Query的底層語(yǔ)言——M語(yǔ)言21
1.6本章總結(jié)24
第2章 Power Query的數(shù)據(jù)集成
2.1Power Query的CSV/TXT 數(shù)據(jù)集成26
2.1.1Excel 導(dǎo)入CSV數(shù)據(jù)26
2.1.2Power BI導(dǎo)入CSV數(shù)據(jù)30
2.2Power Query的Excel數(shù)據(jù)集成32
2.2.1Excel中的Excel數(shù)據(jù)導(dǎo)入與
集成32
2.2.2Power BI中的Excel數(shù)據(jù)導(dǎo)入與
集成34
2.3Excel 導(dǎo)入當(dāng)前表格中的數(shù)據(jù)35
2.4XML格式數(shù)據(jù)集成37
2.4.1Excel 實(shí)現(xiàn)XML 數(shù)據(jù)的集成37
2.4.2Power BI 導(dǎo)入XML格式數(shù)據(jù)40
2.5JSON格式數(shù)據(jù)集成42
2.5.1Excel實(shí)現(xiàn)JSON數(shù)據(jù)集成43
2.5.2Power BI實(shí)現(xiàn)JSON數(shù)據(jù)集成45
2.6文本格式數(shù)據(jù)集成46
2.6.1Excel以文本格式導(dǎo)入數(shù)據(jù)47
2.6.2Power BI以文本格式導(dǎo)入數(shù)據(jù)48
2.7Power Query的SQL Server數(shù)據(jù)集成50
2.7.1Excel獲取SQL Server全部
數(shù)據(jù)53
2.7.2Excel獲取T-SQL 篩選后的
數(shù)據(jù)54
2.7.3Power BI以導(dǎo)入方式獲取SQL
數(shù)據(jù)56
2.7.4Power BI采用Direct Query獲取SQL數(shù)據(jù)58
2.8Power Query導(dǎo)入Web數(shù)據(jù)61
2.8.1Excel 實(shí)現(xiàn)Web的數(shù)據(jù)獲取62
2.8.2Power BI實(shí)現(xiàn)Web的數(shù)據(jù)獲取65
2.9Power Query 導(dǎo)入Web API數(shù)據(jù)70
2.9.1Excel 實(shí)現(xiàn)Web API數(shù)據(jù)獲取71
2.9.2Power BI實(shí)現(xiàn)Web API數(shù)據(jù)獲取72
2.10Power Query導(dǎo)入MySQL數(shù)據(jù)74
2.10.1Excel 實(shí)現(xiàn)MySQL 數(shù)據(jù)獲取75
2.10.2Power BI 實(shí)現(xiàn)MySQL數(shù)據(jù)
獲取77
2.11Power Query導(dǎo)入文件夾數(shù)據(jù)79
2.11.1Excel提取文件夾所有文件
數(shù)據(jù)79
2.11.2Power BI提取文件夾的所有
數(shù)據(jù)81
2.12Power BI中的數(shù)據(jù)流服務(wù)84
2.12.1Power BI Pro構(gòu)建數(shù)據(jù)流服務(wù)84
2.12.2Power BI Desktop引用數(shù)據(jù)流
服務(wù)87
2.13數(shù)據(jù)源訪(fǎng)問(wèn)的權(quán)限管理88
2.14本章總結(jié)90
第3章 Power Query和M語(yǔ)言
3.1什么是M語(yǔ)言92
3.2M語(yǔ)言支持的基本數(shù)據(jù)類(lèi)型96
3.3M語(yǔ)言支持的組合數(shù)據(jù)類(lèi)型99
3.4Power Query的M語(yǔ)言結(jié)構(gòu)101
3.5Power Query中M語(yǔ)言的智能提示105
3.6Power Query的M語(yǔ)言變量107
3.7Power Query的M語(yǔ)言參數(shù)109
3.8Power Query的M語(yǔ)言流程處理114
3.9Power Query的M語(yǔ)言的錯(cuò)誤處理116
3.10Power Query的M語(yǔ)言嵌套119
3.11Power Query的M語(yǔ)言操作符120
3.12M語(yǔ)言的注釋130
3.13本章總結(jié)131
第4章 Power Query實(shí)現(xiàn)數(shù)據(jù)的清洗和重構(gòu)
4.1數(shù)據(jù)清洗遵從的原則133
4.2數(shù)據(jù)清洗后的操作134
4.3數(shù)據(jù)清洗和重構(gòu)具體操作134
4.4Power Query實(shí)現(xiàn)數(shù)據(jù)類(lèi)型的轉(zhuǎn)換135
4.4.1Excel中數(shù)據(jù)類(lèi)型轉(zhuǎn)換135
4.4.2Power BI數(shù)據(jù)類(lèi)型轉(zhuǎn)換137
4.5Power Query實(shí)現(xiàn)列的刪除138
4.6Power Query 實(shí)現(xiàn)行的刪除139
4.7Power Query保留行操作146
4.8Power Query的數(shù)據(jù)篩選150
4.9Power Query添加數(shù)據(jù)列156
4.10Power Query按列分列164
4.11Power Query按列分行172
4.12Power Query的數(shù)據(jù)轉(zhuǎn)置175
4.13Power Query數(shù)據(jù)替換176
4.14Power Query數(shù)據(jù)列交換179
4.15Power Query的數(shù)據(jù)排序179
4.16Power Query時(shí)間表的構(gòu)建181
4.17本章總結(jié)186
第5章 Power Query實(shí)現(xiàn)數(shù)據(jù)合并操作
5.1Power Query數(shù)據(jù)多重合并操作188
5.2Power Query數(shù)據(jù)追加合并操作189
5.3Power Query數(shù)據(jù)橫向合并192
5.4數(shù)據(jù)合并連接關(guān)系說(shuō)明195
5.5Power Query處理缺失值203
5.6Power Query實(shí)現(xiàn)數(shù)據(jù)的分組207
5.7Power Query實(shí)現(xiàn)數(shù)據(jù)的透視217
5.8Power Query實(shí)現(xiàn)數(shù)據(jù)的逆透視219
5.9本章總結(jié)220
第6章 Power Query查詢(xún)連接的分享與刷新
6.1Power Query數(shù)據(jù)連接的分享與重用222
6.2Excel中的Power Query連接與復(fù)制222
6.3Power Query連接的導(dǎo)出與導(dǎo)入226
6.4Power Query 的數(shù)據(jù)刷新229
6.4.1Excel的刷新功能230
6.4.2Power BI的刷新功能238
6.5本章總結(jié)247
第7章 Power Query的函數(shù)
7.1Power Query函數(shù)的獲取與使用249
7.2Power Query文件系列訪(fǎng)問(wèn)函數(shù)259
7.2.1CSV文件解析260
7.2.2Excel 文件內(nèi)表解析261
7.2.3引用第三方Excel數(shù)據(jù)263
7.2.4XML文件解析263
7.2.5JSON文件解析264
7.3數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)函數(shù)265
7.3.1Access 數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)265
7.3.2SQL Server 數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)266
7.3.3MySQL數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)266
7.4Web訪(fǎng)問(wèn)函數(shù)267
7.4.1Web.Contents函數(shù)267
7.4.2Web.Page 函數(shù)267
7.4.3Web.BrowserContents 函數(shù)268
7.4.4Html.Table 函數(shù)268
7.5Power Query文本處理函數(shù)269
7.5.1Text.Length計(jì)算字符串長(zhǎng)度269
7.5.2Text.Insert插入字符串270
7.5.3Text.From 將其他數(shù)據(jù)類(lèi)型轉(zhuǎn)換為
文本類(lèi)型270
7.5.4Text.Format 設(shè)置文本輸出格式271
7.5.5Text.Tolist 將文本轉(zhuǎn)換為列表271
7.5.6Text.Start截取字符串中前面的
字符272
7.5.7Text.Select刪除不需要的字
符串272
7.5.8Text.Middle 截取中間部分字符273
7.5.9Text.End截取從設(shè)定位置到結(jié)尾的字符273
7.5.10Text.Range 獲取字符串范圍
數(shù)據(jù)274
7.5.11Text.Replace 替換特定數(shù)據(jù)274
7.5.12Text.ReplaceRange替換區(qū)域
數(shù)據(jù)274
7.5.13Text.Repeat重復(fù)文本275
7.5.14Text.Combine合并文本275
7.5.15Text.Trim刪除前后特定字符276
7.5.16Text.Padstart 占位符填充277
7.5.17Text.Split字符串分隔278
7.5.18Text.BeforeDelimiter獲取分隔符前的數(shù)據(jù)278
7.5.19Text.AfterDelimiter獲取分隔符后的數(shù)據(jù)279
7.5.20Text.BetweenDelimiters獲取分隔符中間值280
7.6Power Query列表處理函數(shù)280
7.6.1List.Accumulate列表累加器
計(jì)算281
7.6.2List.Range獲取列表區(qū)域281
7.6.3List.Average計(jì)算列表平均數(shù)282
7.6.4List.Sum對(duì)列表求和282
7.6.5List.Combine合并列表283
7.6.6List.Count統(tǒng)計(jì)列表元素283
7.6.7List.Dates 創(chuàng)建日期列表284
7.6.8List.LastN獲取列表最后N個(gè)
元素284
7.6.9List.MaxN 獲取最大數(shù)據(jù)285
7.6.10List.Numbers 生成數(shù)值列表286
7.6.11List.Product列表元素乘積287
7.6.12List.Random生成隨機(jī)數(shù)列表287
7.6.13List.RemoveFirstN刪除列表前面N個(gè)數(shù)值288
7.6.14List.RemoveItems 刪除列表項(xiàng)288
7.6.15List.RemoveRange刪除列表區(qū)間
數(shù)值289
7.6.16List.Repeat重復(fù)列表數(shù)據(jù)290
7.6.17List.ReplaceRange 替換列表
區(qū)間290
7.6.18List.Select篩選列表291
7.6.19List.Skip實(shí)現(xiàn)列表行跳躍291
7.6.20List.Sort列表排序292
7.6.21List.Split列表分割292
7.6.22List.Union對(duì)列表非重復(fù)數(shù)據(jù)進(jìn)行合并293
7.6.23List.Generate生成列表293
7.6.24List.Zip 列表提取與組合294
7.7Power Query記錄處理函數(shù)295
7.7.1Record.AddField 添加記錄字段
功能295
7.7.2Record.Combine 記錄連接295
7.7.3Record.FromList將列表轉(zhuǎn)換
記錄296
7.7.4Record.RemoveFields刪除字段296
7.7.5Record.SelectFields 選擇記錄297
7.7.6Record.Tolist將記錄轉(zhuǎn)換為
列表297
7.8Power Query表處理函數(shù)298
7.8.1Table.AddColumn在表中添加并計(jì)算列298
7.8.2Table.AddIndexColumn為表添加索引列299
7.8.3Table.AddJoinColumn添加嵌
套表299
7.8.4Table.AlternateRows行跳躍300
7.8.5Table.Combine合并數(shù)據(jù)表301
7.8.6Table.DemoteHeaders實(shí)現(xiàn)表標(biāo)題
降級(jí)301
7.8.7Table.Distinct獲取表唯一值302
7.8.8Table.ExpandListColumn擴(kuò)展
列表303
7.8.9Table.ExpandRecordColumn 擴(kuò)展記錄列304
7.8.10Table.ExpandTableColumn擴(kuò)展表數(shù)據(jù)304
7.8.11Table.FindText 查找內(nèi)容305
7.8.12Table.FirstN 獲取前面的表
數(shù)據(jù)305
7.8.13Table.Group對(duì)表數(shù)據(jù)聚合307
7.8.14Table.Join進(jìn)行表連接307
7.8.15Table.LastN獲取表最后幾行
數(shù)據(jù)308
7.8.16Table.MaxN求表中最大的N個(gè)
數(shù)據(jù)309
7.8.17Table.MinN求表中最小的N個(gè)
數(shù)據(jù)310
7.8.18Table.PromoteHeaders將第一行提升為標(biāo)題行311
7.8.19Table.Range選擇區(qū)域行312
7.8.20Table.RemoveColumns 刪除列313
7.8.21Table.RemoveFirstN刪除表前面
的行313
7.8.22Table.RemoveLastN刪除表后面
的行314
7.8.23Table.Repeat實(shí)現(xiàn)表行重復(fù)315
7.8.24Table.ReplaceRows 替換數(shù)
據(jù)行316
7.8.25Table.ReplaceValue替換數(shù)
據(jù)值317
7.8.26Table.SelectRows 篩選數(shù)據(jù)318
7.8.27Table.Skip實(shí)現(xiàn)表的行跳躍318
7.8.28Table.Sort對(duì)表排序319
7.8.29Table.Transpose互換行列320
7.9Power Query URL處理函數(shù)321
7.9.1Uri.BuildQueryString構(gòu)建URL訪(fǎng)問(wèn)地址參數(shù)321
7.9.2Uri.Combine合并URL訪(fǎng)問(wèn)
地址321
7.10Power Query數(shù)據(jù)合并函數(shù)322
7.10.1Combiner.CombineTextByDelimiter 以分隔符方式合并字符322
7.10.2Combiner.CombineTextByEachDe-limiter按順序分隔符合并文本323
7.11Power Query數(shù)據(jù)分割函數(shù)324
7.11.1Splitter.SplitTextByDelimiter按分隔符拆分?jǐn)?shù)據(jù)324
7.11.2Splitter.SplitTextByEachDelimiter按分隔符列表拆分?jǐn)?shù)據(jù)324
7.11.3Splitter.SplitTextByLengths按照長(zhǎng)度拆分?jǐn)?shù)據(jù)325
7.11.4Splitter.SplitTextByRepeatedLength按字符長(zhǎng)度重復(fù)拆分325
7.11.5SplitTextByPositions按位置
拆分326
7.12Power Query日期時(shí)間函數(shù)327
7.12.1Date.Day獲取日期部分327
7.12.2Date.DayOfWeek求取日期位于一周中的第幾天327
7.12.3Date.DayOfYear求取日期位于一年中的第幾天328
7.12.4Date.DaysInMonth求取日期所在月份的天數(shù)328
7.12.5Date.FromText將文本生成
日期328
7.12.6Date.AddDays日期的加減329
7.12.7Date.AddMonths月度加減
運(yùn)算329
7.12.8Date.AddYears年度加減運(yùn)算330
7.12.9Date.ToText將日期轉(zhuǎn)換為
文本330
7.12.10Date.ToRecord將日期轉(zhuǎn)換為
記錄331
7.12.11DateTime.LocalNow獲取當(dāng)前
時(shí)間331
7.13本章總結(jié)331
第8章 Power Query的自定義函數(shù)
8.1從零開(kāi)始構(gòu)建自定義函數(shù)334
8.1.1無(wú)參數(shù)自定義函數(shù)構(gòu)建335
8.1.2有參數(shù)自定義函數(shù)構(gòu)建336
8.2基于數(shù)據(jù)結(jié)果建立函數(shù)337
8.3執(zhí)行并獲取自定義函數(shù)結(jié)果340
8.4自定義函數(shù)提取文件夾內(nèi)所有請(qǐng)假
數(shù)據(jù)341
8.5自定義函數(shù)獲取基金即時(shí)凈值348
8.6本章總結(jié)353
第9章 Power Query與Python
9.1Power Query調(diào)用Python的前置
條件355
9.2Python環(huán)境的安裝與部署355
9.3Power BI 啟用Python 支持358
9.3.1Power Query執(zhí)行Python驗(yàn)證358
9.3.2Power Query結(jié)合Python生成中文詞云361
9.4本章總結(jié)365
第10章 Power Query數(shù)據(jù)綜合應(yīng)用案例
10.1身份證信息的初步導(dǎo)入368
10.2身份證號(hào)碼數(shù)據(jù)初步清洗369
10.3身份證數(shù)據(jù)二次清洗373
10.4非中文姓名數(shù)據(jù)清洗375
10.5本章總結(jié)377
附錄Power Query 簡(jiǎn)單案例處理378