tft每日頭條

 > 生活

 > power query函數學習

power query函數學習

生活 更新时间:2025-02-01 19:38:49

數據源是一張課程總表,要查詢出每位教師的每周的排課情況。

power query函數學習(PowerQuery進行課程表查詢)1

這是數據源表,雖然看着直觀,但是卻又很多問題,不是一張符合要求的數據源表格,裡面有很多的合并單元格。

power query函數學習(PowerQuery進行課程表查詢)2

這是目标表格,查詢的結果要排列成這個樣子。

第一步:建立連接

power query函數學習(PowerQuery進行課程表查詢)3

選擇文件,然後選擇總表作為查詢的數據源。

power query函數學習(PowerQuery進行課程表查詢)4

第二步:轉換

剛剛導入的數據是原始狀态,打散合并單元格的狀态,需要通過一系列操作,轉換成我們需要的形狀:

power query函數學習(PowerQuery進行課程表查詢)5

然後通過教師和時段标簽來實現查詢。

剛剛導入的是這樣的表格:

power query函數學習(PowerQuery進行課程表查詢)6

後面還有很多的空白列,所以我們要耐心來處理。

1、提升标題、删除空白列

将源表的第一行作為标題行

power query函數學習(PowerQuery進行課程表查詢)7

删除後面的空白列

power query函數學習(PowerQuery進行課程表查詢)8

2、篩選掉空白行、向下填充

用第二列進行篩選,去除空白行

power query函數學習(PowerQuery進行課程表查詢)9

第一列需要向下填充,填好所有的星期

power query函數學習(PowerQuery進行課程表查詢)10

3、複制查詢,單獨處理一下,晚1和晚2的課程

篩選出晚1和晚2,五年級和六年級有晚自習,由于是合并單元格,也需要向下填充

power query函數學習(PowerQuery進行課程表查詢)11

然後選擇需要填充的列,按SHIFT END可以直接選到最後一列,向下填充

power query函數學習(PowerQuery進行課程表查詢)12

因為總表裡已經有了晚1,我們隻需要把晚2追加到總表就可以了,所以再篩選一下

power query函數學習(PowerQuery進行課程表查詢)13

這個單獨處理到這就結束了,返回到總表

4、追加晚2到總表中

power query函數學習(PowerQuery進行課程表查詢)14

5、選擇所有年級列進行逆透視

power query函數學習(PowerQuery進行課程表查詢)15

6、處理科目、教師、時段

數據源中的科目和教師是合并在一起的,而且大課間、晚1、晚2是隻有教師名沒有科目,所以,當我們對最後這一列進行拆分時,就會出現科目與教師姓名錯位的情況,即本應該出現在教師名稱一列的姓名,有一些會出現在科目這一列,為了解決這個問題,我們就要用自定義列。

用換行符拆分列:

power query函數學習(PowerQuery進行課程表查詢)16

power query函數學習(PowerQuery進行課程表查詢)17

用自定義列調整科目和教師:

教師:=if [值.2]=null then [值.1] else [值.2]

power query函數學習(PowerQuery進行課程表查詢)18

科目:=if [Column2]="大課間" or [Column2]="晚1" or [Column2]="晚2" then [Column2] else [值.1]

power query函數學習(PowerQuery進行課程表查詢)19

7、用自定義列生成班級與科目列

因為我們最終的查詢結果是要顯示這樣的結果,哪一個班級什麼課程?

班級科目=[屬性]&"#(lf)"&[科目]

power query函數學習(PowerQuery進行課程表查詢)20

8、清理沒用的列,透視列到我們需要的形狀

通過管理列直接選擇要保留的列、或者直接删除不需要的列都可以

power query函數學習(PowerQuery進行課程表查詢)21

使用星期列來透視列,高級選項裡選擇“不要聚合”

power query函數學習(PowerQuery進行課程表查詢)22

至此,數據源已經處理好了,接下來要做的是查詢

第三步:組合

要建立查詢,首先要做點準備工作,如果我們是用教師姓名進行查詢,就需要有一份教師名單,用來做數據有效性的序列值,其次我們要有一個每天課程的排列表格。

這兩個表可以直接通過總表來生成,保留單列,然後删除重複值即可,我是在Excel中删除重複值,再添加進來,效果都一樣。

課程排列,添加索引列,将來排序使用

power query函數學習(PowerQuery進行課程表查詢)23

1、新建查詢

在Excel中選擇兩個單元格,通過表格與區域建立查詢

power query函數學習(PowerQuery進行課程表查詢)24

2、添加自定義列,生成課程排列

power query函數學習(PowerQuery進行課程表查詢)25

展開List

power query函數學習(PowerQuery進行課程表查詢)26

3、到總表中合并查詢

power query函數學習(PowerQuery進行課程表查詢)27

展開Table

power query函數學習(PowerQuery進行課程表查詢)28

4、處理排序

時段的排序是亂的,要根據我們添加的索引來排序

還是合并查詢索引過來,升序排序之後,删除索引即可

power query函數學習(PowerQuery進行課程表查詢)29

删除索引列之後,我們的組合工作就做好了。

第四步:共享

在這個例子中就非常簡單了,直接加載表格到現有表格就可以了。表4查詢,右鍵加載到,選擇現有表格。

power query函數學習(PowerQuery進行課程表查詢)30

這個查詢的使用方法很簡單,隻需要在下拉列表中選擇教師,然後在查詢表裡右鍵刷新就可以了。

power query函數學習(PowerQuery進行課程表查詢)31

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved