發表文章

目前顯示的是有「Power Query」標籤的文章

找出每個 project 的執行天數

圖片
  範例資料如下: Problem : 找出每個 project 實際執行多少天? 可以看到同一個 project 有好幾筆資料,每筆資料的天數有若干天數重疊,例如 project 3 有三筆資料 1/17~1/26 、 1/16~2/3 和 1/3~2/1,實際執行天數是 32 天。 檔案下載: 找出每個 project 的執行天數 1.用 Power Query 來做 2.用 DAX 來做 =COUNTROWS(DISTINCT(GENERATE(Table1,FILTER(CALENDARAUTO(),[Date]>=Table1[st date]&&[Date]<=Table1[End Date])))) 嗯! 這個例子, 可以計算藥物持有天數. 

在 Excel Power Query 和 PowerBI 使用動態路徑

圖片
  使用 Excel Power Query 或 Power BI 一段時間後,發現到一件很惱人的事情:  當初的資料來源是本機檔案,例如在某個目錄之下的 excel 檔、log 檔、csv 檔、txt 檔 ... 在搬動或重新命名整個資料夾、複制到隨身碟、或與他人共享查詢時,重新整理資料就會找不到資料來源!!   這是因為它們的來源數據是以「絕對路徑」的方式來連結,為了解決這個問題就必須手動修改來源路徑。 有沒有什麼方法可以"動態"取得路徑?? 1.在 Excel Power Query 使用動態路徑 利用函數 cell 取得目前檔案的路徑 :  一開啟檔案就會自動更新公式以取得目前檔案路徑,從而達到動態路徑的效果 第 1 步 – 以公式來檢索當前檔案路徑。當檔案目錄位置改變時,這個公式會自動更新 =LEFT(CELL("filename"),FIND("[",CELL("filename"))-2) 第 2 步 – 接下來就是怎麼把這一儲存格的內容導入給 Power Query 使用了 有二種方式, 有兩種方式。一種是網路上你可以查到的 轉換為表格 ,另一種是老司機才知道的 定義名稱 。 第一種方法,將其 轉換為表格 ,欄標題我命名為“ Path ”,表格名稱命名為“ DynamicPath ”。 第二種方法, 定義名稱, 為單一儲存格或某一範圍命名,方便引用。我這裡是把 B5 儲存格命名為“ DynamicPath2 ”。 第 3 步 – 接著不論是 轉換為表格 或使用 定義名稱 ,接下來的步驟都一樣。  從 資料→從表格/範圍→右鍵單擊第一行並選擇 向下切入 (Drill Down),這樣做會將路徑轉換為文本(變量) 第 4 步 – 打開進階編輯器,添加黃色部份的 M code 如果是使用 定義名稱 的話,只有在 紅字的地方不一樣 。 let   Source = Excel.CurrentWorkbook(){[Name="DynamicPath"]}[Content],    Column1 = Source{0} [Column1] ,   GetFolderFiles = Folder.Files (Column1) ...

<列轉行系列3>將經理人代碼、姓名、職員從列拆分為行

圖片
  我今天要寫的這個問題在數據清理時是很常見的,特別是當資料是從網站或 pdf 中抓取時,經由 Ctrl+C,然後在 Excel 中 Ctrl+V 貼上,結果常常令人感到氣憤,所有的資料都被轉換成同一行,這與我原先在網頁或 pdf 中看到的很不一樣。我打算做這一系列情況的解決方案。  狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 第1集 使用 樞紐資料行 來解, 第2集 使用 分組工具 來做。  狀況二:當然就是每一組的列數不固定,有的可能 2 列就是一組,有的可能 3、4、5、6、7 列一組,還值得慶幸的是至少每一組數據還有前導資料行,讓我可以判斷每一組數據的頭在哪裡。 第3集 。  狀況三:就是最棘手狀況了,就是狀況二沒有前導資料行,所有資料都在同一行,也沒有空白儲存格給你分組。 第4集 。 準備好跟我一起升級打怪了嗎? ================================================ <列轉行系列3>將經理人代碼、姓名、職員從列拆分為行 Data:給定有 Manager ECode , Manager Name 和 Employee Names 三類資料放在同一行, 其中 Employee Names 人數不一,任務是把這些資料拆分為一列列。  💡 提示。。。 英文開頭數字結尾的是 the EMP code of the Manager。 下一列是 the Name of the Manager。 接下來的便是 Employees Names,直到出現下一個 f Manager ECode 為止。 </aside> 檔案下載: 列轉行系列3_Separate Managers and Employees in different Columns Step 1 - 取出 Manager ECode。 新增索引資料行,再新增一自訂資料行,並且輸入以下任一公式,看您喜歡哪一個都行!! if List.ContainsAny( Text.ToList( [Data] ) , {"0" .. "9"} ) then [Data] else null if (try Number.From(Text.End([Da...

<列轉行系列2>在 Excel 中將列轉換為行_使用Table.Column

圖片
 我今天要寫的這個問題在數據清理時是很常見的,特別是當資料是從網站或 pdf 中抓取時,經由 Ctrl+C,然後在 Excel 中 Ctrl+V 貼上,結果常常令人感到氣憤,所有的資料都被轉換成同一行,這與我原先在網頁或 pdf 中看到的很不一樣。我打算做這一系列情況的解決方案。  狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 第1集 使用 樞紐資料行 來解, 第2集 使用 分組工具 來做。  狀況二:當然就是每一組的列數不固定,有的可能 2 列就是一組,有的可能 3、4、5、6、7 列一組,還值得慶幸的是至少每一組數據還有前導資料行,讓我可以判斷每一組數據的頭在哪裡。 第3集 。  狀況三:就是最棘手狀況了,就是狀況二沒有前導資料行,所有資料都在同一行,也沒有空白儲存格給你分組。 第4集 。 準備好跟我一起升級打怪了嗎? ================================================ <列轉行系列2>在 Excel 中將列轉換為行 ●狀況二:當然就是每一組的列數不固定,有的可能 2 列就是一組,有的可能 3、4、5、6、7 列一組,還值得慶幸的是至少每一組數據還有前導資料行,讓我可以判斷每一組數據的頭在哪裡。 檔案下載: 列轉行系列2_Transpose Rows into Columns in Excel

<列轉行系列1>將堆在同一列中的資料拆分為行_使用分組(下集)

圖片
我今天要寫的這個問題在數據清理時是很常見的,特別是當資料是從網站或 pdf 中抓取時,經由 Ctrl+C,然後在 Excel 中 Ctrl+V 貼上,結果常常令人感到氣憤,所有的資料都被轉換成同一行,這與我原先在網頁或 pdf 中看到的很不一樣。我打算做這一系列情況的解決方案。  狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 第1集 使用 樞紐資料行 來解, 第2集 使用 分組工具 來做。  狀況二:當然就是每一組的列數不固定,有的可能 2 列就是一組,有的可能 3、4、5、6、7 列一組,還值得慶幸的是至少每一組數據還有前導資料行,讓我可以判斷每一組數據的頭在哪裡。 第3集 。  狀況三:就是最棘手狀況了,就是狀況二沒有前導資料行,所有資料都在同一行,也沒有空白儲存格給你分組。 第4集 。 準備好跟我一起升級打怪了嗎? ================================================ <列轉行系列1>將堆在同一列中的資料拆分為行(下集) ●狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 這第2集 使用 分 組工具 來解。 檔案下載: 列轉行系列1下集_Transpose rows into separate columns

<列轉行系列1>將堆在同一列中的資料拆分為行_使用樞紐資料行(上集)

圖片
我今天要寫的這個問題在數據清理時是很常見的,特別是當資料是從網站或 pdf 中抓取時,經由 Ctrl+C,然後在 Excel 中 Ctrl+V 貼上,結果常常令人感到氣憤,所有的資料都被轉換成同一行,這與我原先在網頁或 pdf 中看到的很不一樣。我打算做這一系列情況的解決方案。  狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 第1集 使用 樞紐資料行 來解, 第2集 使用 分組工具 來做。  狀況二:當然就是每一組的列數不固定,有的可能 2 列就是一組,有的可能 3、4、5、6、7 列一組,還值得慶幸的是至少每一組數據還有前導資料行,讓我可以判斷每一組數據的頭在哪裡。 第3集 。  狀況三:就是最棘手狀況了,就是狀況二沒有前導資料行,所有資料都在同一行,也沒有空白儲存格給你分組。 第4集 。 準備好跟我一起升級打怪了嗎? ================================================ <列轉行系列1>將堆在同一列中的資料拆分為行(上集) 狀況一:是每一組的列數固定,例如每 4 列就是一組數據,每組數據之間隔著一空白列。我有二種解法, 第1集 使用 樞紐資料行 來解。 檔案下載: 列轉行系列1上集_Unstack Rows in Separate Columns