###### tags: `工務局` `關` `Excel` # 工務局_Excel資料分析與視覺化應用 <style> /* 加入Logo */ .toc:{position: relative;} .toc:before{ content: url(https://zoego.tech/img/logo.svg); width:200px; position:fixed; top:0 ; left:0; } /* 調整 左側NAV */ .markdown-body { max-width: 900px !important;} .markdown-body h1,.markdown-body h2{border-bottom: none;} .ui-toc-dropdown .nav>li>a{ color: #000;} .ui-toc-dropdown .nav>.active:focus>a, .ui-toc-dropdown .nav>.active:hover>a, .ui-toc-dropdown .nav>.active>a{ color:#C00000;} /* h1~H5 修改 */ h1{ color:#4C4C6D; } .h2{ color:#52006A; background-color:#A2DBFA; line-height:1.8em;font-size:.9em;display:block; padding-left:10px;border-radius:5px;} h3{ color:#BF1363; } .h4{color:#000099; font-size:1.2em;} .h5{color:#7030A0; font-size:1.2em;} /* 講師資訊 美化 */ .alert-warning { border-width: 2px; width: 60%; margin: auto;} /* 指令 縮圖 ICON圖設定 */ .img3{ width:30px; display:inline-block;margin:0 5px;} .img4{ width:40px; display:inline-block;margin:0 5px;} .img5{ width:50px; display:inline-block;margin:0 5px;} .img6{ width:60px; display:inline-block;margin:0 5px;} /* 圖片尺寸 設定 */ .img20{ width:20%; margin:20px auto; display:block; text-align: center;} .img30{ width:30%; margin:20px auto; display:block; text-align: center;} .img40{ width:40%; margin:20px auto; display:block; text-align: center;} .img50{ width:50%; margin:20px auto; display:block; text-align: center;} .img60{ width:60%; margin:20px auto; display:block; text-align: center;} .img70{ width:70%; margin:20px auto; display:block; text-align: center;} .img80{ width:80%; margin:20px auto; display:block; text-align: center;} .img90{ width:90%; margin:20px auto; display:block; text-align: center;} .img100{ width:100%; margin:20px auto; display:block; } /* 連結URL 調整 */ .urlr{ text-align:right; line-height:1.5em;display:block;} .urll{ line-height:1.5em;display:block;} /* 提供講義標示頁碼 */ .page{display:flex; justify-content: right;} .page span{ background:#ffdd75;border:1px solid #d1a128;border-radius:5px; padding:5px;color:#000;text-align:right; float:right; } /* Slider 外掛 美化 */ iframe{ width:850px; height:478px; display:block; margin:auto; border-width: 0;border:2px solid #000;} /* 設定 pre 及 快速鍵 */ .markdown-body code { border: 1px solid #000; margin:0 5px; } .markdown-body pre>code { font-size: 1.2em; } .markdown-body pre { border: 1px solid #ab0505 !important; margin:10px 0; padding:5px 10px;} /* 快速鍵 > 語法於P中 */ .markdown-body p>code { color:#BF1363 !important; border:none; background:none} /* 表格 設定 */ .markdown-body table { width: fit-content; margin: auto; } .markdown-body table th, .markdown-body table td { border: 1px solid #7F7F7F; } .tableTitle{text-align:center; display:block;} .red{color:#BF1363;font-weight:bold;} .blue{color:#265F92;font-weight:bold;} .step{ padding-left:1.5em;color:blue;font-size:1.1em; } .textc{text-align:center; display:block;} .markdown-body p{ margin-bottom: 0;} .ex{color:#333399 ; font-size:1.2em; font-weight:bold; line-height:1em;} /* 置中、圓角框、項目 */ .title{ text-align:center; display:block;color:#766161;font-size:1.2em;font-weight:bold; border:1px solid;line-height:2em;border-radius:5px} .youtube:before{ content:""; display:block; position:absolute; top:50%; left:50%; z-index:1; transform:translate(-50%,-50%); width:80px; height:80px; background:url(https://zoego.tech/img/icon_youtube2.png); background-size: contain; border-radius: 10px; box-shadow: 1px 1px 3px #000; } .youtube{ border:1px solid #333; } </style> # 課程開場介紹 :::warning <span class="textc" style="font-weight:bold; font-size:1.2em">課程講師資訊</span>巨匠電腦講師:呂心怡 E-mail:zoego99@gmail.com 上課日期:2022/8/2、4 及 2022/9/12、14<span class="urll">[課程練習下載區:https://bit.ly/3mlZcXH](https://bit.ly/3mlZcXH) </span> ::: ## <span class="h2">A、適用對象</span> <span style="text-indent:2em;display:block;">適用所有Excel使用者,尤其是需要經常對原始資料進行手工合併、追加、去除重複數據等操作的資料分析,或者工作中經常運用Excel的樞紐分析工具進行數據分析人員。</span> ## <span class="h2">B、課程概述</span> ### 1、 Power Query(PQ) <span style="text-indent:2em;display:block;">在工作中經常使用Excel手工合併多張表格;經常需要對來源資料進行刪除、分列、去除重複數據等操作,然而做過資料分析相關工作的你應該深有體會 – 我們需要製作一份數據分析報告的時候,80%的時間要用來處理不規範的來源資料。</span> <span style="text-indent:2em;display:block;">想要擺脫重覆、手工、枯燥的整理工作的苦惱嗎?進而大幅度提升工作效率,節省寶貴時間嗎?Excel提供內建好用的Power Query插件,提供親和的介面化操作,讓很多重複工作進行簡化。</span> <span style="text-indent:2em;display:block;">很可惜多數人使用Excel卻都忽略Power Query插件,而學習這項工具已經是未來趨勢,藉由本次課程將列舉實務性範例,解決許多惱人且複雜的報表整理,進而提高工作效率。</span> :::success (A) 何謂Excel表格及其使用優點介紹 (B) 將多個Excel、CSV檔案或網頁,不同來源類型數據的輕鬆獲取 (&#067;) 分割、合併與提取儲存格資料 (D) 一維 / 二維 資料表轉換 (E) 利用合併查詢進行兩表比對,比Vlookup查詢更加簡單及靈活 (F) 產品明細快速拆分【中/英】文 <!-- (G) 創建動態參數查詢,讓條件篩選更加機動性 --> ::: ### 2、 Power Pivot (PP) <span style="text-indent:2em;display:block;">只要進行數據分析工作者,都會使用【樞紐分析表(Pivot Table)】,也都看過/聽過【資料管理模型(PowerPivot)】卻混淆不知道如何應用,其實這兩項套件是相輔相成的工具,差別在PowerPivot可匯整多張關係工作表,更加結構化進行數據分析。</span> <span style="text-indent:2em;display:block;">在工作中愈來愈多數人都運用樞紐工具進行數據分析,基本樞紐操作已經難不倒,本次課程將藉由【Power Pivot】增益集解決Vlookup連結多報表困擾,並提出執行樞紐分析可能遇到的困擾,及製作樞紐時經常忽略的功能,讓樞紐分析運用更加靈活,得心應手。</span> :::success (A) 樞紐分析前置作業 &#12288;&#12288;(1) 解決日期欄位無法產生年/季/月報困擾 &#12288;&#12288;(2) 利用【Power Pivot】增益集解決Vlookup連結多報表困擾 (B) 樞紐分析進階應用—經常忽略技巧分享 &#12288;&#12288;(1) 如何有效率美化樞紐分析表 &#12288;&#12288;(2) 數據顯示依值顯示方式,從而更清晰的看出數據之間的關係 &#12288;&#12288;(3) 藉助樞紐分析表中的計算欄位功能產生欄位 &#12288;&#12288;(4) 利用交叉分析篩選器動態數據分析 &#12288;&#12288;(5) 利用群組特性,彙整年報、季報、月報 ::: ## <span class="h2">C、未來展望</span> <span style="width:100%; height:50vh ;display:block"> <iframe title="PBI_咖啡銷售數據 - 儀表板" style="width:100%; height:100% ;" src="https://app.powerbi.com/view?r=eyJrIjoiMzBmODhhMjgtNDBlYy00ODBjLThkY2MtZDFhMTRjNjM2MWU4IiwidCI6ImNkNWRmNDkxLTZhMTYtNDkzZS1iNTVhLTkzOGYzYWE5YWRlYiIsImMiOjEwfQ%3D%3D" frameborder="0" allowFullScreen="true"></iframe> </span> <br> 在工作任務中,經常需要利用Excel樞紐分析功但不了解Power BI使用者,Power BI Desktop是安裝在本機電腦的免費商業分析工具,可從多種檔案類型匯入資料後,快速建立互動圖表的工具,輕鬆完成大數據的分析! <br><br> ### 1、 各項軟體間的分責運用 <span class="page"><span>P.1</span></span> 整體性概觀了解PowerBI各項軟體間的分責運用。 <a href="https://hackmd.io/_uploads/ryLSpv2rY.png"><span class="img100">![](https://hackmd.io/_uploads/ryLSpv2rY.png)</span></a> ### 2、 參考網站 #### <span style="color:#5E00BC; display:block;font-weight:blod;line-height:2em;">(1) Power BI官網:</span> &#12288;&#12288;了解PowerBI及軟體下載: &#12288;&#12288;&#12288;👆 https://powerbi.microsoft.com/zh-tw/ &#12288;&#12288;&#12288;👆 https://powerbi.microsoft.com/zh-tw/desktop/ &#12288;&#12288;PowerBI 文件:👆 https://docs.microsoft.com/zh-tw/power-bi/ #### <span style="color:#5E00BC; display:block;font-weight:blod;line-height:2em;">(2) Power Query M 公式語言:</span> &#12288;&#12288;👆 https://docs.microsoft.com/zh-tw/powerquery-m/ <span style="display:block; padding-left:2em;">M語言是Power Query的後台函數式編程語言,在Power Query界面的操作過程都會記錄下來並翻譯成M語言,將查詢和轉換的結果返回到Excel表或Excel或Power BI數據模型。</span> <span style="display:block; padding-left:2em;">Power Query上手十分容易,通過圖形界面操作可以解決大部分需求,一般情況下,我們不用去深入學習M語言,但是,如果對M語言有了一定的理解可以對操作步驟進行優化,讓其更加智能,同時也能解決一些圖形界面操作不能完成的任務。</span> #### <span style="color:#5E00BC; display:block;font-weight:blod;line-height:2em;">(3) Power BI Desktop使用DAX函數:</span> &#12288;&#12288;👆 https://docs.microsoft.com/zh-tw/dax/ <span style="display:block; padding-left:2em;">DAX是Power Pivot和Power BI Desktop中使用的公式語言。 DAX使用函數處理存儲在表中的數據。一些DAX函數與Excel工作表函數相同,但DAX具有更多功能來匯總,切片和切割複雜的數據場景。</span> ## <span class="h2">D、指令位置</span> <span class="page"><span>P.2</span></span> ### 1、 PP安裝啟動 <a href="https://hackmd.io/_uploads/BkrkuU2SF.png"><span class="img100">![](https://hackmd.io/_uploads/BkrkuU2SF.png)</span></a> ### 2、 指令位置 <a href="https://hackmd.io/_uploads/ByLspUhrY.png"><span class="img100">![](https://hackmd.io/_uploads/ByLspUhrY.png)</span></a> # Excel 應用技巧 ## <span class="h2">1. Excel批次貼入圖片方法</span> <span class="page"><span>補充</span></span> <span class="ex">🔶 範例結果</span> <span class="img90">![](https://hackmd.io/_uploads/S1U_CZ8VK.png)</span> <span class="step">S1:複製圖片路徑,將所有照片置於同一資料夾中,並複製其路徑</span> <span class="img90">![](https://hackmd.io/_uploads/rJ3bJGU4Y.png)</span> <span class="step">S2:語法說明複製下方法語法至Excel中,修改其內容</span> ``` ="<table><img src='圖片路徑資料夾\" & 檔名 & ".副檔名' width='50'>" ``` 語法說明 <span class="img100">![](https://hackmd.io/_uploads/BJ8Lyz8VF.png)</span> <span class="step">S3:貼入Excel調整情形參考</span> <span class="img100">![](https://hackmd.io/_uploads/HyhqyfLVY.png)</span> <span class="step">S4:路徑結果貼入記事本中,將路徑結果貼入記事本中,將其Excel設定移除</span> <span class="img80" style="border:1px solid;padding:10px">![](https://hackmd.io/_uploads/SJ_CyML4t.png)</span> <span class="step">S5:再將記事本路徑貼回Excel中,再將記事本路徑貼回Excel中,調整圖片大小即可 </span> ## <span class="h2">2. Indirect與【名稱定義】結合應用</span> <span class="page"><span>補充</span></span> ### A. 函數 #### <span class="h4">(1) Vlookup查表函數</span> 依查詢值進行資料比對輸出相關資料之函數 :::success = Vlookup ( <span style="color:blue;">查詢值</span> , <span style="color:red;">查表範圍</span> , 回傳指定欄數 , <span style="color:#7030A0;">選項</span>) 說明 * <span style="color:blue;">查詢值若為『文字』,選項為False<br>查詢值若為『數值』,選項通常為True,且查表範圍應遞增</span> * <span style="color:blue;">查詢值應為查表範圍的第一欄 / 列</span> * <span style="color:red;">查表範圍若為『縱』向查詢,即為 Vlookup 函數<br>查表範圍若為『橫』向查詢,即為 Hlookup 函數</span> * <span style="color:#7030A0;">選項:</span> * <span style="color:#7030A0;">False,必須比對完合符合才回傳,查無資料以 “#N/A” 表示<br>True 或省略,比對回傳接近不超過查詢值的資料</span> * 查表函數,可搭配 Iferror 函數 ::: #### <span class="h4">(2) Indirect 間接抓取範圍函數</span> ``` = Indirect ( 定義名稱 ) ``` ### B. 範例 <a href="https://hackmd.io/_uploads/H10VUU3B5.png"><span class="img100">![](https://hackmd.io/_uploads/H10VUU3B5.png)</span></a> S1:以C2儲存格為例: ``` =VLOOKUP( $A2 , 銷售01月 !$A$2:$F$13 , 6 , FALSE ) =VLOOKUP( $A2 , indirect( C$1 & "!$A$2:$F$13" ) , 6 , FALSE ) ``` 以上公式完成複製於其他儲存格中即可。 S2:選取【員工編號】及【圖片】範圍,建立名稱定義,如下圖 <a href="https://hackmd.io/_uploads/HkCXYLnr5.png"><span class="img80">![](https://hackmd.io/_uploads/HkCXYLnr5.png)</span></a> S3:將被查詢圖片的員工編號,設定為圖片的名稱定義來源,如下圖建立: ``` 定義名稱:員工圖片 公式:=INDIRECT(總表!$L$3)&"_" ``` <a href="https://hackmd.io/_uploads/SyX0WvnH9.png"><span class="img90">![](https://hackmd.io/_uploads/SyX0WvnH9.png)</span></a> S4:選取第一名員工圖片的<span class="red">儲存格</span>,利用複製,並點選【貼上】>【連結的圖片】,並將公式改為【=員工圖片】定義名稱 <a href="https://hackmd.io/_uploads/BJKtzw3Hc.png"><span class="img90">![](https://hackmd.io/_uploads/BJKtzw3Hc.png)</span></a> ## <span class="h2">3. 取得數據無法計算的困擾</span> <span class="page"><span>補充</span></span> ### A. 日期輸入原則的重要性 <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 輸入結構【年/月/日】,定義為西元年份</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 日期以 `/` 或 `-` 區隔,時間以 `:` 區隔</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 今年年份輸入時可省略</span> <span class="step" style="line-height:2em;color:#C00000"><i class="fa fa-hand-o-right"></i> Win系統為台灣版本時,民國年份之日期前方加入`R`</span> <span class="step" style="padding-left:3em;line-height:2em">例`R30/3/5`,Excel自動轉換為1941/3/5。</span> ### B. 情境說明:使用乘積函數困擾(權重計算) <span class="img90">![](https://hackmd.io/_uploads/S1T931MNY.png)</span> ### C. 善用【資料剖析】進行轉換 <span class="step">指令:【資料】>【資料剖析】</span> ### D. 特殊目標..介紹 <span class="step">善用【常用】>【尋找與選取】>【特殊目標】</span> <span class="img90">![](https://hackmd.io/_uploads/H1hvWzfEt.png)</span> <span style="text-align:right;display:block;">[線上銷售明細](https://zoego.tech/salelist.html)</span> #### <span class="h4">📌【課程範例】</span> <span style="color:blue ; font-size:1.1em; line-height:2em;margin-left:30px;">🔶【範例】</span><span class="img100">![](https://hackmd.io/_uploads/Bkr6XfGVt.png)</span> <span style="color:blue ; font-size:1.1em; line-height:2em;margin-left:30px;">🔶【步驟】</span> <span class="step" style="margin-left:2em;">練習1:空格向下填滿</span> <span class="step" style="margin-left:5em;">S1:選取數據範圍</span> <span class="step" style="margin-left:5em;">S2:【常用】>【尋找與選取】</span> <span class="step" style="margin-left:5em;">S3:【特殊目標】> 點選【空格】選項</span> <span class="step" style="margin-left:5em;line-height:2em">S4:輸入`=`,方向鍵`↑`</span> <span class="step" style="margin-left:5em;">S5:輸入完成`Ctrl`+`Enter`</span> <span class="step" style="margin-left:5em;color:red;font-weight:bold">S6:移除公式</span> <span class="step" style="margin-left:7em;color:red;font-weight:bold">全選範圍>【複製】>【選擇性貼上】>【值】123</span> <span class="step" style="margin-left:2em;">練習2:依篩選條件進行美化</span> <span style="color:red ; font-size:1.1em; line-height:2em;margin-left:7em;">快速鍵:【Alt】+【;】</span> ## <span class="h2">4. 解決總和遇上篩選困擾</span> <span class="page"><span>補充</span></span> ### A. 名稱定義 <a href="https://hackmd.io/_uploads/HJeIbBHEt.png"><span class="img80">![](https://hackmd.io/_uploads/HJeIbBHEt.png)</span></a> ### B. 小計函數:Subtotal <span class="img100">![](https://hackmd.io/_uploads/BJePGHrNK.png)</span> ### C. 會除錯的小計函數:Aggregate Aggregate函數比Subtotal函數還要強大,因面對忽略錯誤值、隱藏行和分類匯總嵌套,滿足Subtotal無法處理,但Aggregate滿足各種情況下的統計需求! <span class="img100">![](https://hackmd.io/_uploads/SkycGSSNY.png)</span> <span class="img100">![](https://hackmd.io/_uploads/SJxjGSrVt.png)</span> ## <span class="h2">5. 排序與自訂清單</span> ### A. 排序 <a href="https://hackmd.io/_uploads/HJXQKgf4F.png"><span class="img100">![](https://hackmd.io/_uploads/HJXQKgf4F.png)</span></a> ### B. 自訂清單 #### <span class="h4">(1) 目的</span> :::info ※資料排序與自訂清單結合 在排序完成後以使用者角度來看,例如:職務、考績或地區,有自行的排序順序,但電腦只能依筆劃或數值排序時,則需運用【自訂清單】要求順序。 ::: <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 填滿序列</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 資料排序</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 樞紐分析</span> #### <span class="h4">(2) 指令</span> <span class="step">【檔案】>【選項】>【進階】之下>【編輯自訂清單】> 加入清單項目</span> <a href="https://hackmd.io/_uploads/SkhtieMNY.png"><span class="img90">![](https://hackmd.io/_uploads/SkhtieMNY.png)</span></a><a href="https://hackmd.io/_uploads/SJlZJMGEF.png"><span class="img80">![](https://hackmd.io/_uploads/SJlZJMGEF.png)</span></a> ### C. 自訂清單 :::info <span style="color:#b71c1c; ">※【格式化為表格】無法使用小計功能,利用【轉換為範圍】移除格式化為表格前,應確認顏色是否移除</span> ::: ### S1:小計之前先排序 <span class="step">指令:【資料】>【排序】</span> ### S2:先排序的欄位,先執行小計工作 <span class="step">指令:【資料】>【小計】</span> <span class="step">S2-1:第一階層排序欄位【經銷商】</span> <a href="https://hackmd.io/_uploads/r1DdTvgPK.png"><span class="img40">![](https://hackmd.io/_uploads/r1DdTvgPK.png)</span></a> <span class="step">S2-2:第二階層排序欄位【商品名稱】</span> <a href="https://hackmd.io/_uploads/S1eh6wgwF.png"><span class="img40">![](https://hackmd.io/_uploads/S1eh6wgwF.png)</span></a> ## <span class="h2">6. 使用Excel表格重要性</span> <span class="page"><span>P.3</span></span> ### A. Excel表格介紹 <span class="step">可以快速地建立、格式化及展開 Excel 表格,組織工作表上的資料,讓其更易於使用。</span> #### <span class="h4">(1) 指令介紹</span> <span class="step">📌 建立</span> <span class="img70">![](https://hackmd.io/_uploads/BJko6I7NK.png)</span> <span class="step">📌 表格化指令</span> <a href="https://hackmd.io/_uploads/Synd8KY4Y.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/Synd8KY4Y.png)</span></a> #### <span class="h4">(2) 表格化選取方法</span> <span class="step">🔶 左鍵一下選取內容、連二下選取內容及標題</span> <span class="img70">![](https://hackmd.io/_uploads/HkW-xKY4t.png)</span> #### <span class="h4">(&#067;) 表格化後,公式表示結構</span> <span class="red" style="font-size:1.5em; text-align:center;display:block; border:1px solid; border-radius:5px; width:60%; margin:auto; background:#FEF7DB;line-height:2.1em">=表格名稱〔@欄位名稱〕</span> <span style="color:blue;font-size:1.2em;padding-left:2em;line-height:2em"><i class="fa fa-hand-o-right"></i> 有@:相對性欄位</span> <span style="color:blue;font-size:1.2em;padding-left:2em;line-height:2em"><i class="fa fa-hand-o-right"></i> 沒有@:整欄計算</span> ### B. 使用優點 #### <span class="h4">(1) 容易選取資料範圍且數據自動縮放</span> #### <span class="h4">(2) 公式容易辨識</span> #### <span class="h4">(3) 交叉分析篩選器</span> <span class="step">交叉分析篩選器為一視覺化控制項,以互動且直覺的方式,快速篩選僅顯示所需的資料的資料。</span> <a href="https://hackmd.io/_uploads/ryV6FFKVt.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/ryV6FFKVt.png) </span></a> ### C. 移除表格注意事項 #### <span class="h4">(1) 移除表格化前,<span class="red">先確認是否要移除色彩</span></span> <span class="step" style="padding-left:2em"><i class="fa fa-hand-o-right"></i> 為了取得帶狀列的色彩,直接移除表格化</span> <span class="step" style="padding-left:2em"><i class="fa fa-hand-o-right"></i> 因反悔表格化功能,而<span class="red">表格會動用排序時</span>,<span class="red">必須</span>要移除色彩</span> #### <span class="h4">(2) 移除方法</span> <span class="img40">![](https://hackmd.io/_uploads/ryMkItYEt.png)</span> ## <span class="h2">7. 當下時間記錄</span> S0:列表輸入情形 S1:在E2儲存格輸入公式 ``` =IF(E2="",NOW(),E2) ``` <span class="blue">公式輸入思考原則:繳交日期E2顯示當下時間,否則顯示空白</span> <a href="https://hackmd.io/_uploads/SyGAy7rac.png"><span class="img60">![](https://hackmd.io/_uploads/SyGAy7rac.png)</span></a> S2:在E2儲存格修改公式 ``` =IF(D2="","",IF(E2="",NOW(),E2)) ``` <span class="blue">公式輸入思考原則:當D2輸入已繳(V),繳交日期E2顯示當下時間,否則顯示空白</span> <a href="https://hackmd.io/_uploads/H18xZXSac.png"><span class="img100">![](https://hackmd.io/_uploads/H18xZXSac.png)</span></a> S3:在進行S2公式建立時,會造成公式循環問題時,利用【檔案】>【選項】(設定如下圖)<br> <span class="urll red" style="font-size:1.2em">[參考資訊:移除或允許循環參照,並了解反覆運算用意](https://support.microsoft.com/zh-tw/office/%E7%A7%BB%E9%99%A4%E6%88%96%E5%85%81%E8%A8%B1%E5%BE%AA%E7%92%B0%E5%8F%83%E7%85%A7-8540bd0f-6e97-4483-bcf7-1b49cd50d123) </span> <a href="https://hackmd.io/_uploads/HkciSwpHc.png"><span class="img100">![](https://hackmd.io/_uploads/HkciSwpHc.png)</span></a> ## <span class="h2">8. 每月各項收支報表</span> ### A. 二維查表函數介紹 #### <span class="h4">(1) Index函數</span> <span class="step">根據欄列號索引回傳查表範圍的值</span> ``` = Index ( 查表範圍 , 指定列數 , 指定欄數 ) ``` <a href="https://hackmd.io/_uploads/BkEql5r4F.png"><span class="img40">![](https://hackmd.io/_uploads/BkEql5r4F.png)</span></a> #### <span class="h4">(2) Match函數</span> <span class="step">傳回搜尋項目於搜尋範圍中的相對位</span> :::info Match 函數: 目的:傳回搜尋項目於搜尋範圍中的相對位置 公式:=Match ( 1️⃣ 查詢值, 2️⃣ 查表範圍 , 3️⃣ 比對方式類型 ) &#12288;3️⃣ 比對方式類型: &#12288;&#12288;1或省略:查詢範圍須『遞增』 &#12288;&#12288;0:查詢範圍不須事前排序,找到完全符合查詢值 &#12288;&#12288;-1:查詢範圍須『遞減』 ::: <span class="step">🔶 公式比擬</span> <a href="https://hackmd.io/_uploads/rk3dE5B4t.png"><span class="img90">![](https://hackmd.io/_uploads/rk3dE5B4t.png)</span></a> ### B. 範例 <a href="https://hackmd.io/_uploads/rJX66-UEt.png"><span class="img100">![](https://hackmd.io/_uploads/rJX66-UEt.png)</span></a> <br> ## <span class="h2">9. 符合條件計算函數</span> 註:課程範例中,先行針對【職員薪資明細】的表格化及名稱定義,在『總表』工作表中,依各職務進行計算 <span class="step">符合條件計算函數:Countif、Sumif、CountifS、SumifS、Averageif、AverageifS</span> <span class="img100">![](https://hackmd.io/_uploads/BkjfkRBNY.png)</span> <span class="img60" style="margin:0">![](https://hackmd.io/_uploads/H1oD0PxE5.png)</span> ## <span class="h2">10. 年資</span> <span class="img100">![](https://hackmd.io/_uploads/H1RhqCBVY.png)</span> #### <span class="h4">(1) 公式說明:計算兩日期間的天數、月數或年數</span> ``` = Datedif ( 開始日 , 結束日 , " 單位 " ) ※ 說明: 單位:決定要傳回的單位,必須前後加上 " " Y代表滿幾年、M代表滿幾月、D代表滿幾日 MD代表兩日期間的天數差,忽略月和年 YM代表兩日期間的月數差,忽略日和年 YD代表兩日期間的天數差,忽略年 要求兩日期實際差距幾年?幾月?幾日應使用Y、YM、MD單位 ``` #### <span class="h4">(2) 範例結果:年資計算</span> ``` = Datedif ( [@起聘日期] , TODAY() , "Y" ) ``` ## <span class="h2">11. 星期計算</span> ### A. 【日期】格式設定 <a href="https://hackmd.io/_uploads/S1msN9N4t.png"><span class="img100">![](https://hackmd.io/_uploads/S1msN9N4t.png)</span></a> ### B. 星期計算公式 <span class="ex" style="padding-left:2em">🔶 星期(中)</span> <span class="img60">![](https://hackmd.io/_uploads/BkGWMJ8Vt.png)</span><span class="ex" style="padding-left:2em">🔶 星期(英)</span> <span class="img60">![](https://hackmd.io/_uploads/ryg5GyLNY.png)</span> ## <span class="h2">12. 常用日期類函數</span> ### A. 傳回日期的年 / 月 / 日值 ``` = Year ( 日期 ) = Month( 日期 ) = Day ( 日期 ) ``` ### B. 組合年、月、日值為日期 ``` = Date ( 年 , 月 , 日 ) ※ 最終抓取值為數值 ``` ### C. 計算兩日期間的天數、月數或年數 ``` = Datedif ( 開始日 , 結束日 , " 單位 " ) ※ 說明: 單位:決定要傳回的單位,必須前後加上 " " Y代表滿幾年、M代表滿幾月、D代表滿幾日 MD代表兩日期間的天數差,忽略月和年 YM代表兩日期間的月數差,忽略日和年 YD代表兩日期間的天數差,忽略年 要求兩日期實際差距幾年?幾月?幾日應使用Y、YM、MD單位 ``` ### D. 計算前後月的某一天 ``` = EDATE (開始日期,月數) ``` ### E. 計算當月的月底日期 ``` = EOMONTH (開始日期,月數) ``` ### F. 傳回自指定工作天數的日期 ``` = Workday ( 開始日期 , 日數 , 假日列表 ) ※ 延伸學習函數 Workday.intl ``` ### G. 傳回兩日期間的工作天數 ``` = Networkdays ( 開始日期 , 結束日期 , 假日列表 ) ※ 延伸學習函數 Networkdays.intl ``` ### H. Workday.intl 及 Networkdays.intl 注意事項 以Workday.intl函數為例: ``` = Workday.intl ( 開始日期 , 日數, 週末代號 , 假日列表 ) ``` 其中,週末代號: &#12288;a. 若非為預設代號,其字串值為七個字元,<br>&#12288;&#12288;且字串代表一週內的一天,從星期一開始。 &#12288;b. 1:代表非工作日 / 0:代表工作日。 &#12288;c. 字串中僅允許字元 1 / 0,1111111 是無效字串。 <span style="color:#b71c1c; display:block;">※ 例如,0000011 代表週末為星期六和星期日。</span> ## <span class="h2">13. 文字串接函數:Concat / TextJoin</span> >[color=red]<span class="urlr">[微軟官網介紹:Concat函數](https://support.microsoft.com/zh-tw/office/concat-%E5%87%BD%E6%95%B8-9b1a9a3f-94ff-41af-9736-694cbd6b4ca2) </span><span class="urlr">[微軟官網介紹:TextJoin函數](https://support.microsoft.com/zh-tw/office/textjoin-%E5%87%BD%E6%95%B8-357b449a-ec91-49d0-80c3-0e8fc845691c) </span> ### A. 新函數動態數組公式寫法 📌 <span class="blue">雙負號【- -】</span><br> 說明: 1. 此非新舊函數會造成的影響,僅在條件判斷時,<span class="red">將邏輯值(True/False)轉換為數字(1/0)</span> 1. <span class="red">多條件篩選時,【 * 】條件為【且】,【 + 】條件為【或】</span> <br> 📌 <span class="blue">A1#引用法</span><br> 使用A1#來表示引用動態數組,可以隨著數據的變化無縫調整大小。相當於引用A1中動態數組的整個填充範圍。 ### B. Concat 函數 :::info Concat 函數: 目的:合併多範圍 / 字串,但不提供分隔符號 公式:= Concat ( 1️⃣ 範圍1/文字1, 2️⃣ 範圍2/文字2 ... ) 備註: (1) CONCAT 會取代 CONCATENATE 函數。 (2) 合併文字間,需要加上分隔符號,可使用TextJoin ::: 📌 <span class="blue" style="font-weight:normal;font-size:.9em">Concat 範例</span> ``` =CONCAT(IF(名單[組別]=$I4,名單[姓名],"")) ``` <a href="https://hackmd.io/_uploads/S1Tw8rxNc.png"><span class="img100">![](https://hackmd.io/_uploads/S1Tw8rxNc.png) </span></a> ### C. TextJoin 函數 :::info TextJoin 函數: 目的:合併多範圍 / 字串,但並提供分隔符號 公式:= TextJoin ( 1️⃣ "分隔符號", 2️⃣ 是否忽略空白儲存格 , 3️⃣ 加入的文字項目/範圍 ) <br> &#12288;2️⃣ 是否忽略空白儲存格 &#12288;&#12288; True:忽略空白儲存格 &#12288;&#12288; Fasle:不忽略空白儲存格 ::: 📌 <span class="blue" style="font-weight:normal;font-size:.9em">TextJoin 範例</span> ``` 人員列表: =TEXTJOIN("、",TRUE,IF(名單[組別]=$L4,名單[姓名],"")) 人數: =COUNTA(UNIQUE(IF(名單[組別]=L4,名單[姓名]),FALSE,TRUE)) ``` <a href="https://hackmd.io/_uploads/Bk8t_BeEq.png"><span class="img100">![](https://hackmd.io/_uploads/Bk8t_BeEq.png) </span></a> ## <span class="h2">14. VBA 【逐欄】合併儲存格</span> <span class="ex">🔶啟動【開發人員】巨集工具</span> <br> 【開發人員】工具在軟體安裝時,並未啟動必須要另行啟動,其指令為【檔案】>【選項】,如下圖勾選: <a href="https://hackmd.io/_uploads/H1FNvy7Zi.png"><span class="img100">![](https://hackmd.io/_uploads/H1FNvy7Zi.png) </span></a> <span class="ex">🔶 範例結果</span> <span class="img60">![](https://hackmd.io/_uploads/B1wtZRIlj.png)</span> <span class="ex">🔶 VBA語法</span> <span class="red">利用【F8】進行逐一步驟執行</span> ``` Sub MergeCell() Dim rng As Range Application.DisplayAlerts = False '解除Excel警訊訊息 Set rng = Selection '設定想要合併儲存格的範圍 k = rng.Count '計數想要合併儲存格的個數 For i = k To 2 Step -1 If rng(i) = rng(i - 1) Then '從後向前確認,當後方儲存格與上一個儲存格相同時 Range(rng(i - 1), rng(i)).Merge '則合併儲存格 End If Next Application.DisplayAlerts = True '恢復Excel警訊訊息 End Sub ``` ## <span class="h2">15. VBA 取消合併儲存格並填值</span> <span class="ex">🔶 範例結果</span> <span class="img60">![](https://hackmd.io/_uploads/HJmZ5RIei.png)</span> <span class="ex">🔶 VBA語法</span> <span class="red">利用【F8】進行逐一步驟執行</span> ``` Sub UnMerge() Dim rng As Range Selection.UnMerge '選取範圍進行取消合併儲存格 Selection.Borders.LineStyle = xlContinuous '繪製框線 For Each rng In Selection '針對上一步驟選取範圍進行內容循環提取 If rng = "" Then '判斷是否為空值,若是 rng.Value = rng.Offset(-1, 0) '上一儲存格值填入 End If Next End Sub ``` <br><br><br><br><br> # PowerQuery(PQ) # 一、 PQ界面及基本功能介紹 ## <span class="h2">第一階段:基本資料整理</span> <span class="page"><span>P.5</span></span> ### 1、 資料整理 <span class="red">Note:何謂資料行/列</span> S1:表格化,命名為『業績情形_原』>並載入至PowerQuery(PQ)中  (1)【常用】>【格式化為表格】> 取消【我的表格有標題】,其目的於課程後續了解其PQ功能,否則無需取消勾選。 ![](https://i.imgur.com/NCSbcXx.jpg)  (2)【資料】>【從表格/範圍】載入至PQ中 ![](https://i.imgur.com/N86W9lE.png) S2:【常用】>【使用第一個資料列作為標頭】>移除合計列【移除資料列】 ![](https://i.imgur.com/2QKPlYO.png) S3:選取『職務』及『考績』資料行,填空【轉換】>【填滿】 ![](https://i.imgur.com/yC0rgue.png) ### 2、欄位拆分 S4:地址拆分: ![](https://i.imgur.com/yF3t0OB.png) 【新增資料行】>【複製資料行】>【常用】>【分割資料行】 Splitter.SplitTextByDelimiter說明:[連結1:微軟官網](https://docs.microsoft.com/zh-tw/powerquery-m/splitter-functions)、[連結2:參考網站](https://kknews.cc/zh-tw/code/b5ljor9.html)、[連結3:參考網站](https://pqfans.com/1529.html) ``` = Table.SplitColumn(已重覆資料行, "全地址 - 複製", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"居住縣市", "居住分區", "居住地址"}) 指令說明: Splitter.SplitTextByDelimiter( 1️⃣ , 2️⃣ ) 用途:分隔器函式,這個函式會根據分隔符號來分割文字。 1️⃣分割依據的關鍵詞 2️⃣需對文本類型裡"csv"的處理 ``` ![](https://i.imgur.com/abDupmU.jpg) S5:右側,查詢設定中:刪除【已變更類型】 <span style="color:#b71c1c; ">※非必要性步驟:其目的課程了解PQ界面。</span>  (1)因課程範例格式不複雜,故刪除全部【已變更類型】 ,也不會影響步驟  (2)【轉換】>【偵測資料類型】  (3)起聘日期調整格式(說明欄位格式如何確認) <hr> ### 3、 新增部門 <span class="page"><span>P.6</span></span> S6:新增部門: <span style="display:block; text-align: center">![](https://i.imgur.com/iEHCSx3.png)</span> 方法1: 部門1:【新增資料行】>【來自範例的資料行】>利用輸入方法找輸入特性 ![](https://i.imgur.com/rQ7Sg9o.png) 方法2: 部門:【新增資料行】>【條件資料行】 ![](https://i.imgur.com/YJyop66.png) ``` = Table.AddColumn(col部門1, "部門", each if Text.Contains([職務], "業務") then "業務部" else "行政部" ) ``` S7:步驟更名:目的為未來查看時快速查看【col_部門】 ## <span class="h2">第二階段:計算</span> <span class="page"><span>P.6</span></span> <span class="red">【業績成效呈現原則】</span> <a href="https://hackmd.io/_uploads/HykTbBDLt.png"><span class="img100">![](https://hackmd.io/_uploads/HykTbBDLt.png)</span></a> ### 1、 業績目標_低標 ``` Excel計算 業績目標_低標 = Round ( 業績目標 * 0.9 , 0 ) ``` #### <span class="h4" style="text-decoration: underline;">方法1:利用界面提供計算</span> 業績目標_低標1:【新增資料行】>【標準】>【乘】0.9>【轉換】>【進位】>【捨入】0 <a href="https://hackmd.io/_uploads/BJmWZSP8Y.png"><span class="img100">![](https://hackmd.io/_uploads/BJmWZSP8Y.png)</span></a> #### <span class="h4" style="text-decoration: underline;">方法2:自訂公式</span> 業績目標_低標:【新增資料行】>【自訂資料行】> <span class="red"> =Number.Round( [業績目標]*0.9,0)</span> ``` = Table.AddColumn(col_業績目標_低標1, "業績目標_低標", each Number.Round([業績目標]*0.9,0)) ``` <a href="https://hackmd.io/_uploads/SJaONsHp5.png"><span class="img50">![](https://hackmd.io/_uploads/SJaONsHp5.png)</span></a> ### 2、 業績總和 <span class="page"><span>P.7</span></span> #### <span class="h4" style="text-decoration: underline;">方法1:利用界面提供計算</span> 業績總和:選取『Q1業績』 、『Q2業績』、『Q3業績』、『Q4業績』>【新增資料行】>【標準】>【加】 ``` = Table.AddColumn(已新增自訂, "業績總和", each List.Sum({[Q1業績], [Q2業績], [Q3業績], [Q4業績]}), Int64.Type) ``` #### <span class="h4" style="text-decoration: underline;">方法2:自訂公式</span> 業績總和1:業績目標_低標:【新增資料行】>【自訂資料行】> ``` = Table.AddColumn(已插入加總, "業績總和1", each [Q1業績]+[Q2業績]+[Q3業績]+[Q4業績]) ``` <a href="https://hackmd.io/_uploads/r1LIIsS6q.png"><span class="img50">![](https://hackmd.io/_uploads/r1LIIsS6q.png)</span></a> ※ 注意事項: <a href="https://hackmd.io/_uploads/SkbymBwUK.png"><span class="img100">![](https://hackmd.io/_uploads/SkbymBwUK.png)</span></a> <span class="urll">[📌List.Sum..等,語法參考](https://docs.microsoft.com/zh-tw/powerquery-m/list-functions#ordering) </span> <!-- :::danger <span style="color:#FFF; background:#C00000; text-align:center;display:block; line-height:2em">**123456新增講義缺漏部分**</span> ※ 討論 0 與 Null 差異 【連結】、【連結】【+100】產生問題再解決 ※ try otherwise ※ 了解加總函數 ::: --> ### 3、 達成率 <span style="color:#b71c1c; display:block;">【計算目的】:討論分母為0的問題</span> <span class="page"><span>P.7</span></span> <a href="https://hackmd.io/_uploads/B1ryaoHpc.png"><span class="img100">![](https://hackmd.io/_uploads/B1ryaoHpc.png)</span></a> <span class="red">變更為百分比格式</span> ``` = Table.AddColumn(已插入加總, "達成率", each if [業績目標]<>0 then [業績總和]/[業績目標] else 0) ``` <!-- ::: warning <span style="color:#FFF; background:#C00000; text-align:center;display:block; line-height:2em">**123456加入IF 語法**</span> ::: --> ### 4、 業績成效 <span class="page"><span>P.8</span></span> <span style="color:#b71c1c; display:block;">【計算目的】練習多條件語法</span> <span class="red">【加入業績成效呈現原則】</span> <a href="https://hackmd.io/_uploads/HykTbBDLt.png"><span class="img100">![](https://hackmd.io/_uploads/HykTbBDLt.png)</span></a> ``` = Table.AddColumn(已變更類型3, "業績成效", each if [達成率] >= 1.2 then "高標" else if [達成率] >= 1 then "達成" else if [業績總和] >= [業績目標_低標] then "低標" else "未達成") ``` ## <span class="h2">第二階段:合併 / 附加查詢</span> <span class="page"><span>P.8</span></span> 何謂【合併/附加】查詢 <a href="https://hackmd.io/_uploads/r18NGY_pq.png"><span class="img100">![](https://hackmd.io/_uploads/r18NGY_pq.png)</span></a> S1:<span class="red">【業績情形_原】新增索引資料行:【新增資料行】>【索引資料行】</span>   <span class="red">目的:方便日後查看</span> S2:載入『地區』、『行政部標準表』、『業務部標準表』表格 S3:地區連結: <a href="https://hackmd.io/_uploads/H1vZmBwUF.png"><span class="img100">![](https://hackmd.io/_uploads/H1vZmBwUF.png)</span></a> (1) 【常用】>【合併查詢】>【合併查詢】 <a href="https://hackmd.io/_uploads/![](https://hackmd.io/_uploads/B1lrXSv8F.png).png"><span class="img100">![](https://hackmd.io/_uploads/B1lrXSv8F.png)</span></a> (2) 展開【地區】欄位 <span class="red">※ 但因有的分區有二筆以上,導致新增重覆列</span> <a href="https://hackmd.io/_uploads/![](https://hackmd.io/_uploads/B1S8QrvLY.png).png"><span class="img100">![](https://hackmd.io/_uploads/B1S8QrvLY.png)</span></a> (3) 利用【索引】欄,移除重覆列: 【常用】>【移除資料列】>【移除重複項目】>進行排序 <br> S4:左側查詢區,將【業績情形_原】利用<span class="red">【參考】</span>新增為『業績情形_明細』<span class="red">※ 說明其差異性,例如:刪除【索引】欄、調整欄位順序…</span><a href="https://hackmd.io/_uploads/Bk4YPBPIt.png"><span class="img40">![](https://hackmd.io/_uploads/Bk4YPBPIt.png)</span></a> S5:移除未來不必要的欄位 "工作地點", "起聘日期", "全地址", "部門1", "居住縣市", "居住分區", "居住地址", "業績目標_低標1", "業績總和1", "業績目標_低標1" <a href="https://hackmd.io/_uploads/HkWWcrwUY.png"><span class="img100">![](https://hackmd.io/_uploads/HkWWcrwUY.png)</span></a> ``` = Table.RemoveColumns(來源,{"工作地點", "起聘日期", "全地址", "部門1", "居住縣市", "居住分區", "居住地址", "業績目標_低標1"}) ``` <br><br> S6:業績標準處理: <span class="page"><span>P.10</span></span> (1) <span class="red">利用【附加查詢】為新查詢</span>,合併【行政部/業務部標準表】,命名為『部門業績標準表』 <span class="red">※ 說明:基本原則欄位名稱必須相同</span><a href="https://hackmd.io/_uploads/r1y07rv8Y.png"><span class="img80">![](https://hackmd.io/_uploads/r1y07rv8Y.png)</span></a> (2) 同S3步驟,『業績情形_明細』及『部門業績標準表』利用【合併查詢】合併兩表,加入『乘數比例』 <span class="red">※ 說明:兩欄以上比對欄位</span> <a href="https://hackmd.io/_uploads/B1LyNSPLt.png"><span class="img60">![](https://hackmd.io/_uploads/B1LyNSPLt.png)</span></a> (3) 展開欄位,取得『乘數比例』欄位<a href="https://hackmd.io/_uploads/By4BgB_LY.png"><span class="img100">![](https://hackmd.io/_uploads/By4BgB_LY.png)</span></a> ## <span class="h2">第三階段:分組依據</span> <span class="page"><span>P.10</span></span> 【工作目的】合併同類項目:<span class="red">將同一類型的內容放在同一個儲存格中</span> 【顯示結果】 <a href="https://hackmd.io/_uploads/SysQBHdIt.png"><span class="img100">![](https://hackmd.io/_uploads/SysQBHdIt.png)</span></a> S1:將【業績情形_明細】<span class="red">利用【參考】新增</span>為【業績情形_分組依據】 S2:留下{ "員工姓名", "職務", "業績目標", "業績成效", "部門", "業績總和" },移除不必要的欄位 <a href="https://hackmd.io/_uploads/ryt4NrwUY.png"><span class="img100">![](https://hackmd.io/_uploads/ryt4NrwUY.png)</span></a> ``` = Table.SelectColumns(來源,{"部門","職務", "業績目標", "業績總和","員工姓名","業績成效"}) ``` S3:【常用】>【分組依據】 依下圖新增【人數】、【總業績目標】、【總業績總和】、【人員列表】欄位 <a href="https://hackmd.io/_uploads/HyYINSDIF.png"><span class="img80">![](https://hackmd.io/_uploads/HyYINSDIF.png)</span></a> 【結果】 <a href="https://hackmd.io/_uploads/B1GdNBDUY.png"><span class="img100">![](https://hackmd.io/_uploads/B1GdNBDUY.png)</span></a> ``` = Table.Group(已移除其他資料行, {"部門", "業績成效"}, {{"人數", each Table.RowCount(_), Int64.Type}, {"總業績目標", each List.Sum([業績目標]), type nullable number}, {"總業績總和", each List.Sum([業績總和]), type number}, {"人員列表", each List.Sum([員工姓名]), type nullable text}}) ``` S4:修改語法 ``` = Table.Group(已移除其他資料行, {"部門", "業績成效"}, {{"人數", each Table.RowCount(_), Int64.Type}, {"總業績目標", each List.Sum([業績目標]), type nullable number}, {"總業績總和", each List.Sum([業績總和]), type number}, {"人員列表", each Text.Combine([員工姓名], "/")}}) ``` <a href="https://hackmd.io/_uploads/HkpdxLDLF.png"><span class="img100">![](https://hackmd.io/_uploads/HkpdxLDLF.png)</span></a> <span class="urll">[📌Text.Combine語法參考](https://docs.microsoft.com/zh-tw/powerquery-m/text-combine) </span> 📌課後練習:試著員工姓名+職務 📌例如: <a href="https://hackmd.io/_uploads/SJqjOsdUt.png"><span class="img100">![](https://hackmd.io/_uploads/SJqjOsdUt.png)</span></a> ## <span class="h2">第四階段:查詢表整理(補充)</span> <span class="page"><span>補充</span></span> 藉由【新群組】方式,將查詢表進行分類,以利日後查看。 S1. 在左側『查詢區』,按右鍵 > 新增群組 > 輸入資料夾名稱 S2. 將相同查詢表推入其內即可 <a href="https://hackmd.io/_uploads/H1n2vr_UF.png"><span class="img30">![](https://hackmd.io/_uploads/H1n2vr_UF.png)</span></a> ## <span class="h2">第五階段:樞紐 / 取消樞紐資料行</span> ### 練習1:了解各【分區】及【績效成效】的【業績總和】 <span class="page"><span>P.11</span></span> <span class="red">📌【工作目標】</span><a href="https://hackmd.io/_uploads/SJofSLvUt.png"><span class="img100">![](https://hackmd.io/_uploads/SJofSLvUt.png)</span></a> S1:【分區】及【績效成效】的【業績總和】樞紐情形 S2: 將【業績情形_明細】利用【參考】新增為【業績情形_樞紐1】 S3:留下{ "分區", "業績總和", "業績成效" },<span class="red">移除不必要的欄位</span> ``` = Table.SelectColumns(來源,{"分區", "業績總和", "業績成效"}) ``` <a href="https://hackmd.io/_uploads/SypXXLvUF.png"><span class="img80">![](https://hackmd.io/_uploads/SypXXLvUF.png)</span></a> S4: <span class="red">選取【業績成效】欄 ( 選取欲排列為『欄/行』者 )</span> ,【轉換】>【樞紐資料行】 <a href="https://hackmd.io/_uploads/r1ROXIv8t.png"><span class="img90">![](https://hackmd.io/_uploads/r1ROXIv8t.png)</span></a>【顯示結果】<a href="https://hackmd.io/_uploads/BywZN8DUY.png"><span class="img100">![](https://hackmd.io/_uploads/BywZN8DUY.png)</span></a> ### 練習2:顯示各【分區】及【績效成效】的【員工姓名】情形 <span class="page"><span>P.12</span></span> 【顯示結果】 <a href="https://hackmd.io/_uploads/SyJGeLOUt.png"><span class="img100">![](https://hackmd.io/_uploads/SyJGeLOUt.png)</span></a> S1. 將【業績情形_明細】利用【參考】新增為【業績情形_樞紐2】 <br><br> :::info S2-1. 留下 { "地區", "員工姓名", "業績成效" },移除不必要的欄位 <a href="https://hackmd.io/_uploads/ryqT9IvLK.png"><span class="img70">![](https://hackmd.io/_uploads/ryqT9IvLK.png)</span></a>S2-2. 選取【業績成效】欄 ( 選取欲排列為『欄/行』者 ) ,【轉換】>【樞紐資料行】 <a href="https://hackmd.io/_uploads/r1WE7UOUK.png"><span class="img40" >![](https://hackmd.io/_uploads/r1WE7UOUK.png)</span></a><span class="textc">🔻筆數多無法顯示於儲存格內</span><a href="https://hackmd.io/_uploads/SJThNIuLt.png"><span class="img60">![](https://hackmd.io/_uploads/SJThNIuLt.png)</span></a> (4) 查詢表更名為【業績情形_樞紐2_錯誤】 ::: S2. 將【業績情形_明細】利用【參考】新增為【業績情形_樞紐2】 S3. 留下 { "地區", "員工姓名", "業績成效","達成率" },移除不必要的欄位 ``` = Table.SelectColumns(來源,{"員工姓名", "分區", "業績成效", "達成率"}) ``` <a href="https://hackmd.io/_uploads/H1G3rLvLY.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/H1G3rLvLY.png)</span></a>S4. 【新增資料行】>【自訂資料行】 <a href="https://hackmd.io/_uploads/ryFP_8OUt.png"><span class="img100">![](https://hackmd.io/_uploads/ryFP_8OUt.png)</span></a> <span class="urll">[📌 Text.From 語法參考](https://docs.microsoft.com/zh-tw/powerquery-m/text-functions#text-comparisons) </span> <span class="red">S5. 先前說明進行樞紐錯誤情形時,因多筆同資料無法全部顯示,故必須先利用【分組依據】合併之</span> 【目的】 <a href="https://hackmd.io/_uploads/SJpysU_IF.png"><span class="img80">![](https://hackmd.io/_uploads/SJpysU_IF.png)</span></a> 【步驟】 <a href="https://hackmd.io/_uploads/ryEJ1vPLY.png"><span class="img100">![](https://hackmd.io/_uploads/ryEJ1vPLY.png)</span></a> ``` = Table.Group(Col_員工達成率, {"分區", "業績成效"}, {{"計數", each List.Sum([員工達成率]), type text}}) ``` (4) 修改語法 ``` = Table.Group(Col_員工達成率, {"分區", "業績成效"}, {{"計數", each Text.Combine( [員工達成率]," / ")}}) ``` <a href="https://hackmd.io/_uploads/r1D0kwDLt.png"><span class="img100">![](https://hackmd.io/_uploads/r1D0kwDLt.png)</span></a> (3) <span class="red">選取【業績成效】欄 ( 選取欲排列為『欄/行』者 ) </span>,【轉換】>【樞紐資料行】 <a href="https://hackmd.io/_uploads/Sk0piI_IY.png"><span class="img100">![](https://hackmd.io/_uploads/Sk0piI_IY.png)</span></a> <span class="blue">📌 例如</span> <a href="https://hackmd.io/_uploads/S150ooOLK.png"><span class="img100">![](https://hackmd.io/_uploads/S150ooOLK.png)</span></a> <br><br><br><br><br><br><br><br> # 二、PQ 範例 ## <span class="h2">1. 找出每個人的最高業績及季別</span> <span class="page"><span>P.14</span></span> S1:將【業績情形_明細】利用【參考】新增為【ex最高業績及季別】 S2:留下{ "員工姓名", "Q1業績", "Q2業績", "Q3業績", "Q4業績" },移除不必要的欄位 <a href="https://hackmd.io/_uploads/HJgB6UdIF.png"><span class="img100">![](https://hackmd.io/_uploads/HJgB6UdIF.png)</span></a>S3:選取【"Q1業績", "Q2業績", "Q3業績", "Q4業績"】欄位,【取消資料行樞紐】,並利用【取代值】移除『業績』字樣 <a href="https://hackmd.io/_uploads/By1nC8OIt.png"><span class="img100">![](https://hackmd.io/_uploads/By1nC8OIt.png)</span></a> S4:針對【員工姓名】設定為遞增排序 / 【業績值】設定為遞減排序 <a href="https://hackmd.io/_uploads/ByOpJDdUK.png"><span class="img100">![](https://hackmd.io/_uploads/ByOpJDdUK.png)</span></a> S5:選取【員工姓名】,【常用】>【移除資料列】>【重覆項目】刪除重覆項目 <span class="red">目的:利用移除重覆項目,保留第一筆記錄的工作特性</span> <a href="https://hackmd.io/_uploads/HkYFbvd8t.png"><span class="img100">![](https://hackmd.io/_uploads/HkYFbvd8t.png)</span></a> S6:利用【合併查詢】,加入人員部門、職務,並還原其名單順序 ``` Keyword:"索引","部門","職務", ``` <a href="https://hackmd.io/_uploads/Hk1xVDdLt.png"><span class="img100">![](https://hackmd.io/_uploads/Hk1xVDdLt.png)</span></a> ## <span class="h2">2. 中文排名【總排名】</span> <span class="page"><span>P.15</span></span> <!-- ### 1、 中文排名【總排名】 --> 何謂中式排名? <a href="https://hackmd.io/_uploads/HJqlRuO6q.png"><span class="img30">![](https://hackmd.io/_uploads/HJqlRuO6q.png)</span></a> S1:在左側『查詢區』,按右鍵 > 新增群組 > 【ex中式排名】 S2:將【業績總和】欄位移除重覆後,新增排名 (1) 將【業績情形_明細】利用【參考】新增為【ex中式排名S1】 (2) 選取【業績總和】> 移除其他欄位 > 進行遞減排序 > 移除重覆值 > 新增【排名】索引欄 <a href="https://hackmd.io/_uploads/S1UHdP_UK.png"><span class="img100">![](https://hackmd.io/_uploads/S1UHdP_UK.png)</span></a> S3:利用合併查詢方式,將【業績情形_明細】,新增排名 (1) 【常用】>【合併查詢】<【將查詢合併為追加查詢】 <a href="https://hackmd.io/_uploads/Hy5ShDu8Y.png"><span class="img70">![](https://hackmd.io/_uploads/Hy5ShDu8Y.png)</span></a> (2) 展開【排名】欄位 <a href="https://hackmd.io/_uploads/r1IN6Du8K.png"><span class="img100">![](https://hackmd.io/_uploads/r1IN6Du8K.png)</span></a> ## <span class="h2">3. 利用合併查詢進行兩表比對</span> <span class="page"><span>P.16</span></span> 利用合併查詢進行兩表比對,比Vlookup查詢更加簡單及靈活 ### A. 說明:六種查詢理論 <a href="https://hackmd.io/_uploads/SJsT6d_IK.png"><span class="img100">![](https://hackmd.io/_uploads/SJsT6d_IK.png)</span></a> ### B. 資料比對:找出新/舊/離職員工 #### <span class="h4">(1) 工作目標</span> <a href="https://hackmd.io/_uploads/ryQJjuu8F.png"><span class="img70">![](https://hackmd.io/_uploads/ryQJjuu8F.png)</span></a> #### <span class="h4">(2) 說明</span> <a href="https://hackmd.io/_uploads/SJOgkKuUF.png"><span class="img100">![](https://hackmd.io/_uploads/SJOgkKuUF.png)</span></a> #### <span class="h4">(3) 步驟</span> S1:載入『表7月』、『表8月』表格 S2:【常用】>【合併查詢】>【將查詢合併為新查詢】,並展開其合併欄位 <a href="https://hackmd.io/_uploads/HkCS2O_UF.png"><span class="img80">![](https://hackmd.io/_uploads/HkCS2O_UF.png)</span></a><a href="https://hackmd.io/_uploads/Syr_3_uUK.png"><span class="img80">![](https://hackmd.io/_uploads/Syr_3_uUK.png)</span></a> S3:【新增資料行】>【條件資料行】,進行新舊員工類型判斷 <a href="https://hackmd.io/_uploads/rkQ2kt_Ut.png"><span class="img80">![](https://hackmd.io/_uploads/rkQ2kt_Ut.png)</span></a> S4:最後整理 <a href="https://hackmd.io/_uploads/Byx3lt_IK.png"><span class="img100">![](https://hackmd.io/_uploads/Byx3lt_IK.png)</span></a> ## <span class="h2">4. 資料分割 / 合併</span> <span class="page"><span>P.18</span></span> ### A. 資料分割 S1:【常用】>【分割資料行】 <a href="https://hackmd.io/_uploads/rJGiMYOIK.png"><span class="img100">![](https://hackmd.io/_uploads/rJGiMYOIK.png)</span></a> S12:【常用】>【分割資料行】 <a href="https://hackmd.io/_uploads/ByC4GtO8F.png"><span class="img80">![](https://hackmd.io/_uploads/ByC4GtO8F.png)</span></a> S3:選取【訂單資訊.1】欄位,【轉換】>【樞紐資料行】 <a href="https://hackmd.io/_uploads/HyvTzKd8F.png"><span class="img100">![](https://hackmd.io/_uploads/HyvTzKd8F.png)</span></a> ### B. 資料合併 <span class="page"><span>P.19</span></span> S1:將(1)利用左側窗格點選【參考】新增查詢後,選取【姓名、電話、產品】,再【轉換】>【取消資料行樞紐】>【合併資料行】合併結果,如下圖<a href="https://hackmd.io/_uploads/Hy7b7tOUF.png"><span class="img50">![](https://hackmd.io/_uploads/Hy7b7tOUF.png)</span></a> S2:選取【訂單編號】欄位,【轉換】>【分組依據】 <a href="https://hackmd.io/_uploads/HJQBXFOIK.png"><span class="img80">![](https://hackmd.io/_uploads/HJQBXFOIK.png)</span></a> S3:修改語法 ``` = Table.Group(已合併資料行, {"訂單編號"}, {{"項目", each Text.Combine([項目],"#(lf)"), type text}}) ``` <a href="https://hackmd.io/_uploads/ry3WVtuLY.png"><span class="img100">![](https://hackmd.io/_uploads/ry3WVtuLY.png)</span></a> ![](https://hackmd.io/_uploads/ry3WVtuLY.png) ## <span class="h2">5. 一維 / 二維 資料表轉換</span> <span class="page"><span>P.20</span></span> ### A. 【二維】轉為【一維】 <span class="blue">選取各『縣市』欄位</span> > 【轉換】>【取消資料行樞紐】 <a href="https://hackmd.io/_uploads/BkHS_Y_LK.png"><span class="img100">![](https://hackmd.io/_uploads/BkHS_Y_LK.png)</span></a> ### B. 【一維】轉為【二維】 選取各『地區』欄位 > 【轉換】>【資料行樞紐】 <a href="https://hackmd.io/_uploads/BJUItFOIY.png"><span class="img100">![](https://hackmd.io/_uploads/BJUItFOIY.png)</span></a> <span class="blue">📌 例如:</span> <a href="https://hackmd.io/_uploads/H19K3odLt.png"><span class="img100">![](https://hackmd.io/_uploads/H19K3odLt.png)</span></a> ## <span class="h2">6. { List } 應用</span> <span class="page"><span>P.20</span></span> ### A. 廠商及訂單編號列表 #### <span class="h4">(1) 說明:【笛卡爾積 , 笛卡兒積】應用</span> 笛卡爾乘積是指在數學中,兩個集合X和Y的笛卡爾積(Cartesian product),又稱直積,表示為X×Y,第一個對象是X的成員而第二個對象是Y的所有可能有序對的其中一個成員。簡單來說就是2組資料互相交集.<a href="https://hackmd.io/_uploads/rkfJaFdUt.png"><span class="img70">![](https://hackmd.io/_uploads/rkfJaFdUt.png)</span></a> #### <span class="h4">(2) 步驟</span> S1:利用分割資料切割新增【訂單編號_起】、【訂單編號_迄】欄位 <a href="https://hackmd.io/_uploads/HyKX2FdIK.png"><span class="img100">![](https://hackmd.io/_uploads/HyKX2FdIK.png)</span></a> S2:【新增資料行】>【自訂資料行】 ``` 資料行名稱list = {[#"訂單編號 -起"]..[#"訂單編號 - 迄"]} ``` <a href="https://hackmd.io/_uploads/BJZb0FuLt.png"><span class="img100">![](https://hackmd.io/_uploads/BJZb0FuLt.png)</span></a> ### B. 文本 移除 / 提取 <span class="page"><span>P.20</span></span> #### <span class="h4">(1) 說明:文本 移除 / 提取函式</span> <span class="red">📌 Text.Select ( ) 和Text.Remove ( )</span> <br> |提取項目| M函數| |-|-| |各種特殊符號、0-9數值、<br>所有大小寫英文字母|Text.Select ( [文本資料行] , { ″ ″ .. ″~″})| |數值0-9|Text.Select ( [文本資料行] , { 0 .. 9})| |文字0-9|Text.Select ( [文本資料行] , { ″0″ .. ″9″})| |英文大寫|Text.Select ( [文本資料行] , { ″A″ .. ″Z″})| |英文小寫|Text.Select ( [文本資料行] , { ″a″ .. ″z″})| |英文大/小寫|Text.Select ( [文本資料行] , { ″A″ .. ″z″})| |中文|Text.Select ( [文本資料行] , { ″一″ .. ″龜″})| #### <span class="h4">(2) 練習:中英文拆分</span> <span class="red">【目的】</span> <a href="https://hackmd.io/_uploads/r1Rce5dLY.png"><span class="img60">![](https://hackmd.io/_uploads/r1Rce5dLY.png)</span></a> <span class="red">【步驟】</span> S1:抓取中文文字語法,新增【自訂資料行】>公式為【 = Text.Select([產品],{″一″..″龜″})】 <br> ``` = Text.Select([商品],{"一".."龜"}) ``` <a href="https://hackmd.io/_uploads/XBTKEMG.png"><span class="img100">![](https://hackmd.io/_uploads/XBTKEMG.png)</span></a> S2:抓取英文,新增【自訂資料行】><br>公式為【 = Text.Trim ( Text.Select ( [產品] , {″ a ″…″ z ″,″ A ″…″ Z ″,″ ″,″ . ″,″ ‘ ″}))】<br>移除前後多餘空格,因範例中英文有【’】及【.】 <br> ``` = Text.Trim ( Text.Select ( [商品] , {"a".."z","A".."Z"," ",".","'"})) ``` <a href="https://hackmd.io/_uploads/HyHIZqdIY.png"><span class="img100">![](https://hackmd.io/_uploads/HyHIZqdIY.png)</span></a> S3:也可以移除中文字,來取得英文 <br> ``` = Text.Remove([商品],{"一".."龜"}) ``` ## <span class="h2">7. 多檔案匯入</span> <span class="page"><span>P.22</span></span> 透過Power Query將多個資料來源的資料合併、追加到一起,任意組合資料、將資料進行分組、透視等整理操作方法快速整併成同一個,以利數據分析。 <a href="https://hackmd.io/_uploads/BJDRN5uIY.png"><span class="img80">![](https://hackmd.io/_uploads/BJDRN5uIY.png)</span></a> S1:開啟Excel新檔 > 載入資料 > 活頁簿 【2016版Excle】 <a href="https://hackmd.io/_uploads/H1zthc_UY.png"><span class="img60">![](https://hackmd.io/_uploads/H1zthc_UY.png)</span></a> 【365版Excle】 <a href="https://hackmd.io/_uploads/BkRKrq_LK.png"><span class="img50">![](https://hackmd.io/_uploads/BkRKrq_LK.png)</span></a> S2:顯示載入資料情形 > 點選【轉換資料】 <a href="https://hackmd.io/_uploads/S1NH89uIK.png"><span class="img100">![](https://hackmd.io/_uploads/S1NH89uIK.png)</span></a> S3:保留【Content】欄位,其他欄位移除,其內容如下: <a href="https://hackmd.io/_uploads/S1jAwq_UY.png"><span class="img100">![](https://hackmd.io/_uploads/S1jAwq_UY.png)</span></a> S4:【新增資料行】>【自訂資料行】 <a href="https://hackmd.io/_uploads/BkGYi9uLK.png"><span class="img60 textc">![](https://hackmd.io/_uploads/BkGYi9uLK.png)</span></a> :::danger (1) 載入CSV檔案至PQ: &#12288;&#12288; Csv.Document ( ) (2) 本身Excel檔案載入至PQ: &#12288;&#12288; Excel.CurrentWorkbook ( ) { [ Name="表格名稱" ] } [Content] (3) 由其他Excel檔案載入至PQ: &#12288;&#12288; Excel.Workbook ( [Content] , true ) ::: ``` = Excel.Workbook([Content],true) ``` <a href="https://hackmd.io/_uploads/B1au59_Ut.png"><span class="img100">![](https://hackmd.io/_uploads/B1au59_Ut.png)</span></a> S6:依序展開其欄位 ## <span class="h2">8. 巧用Power Query輕鬆管理文件</span> <span class="page"><span>P.22</span></span> ### A. 例如 <a href="https://hackmd.io/_uploads/Bk5QKoOLK.png"><span class="img80">![](https://hackmd.io/_uploads/Bk5QKoOLK.png)</span></a> ### B. 步驟 S1:與上個個單元作法相同載入檔案,開新檔案>【資料】>【取得資料】>【從檔案】>【從資料夾】>選取想要載入的資料夾 >【轉換資料】 <br> S2:依步驟完成,建立公式進行串接組合,並刪除不必要欄位: <a href="https://hackmd.io/_uploads/SkhgC5dLK.png"><span class="img100">![](https://hackmd.io/_uploads/SkhgC5dLK.png)</span></a> S3:完成後,回填至Excel,建立連結公式: <a href="https://hackmd.io/_uploads/HkDIA9_IY.png"><span class="img40">![](https://hackmd.io/_uploads/HkDIA9_IY.png)</span></a> ## <span class="h2">9. Google表單結果連結至Excel方法</span> S1:開啟Google表單回報檔案,點選【檔案】>【共用】>【發佈至網路】 <a href="https://hackmd.io/_uploads/rkQgmLO69.png"><span class="img60">![](https://hackmd.io/_uploads/rkQgmLO69.png)</span></a> S2:選擇連結的檔案類型 > 複製其網址 <a href="https://hackmd.io/_uploads/B1KqmL_a5.png"><span class="img80">![](https://hackmd.io/_uploads/B1KqmL_a5.png)</span></a> S3:開啟Excel新檔案,【資料】>【從Web】,將S2網址貼入,依步驟載入即可 ``` https://docs.google.com/spreadsheets/d/e/2PACX-1vTWau93NwnhTXACiMUDYp-Y-G-_5ZYF_rluokCaxRKPQeDzWp1uBklWVQpqtOeOUbv6NH7-E_w628TR/pub?output=xlsx ``` <a href="https://hackmd.io/_uploads/HyqFNIdTc.png"><span class="img60">![](https://hackmd.io/_uploads/HyqFNIdTc.png)</span></a> # 三、PQ-M函數 ## <span class="h2">list.sum</span> <span class="urll">[📌List.Sum..等,語法參考](https://docs.microsoft.com/zh-tw/powerquery-m/list-functions#ordering) </span> 計算說明: |公式|結果| |-|-| |= 1 + 2 + 3 + 4 + null | null | |= List.Sum ( { 1 , 2 , 3 , 4 , null } )|10| 情境說明: PQ表中,若其值有【null】時,加總無法計算其值,可改用List.Sum ``` S1:建立查詢表 = #table({"欄1","欄2","欄3"},{{1,2,3},{2,null,8}}) S2:新增加總,表中有【null】時,發生異常 = Table.AddColumn(來源, "總和", each [欄1]+[欄2]+[欄3]) S3:改由List.Sum計算 = Table.AddColumn(已新增自訂, "List.Sum", each List.Sum({[欄1], [欄2], [欄3]})) ``` <a href="https://hackmd.io/_uploads/Skw9Zz6_q.png"><span class="img100">![](https://hackmd.io/_uploads/Skw9Zz6_q.png)</span></a> ## <span class="h2">分隔欄位</span> 分隔欄位:Splitter.SplitTextByDelimiter <!-- <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> --> <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> # Power Pivot(PP) <span class="page"><span>P.26</span></span> <span class="red" style="font-size:1.2em;">【範例說明】</span> <a href="https://hackmd.io/_uploads/ryp_TA-Lt.png"><span class="img100">![](https://hackmd.io/_uploads/ryp_TA-Lt.png)</span></a> ## <span class="h2">1. 啟動【Power Pivot】增益集</span> <span style="font-size:1.3em; font-weight:bold;">[※ 詳前面章節](https://hackmd.io/@zoego/工務局excel#D、指令位置) </span> ## <span class="h2">2. 數據載入至【Power Pivot】</span> <span class="page"><span>P.26</span></span> S1. 【主資料夾】>【從其他來源】> 點選【Excel檔案】 <a href="https://hackmd.io/_uploads/rkzdXa-8t.png"><span class="img100">![](https://hackmd.io/_uploads/rkzdXa-8t.png)</span></a> S2. 點選欲載入數據的Excel檔案 <a href="https://hackmd.io/_uploads/H1nRFAZ8F.png"><span class="img100">![](https://hackmd.io/_uploads/H1nRFAZ8F.png)</span></a> S3. 勾選欲載入數據的工作表來源 <a href="https://hackmd.io/_uploads/HkNdCCWUY.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/HkNdCCWUY.png)</span></a> <a href="https://hackmd.io/_uploads/SJ9ekyzLt.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/SJ9ekyzLt.png)</span></a> ## <span class="h2">3. 建立數據間的關聯圖</span> <span class="page"><span>P.28</span></span> <a href="https://hackmd.io/_uploads/BkZa7kMLF.png"><span class="img100">![](https://hackmd.io/_uploads/BkZa7kMLF.png)</span></a> ## <span class="h2">4. 建立計算公式及載入關聯欄位數據</span> ### A. 名詞介紹 <span class="page"><span>補充</span></span> <span style="color:#5E00BC; display:block;font-weight:bold;line-height:2em;font-size:1.1em">🔶 兩軟體之間名詞差異</span> <span style="color:#bf0303;">使用PBI計算必須抛棄Excel儲存格計算的思維模式,在PBI中的資料表是以【資料行】方式儲存。</span> |Excel|PP、PQ、PBI| |-|-| |工作表|資料表| |欄|資料行| ||量值:即以【資料表】或【資料行】進行計算| <span style="color:#5E00BC; display:block;font-weight:bold;line-height:2em;font-size:1.1em">🔶 建議</span> |新增資料行:| |-| |<span style="font-weight:bold;">缺點</span>:使用時浪費記憶體 <br><span style="font-weight:bold;">優點:</span>使用Excel公式習慣的人,傾向使用容易理解<br><span style="font-weight:bold;">使用時機:</span><br>&#12288;▷ 將列內容放入篩選器、交叉分析篩選器、行、列<br>&#12288;▷ 需要利用新增的資料行與其他表建立關係時<br>| |量值:| |<span style="font-weight:bold;">缺點:</span><br>&#12288;▷ 公式書寫較難以理解<br>&#12288;▷ 不可使用於交叉分析篩選器<br><span style="font-weight:bold;">優點:</span><br>&#12288;▷ 不浪費記憶體,只有被拖到【報告】中才會執行運算<br>&#12288;▷ 可以重覆使用的計算式<br><span style="font-weight:bold;">使用時機:</span><br>&#12288;▷ 需要重覆使用的計算式<br>&#12288;▷ 是否根據上下文動態運算| ### B. 工作表載入關聯欄位之值 <span class="page"><span>P.28</span></span> 點選【訂單明細】工作表:建立公式 |<span class="textc">欄位</span>|<span class="textc">公式</span>| |-|-| |單價|單價:=RELATED('商品明細'[銷售單價])| |出貨金額|出貨金額:=[出貨數量] * RELATED ( '商品明細'[銷售單價] )| <a href="https://hackmd.io/_uploads/SJD3I1fUF.png"><span class="img100" style="border:1px solid #000">![](https://hackmd.io/_uploads/SJD3I1fUF.png)</span></a> ``` 單價:=RELATED('商品明細'[銷售單價]) 出貨金額:=[出貨數量]*RELATED('商品明細'[銷售單價]) ``` ### C. 新增計算公式 <span class="page"><span>P.29</span></span> |<span class="textc">欄位</span>|<span class="textc">公式</span>| |-|-| |出貨總金額_SUM|出貨總金額_SUM:=SUM( '訂單明細'[出貨金額] )| |出貨總金額|出貨總金額:=SUMx('訂單明細',<br>'訂單明細'[出貨數量] * RELATED ('商品明細'[銷售單價])<br>)| |訂單明細列數|訂單明細列數:= COUNTROWS ( '訂單明細' )| |訂單筆數|訂單筆數:= DISTINCTCOUNT ( '訂單明細'[訂單編號] )| |總出貨量|總出貨量:=SUM ( '訂單明細'[出貨數量] )| |銷售獎金|銷售獎金:=ROUND ( SUMx ( '訂單明細' , '訂單明細'[出貨金額]&#42; 0.1 ) , 0 )| |銷售獎金_每筆round|銷售獎金_每筆round:=SUMx ( '訂單明細' , ROUND( '訂單明細'[出貨金額]&#42;0.1 , 0 ) )| <a href="https://hackmd.io/_uploads/SyjZgefLK.png"><span class="img100">![](https://hackmd.io/_uploads/SyjZgefLK.png)</span></a> ``` 出貨總金額_SUM:=SUM('訂單明細'[出貨金額]) 出貨總金額:=SUMX('訂單明細','訂單明細'[出貨數量]*RELATED('商品明細'[銷售單價])) 訂單明細列數:=COUNTROWS('訂單明細') 訂單筆數:=DISTINCTCOUNT('訂單明細'[訂單編號]) 總出貨量:=SUM('訂單明細'[出貨數量]) 銷售獎金:=ROUND(SUMX('訂單明細','訂單明細'[出貨金額]*0.1),0) 銷售獎金_每筆round:=SUMX('訂單明細',ROUND('訂單明細'[出貨金額]*0.1,0)) ``` ## <span class="h2">5. 建立樞紐分析表</span> <span class="page"><span>P.29</span></span> ### A. 指令 |<span class="textc">Excel原生環境</span>|<span class="textc">Power Pivot 工具</span>| |-|-| |指令:【插入】>【樞紐分析表】<a href="https://hackmd.io/_uploads/r18k9LGUF.png"><span class="img80">![](https://hackmd.io/_uploads/r18k9LGUF.png)</span></a>|<a href="https://hackmd.io/_uploads/SyJz5LM8Y.png"><span class="img60">![](https://hackmd.io/_uploads/SyJz5LM8Y.png)</span></a>| ### B. 樞紐設定原則 <span class="img40">![](https://hackmd.io/_uploads/S1DOR1UNF.png)</span> ### C. 選項 <span class="img60">![](https://hackmd.io/_uploads/rJicfx8Nt.png)</span> ### D. 欄位排序 ##### <span class="h4">(1) 手動</span> <span class="step">欄位直接拖曳</span> ##### <span class="h4">(2) 自動</span> <span class="step">指令:【檔案】>【選項】>【進階】之下>【編輯自訂清單】> 加入清單項目</span> <span class="img100">![](https://hackmd.io/_uploads/SkhtieMNY.png)</span> ### E. 群組類型 <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 文字</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 數值</span> <span class="step" style="line-height:2em"><i class="fa fa-hand-o-right"></i> 日期</span> #### <span class="h4">【練習說明】</span> <span class="page"><span>P.30</span></span> <a href="https://hackmd.io/_uploads/SkqLEE7LK.png"><span class="img100">![](https://hackmd.io/_uploads/SkqLEE7LK.png)</span></a> <a href="https://hackmd.io/_uploads/S1_CENQLF.png"><span class="img100">![](https://hackmd.io/_uploads/S1_CENQLF.png)</span></a> ## <span class="h2">6. 建立大綱階層</span> <span class="page"><span>P.31</span></span> S1:建立大綱階層,如欄位不在同一工作表則利用Related函數載入 <a href="https://hackmd.io/_uploads/ryypwMX8K.png"><span class="img90">![](https://hackmd.io/_uploads/ryypwMX8K.png)</span></a> ``` 商品類別:=RELATED('商品主類別'[商品類別]) ``` S2:啟動【圖表檢視】 <a href="https://hackmd.io/_uploads/B1NkYfQIF.png"><span class="img30">![](https://hackmd.io/_uploads/B1NkYfQIF.png)</span></a> S3:加入樞紐分析表 <a href="https://hackmd.io/_uploads/H1_h9MQ8Y.png"><span class="img100">![](https://hackmd.io/_uploads/H1_h9MQ8Y.png)</span></a> ## <span class="h2">7. 建立【日期表】</span> <span class="page"><span>P.32</span></span> <span class="red textc" style="font-size:1.3em">【顯示結果】</span><a href="https://hackmd.io/_uploads/BkzLK7X8t.png"><span class="img100">![](https://hackmd.io/_uploads/BkzLK7X8t.png)</span></a> S1:新增【日期表】 <a href="https://hackmd.io/_uploads/B1da5XmLK.png"><span class="img100">![](https://hackmd.io/_uploads/B1da5XmLK.png)</span></a> ``` 季:=INT(([月]+2)/3) ``` S2:日期表與訂單明細,建立關聯 <a href="https://hackmd.io/_uploads/HJxNiQ7Ut.png"><span class="img60">![](https://hackmd.io/_uploads/HJxNiQ7Ut.png)</span></a> ## <span class="h2">8.【群組】建立及說明【值的顯示方式】</span> <span class="page"><span>P.33</span></span> <a href="https://hackmd.io/_uploads/SkjGx4XLt.png"><span class="img100">![](https://hackmd.io/_uploads/SkjGx4XLt.png)</span></a> ## <span class="h2">9. 結合【交叉分析篩選器】</span> S1:點選【插入交叉分析篩選器】及【插入時間表】 <a href="https://hackmd.io/_uploads/H15RxEQUt.png"><span class="img90">![](https://hackmd.io/_uploads/H15RxEQUt.png)</span></a> S2:針對樞紐分析表進行命名 <a href="https://hackmd.io/_uploads/Sk2nWVQIF.png"><span class="img60">![](https://hackmd.io/_uploads/Sk2nWVQIF.png)</span></a> S3:以上兩步驟,點選【篩選連線】進行篩選器與樞紐分析表之結合確認 <a href="https://hackmd.io/_uploads/H1wCMEmIY.png"><span class="img100">![](https://hackmd.io/_uploads/H1wCMEmIY.png)</span></a> <!-- <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> --> <!-- ## <span class="h2">D、 filter</span> --> <!-- <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> -->