前一篇我教了大家如何巧用數據透視表,實現一對多查詢的需求,具體可參見 Excel 界經典難題「一對多查詢」,沒想到用數據透視表也能解決。
但同時我也說了,用數據透視表只能一對多查詢數據,而無法查詢文本。
那麼文本的一對多查詢就沒有簡單方法了嗎?當然不是。
今天教大家用 Power Query 實現這個需求,操作步驟和實現原理其實跟數據透視表幾乎一樣。
案例:
一對多查找下圖 1 中每個班級的所有學生,橫排或豎排成二維表,效果如下圖 2 或 3 所示。
解決方案:
1. 在 C 列增加輔助列 --> 選中 C2:C19 區域 --> 輸入以下公式 --> 按 Ctrl+Enter 回車:
=COUNTIF($A$2:A2,A2)
這一步跟數據透視表中的操作完全一樣,目的是統計每個班級在區域內第幾次出現。
* 請注意:
輔助列的標題不得為空不要用錯單元格的絕對和相對引用
2. 選中數據表的任意單元格 --> 選擇菜單欄的「數據」-->「從表格」
3. 在彈出的對話框中點擊「確定」
4. 數據表已經上傳到 Power Query 中,選中「輔助」列 --> 選擇菜單欄的「轉換」-->「透視列」
5. 在彈出的對話框中進行以下設置 --> 點擊「確定」:
值列:姓名高級選項/聚合值函數:不要聚合
現在表格已經在 Power Query 中實現了橫向一對多查詢。
6. 點擊左上角的下拉箭頭 --> 選擇「關閉並上載」
Excel 中會新建一個工作表,其中就是我們想要的一對多查詢結果。
7. 隱藏第一行,就得到了最終表格。
8. 如果要將每個班級的人名縱向排列,只需要在前面第 4 步中,改成選中「班級」列 --> 選擇菜單欄的「轉換」-->「透視列」
9. 在彈出的對話框中進行以下設置 --> 點擊「確定」:
值列:姓名高級選項/聚合值函數:不要聚合
10. 點擊左上角的下拉箭頭 --> 選擇「關閉並上載」
表格就轉換成縱向排列了。
11. 隱藏第一列,搞定。