數據源是一張課程總表,要查詢出每位教師的每周的排課情況。
這是數據源表,雖然看着直觀,但是卻又很多問題,不是一張符合要求的數據源表格,裡面有很多的合并單元格。
這是目标表格,查詢的結果要排列成這個樣子。
第一步:建立連接
選擇文件,然後選擇總表作為查詢的數據源。
第二步:轉換
剛剛導入的數據是原始狀态,打散合并單元格的狀态,需要通過一系列操作,轉換成我們需要的形狀:
然後通過教師和時段标簽來實現查詢。
剛剛導入的是這樣的表格:
後面還有很多的空白列,所以我們要耐心來處理。
1、提升标題、删除空白列
将源表的第一行作為标題行
删除後面的空白列
2、篩選掉空白行、向下填充
用第二列進行篩選,去除空白行
第一列需要向下填充,填好所有的星期
3、複制查詢,單獨處理一下,晚1和晚2的課程
篩選出晚1和晚2,五年級和六年級有晚自習,由于是合并單元格,也需要向下填充
然後選擇需要填充的列,按SHIFT END可以直接選到最後一列,向下填充
因為總表裡已經有了晚1,我們隻需要把晚2追加到總表就可以了,所以再篩選一下
這個單獨處理到這就結束了,返回到總表
4、追加晚2到總表中
5、選擇所有年級列進行逆透視
6、處理科目、教師、時段
數據源中的科目和教師是合并在一起的,而且大課間、晚1、晚2是隻有教師名沒有科目,所以,當我們對最後這一列進行拆分時,就會出現科目與教師姓名錯位的情況,即本應該出現在教師名稱一列的姓名,有一些會出現在科目這一列,為了解決這個問題,我們就要用自定義列。
用換行符拆分列:
用自定義列調整科目和教師:
教師:=if [值.2]=null then [值.1] else [值.2]
科目:=if [Column2]="大課間" or [Column2]="晚1" or [Column2]="晚2" then [Column2] else [值.1]
7、用自定義列生成班級與科目列
因為我們最終的查詢結果是要顯示這樣的結果,哪一個班級什麼課程?
班級科目=[屬性]&"#(lf)"&[科目]
8、清理沒用的列,透視列到我們需要的形狀
通過管理列直接選擇要保留的列、或者直接删除不需要的列都可以
使用星期列來透視列,高級選項裡選擇“不要聚合”
至此,數據源已經處理好了,接下來要做的是查詢
第三步:組合
要建立查詢,首先要做點準備工作,如果我們是用教師姓名進行查詢,就需要有一份教師名單,用來做數據有效性的序列值,其次我們要有一個每天課程的排列表格。
這兩個表可以直接通過總表來生成,保留單列,然後删除重複值即可,我是在Excel中删除重複值,再添加進來,效果都一樣。
課程排列,添加索引列,将來排序使用
1、新建查詢
在Excel中選擇兩個單元格,通過表格與區域建立查詢
2、添加自定義列,生成課程排列
展開List
3、到總表中合并查詢
展開Table
4、處理排序
時段的排序是亂的,要根據我們添加的索引來排序
還是合并查詢索引過來,升序排序之後,删除索引即可
删除索引列之後,我們的組合工作就做好了。
第四步:共享
在這個例子中就非常簡單了,直接加載表格到現有表格就可以了。表4查詢,右鍵加載到,選擇現有表格。
這個查詢的使用方法很簡單,隻需要在下拉列表中選擇教師,然後在查詢表裡右鍵刷新就可以了。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!