最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Excel之PowerQuery 從課程表了解教師任課情況

2022-09-13 16:13 作者:孫興華zz  | 我要投稿

網(wǎng)友提問,有如下一張課程表

需要從課程表中了解到每位教師都任教于哪些班,哪些課。

一、友情提示:提問中最忌諱的事情

1、數(shù)據(jù)量大:這種情況做完后無法檢查對錯,手工復核太麻煩,盡可能縮小表格行列數(shù)。做到肉眼可見對錯。

2、目標表數(shù)據(jù)錯誤:因為業(yè)務是您自己的,別人能幫您解決計算機的問題,業(yè)務問題您不應該拋給別人。您提供原數(shù)據(jù)表目標表,那目標表是應該經(jīng)您手工復核的,現(xiàn)在目標表的結果是錯誤的,可能您的意思是說就想要這么一個表,今天這個事我略懂,因為都上過學,如果您所從事的行業(yè)需要指定專業(yè),且非常識性問題,我將愛莫能助。

3、即便是常識問題,具體接觸工作的人也會更了解自己的需求,例如這個問題,誰是主科,誰是副科,數(shù)語英肯定是主科,那音樂、體育怎么算?是與勞動、社團、自習算到一起,還是與數(shù)語英算到一起?這些都沒有說清楚。我們不是商人與消費者的關系,我不可能花大量時間與每個人核對需求。

4、此問題不涉及一位教師講多門主課的情況,例如數(shù)學老師同時教語文,目前只有培訓機構有這種情況,正規(guī)學校教師大多是一人一科,只是稍帶一些社團、自習之類的。我們暫時忽略一個人又教數(shù)學又教語文的情況,且默認班會、社團等全校在同一時間進行。

如果需求進一步升級,那具體問題具體分析。

二、修改表格讓小學生聽懂我想做什么

提問一定要讓小學生聽懂,小學生可以不會做,但是一定要聽懂我在說什么,反之如果小學生聽不懂你在說什么就是你暫時對業(yè)務不理解。例如:曾經(jīng)有位皇帝,他想長生不老,皇帝的表達能力沒問題,可以沒有長生不老藥,但是我們必須要知道自己想做什么,做不出來不可怕,可怕的是不知道怎么表達自己的需求。

現(xiàn)在我們要將這張表:

變成:

三、開始數(shù)據(jù)清洗

如果這個案例不分主副科,不用按年級班級排序點幾下鼠標一行代碼就搞定了,但是現(xiàn)在加上了這些需求,代碼量就大起來了。

1、導入表格到PowerQuery中

2、選中科目列~轉換~逆透視~逆透視其它列

二維表是打印或觀賞的,我們先將它轉成一維數(shù)據(jù)表

我將其改成如下列名:

3、處理主副科和年級班級排序問題

從提問者的目標表上,我們可以推斷出,排序規(guī)則是:一(1),(2)... 二(1)(2)... 三(1)(2) 且主科與副科分開。

【1】添加列,判斷主副科


【2】搞定排序、年級、班級

(1)添加列,提取年級(漢字)

(2)添加列,提取帶括號的班級


(3)添加列,做排序列


【3】開始套娃

1、按教師姓名分組,第一個組寫課程,第二個組計算課時


課時計算每個人子表的行數(shù)就可以了。


2、大娃是任課情況,我們處理它


現(xiàn)在關系圖是這樣的:最左邊表的每個Table是大娃,中間三張表的每個Table是中娃


我們只需要分析其中任意一組即可:

對中娃按年級分組

修改后的代碼如下:

現(xiàn)在中娃到小娃的關系如下:

我們發(fā)現(xiàn),只需要小娃綠圈中的數(shù)據(jù)拼成字符串即可,有些小娃會牽扯一個排序問題

修改后的代碼:

Text.Combine(List.Distinct(Table.Sort(小娃,"排序")[年級])) & Text.Combine(Table.Sort(小娃,"排序")[班],"、") & Text.Combine(List.Distinct(Table.Sort(小娃,"排序")[科目]),"、")

相當于:?一 & (1)、(2) & 數(shù)學? ?=? 一(1)、(2)數(shù)學

現(xiàn)在我們將小娃變成了這個樣子:

現(xiàn)在只需要取中娃的【數(shù)據(jù)3】這個列,所以Table變List

再取大娃的【數(shù)據(jù)1】列,Table又變List

使用List.Combine將大娃中的列表合并

最后使用Text.Combine對每個大娃中的List轉成Text文件用逗號隔開

上載后的結果:

我們發(fā)現(xiàn)了一個小問題,問題的原因在于我們沒有對帶括號的班級列表去重

我們修改一下:

Text.Combine(List.Distinct(Table.Sort(小娃,"排序")[年級]))?&?Text.Combine(List.Distinct(Table.Sort(小娃,"排序")[班]),"、")?&?Text.Combine(List.Distinct(Table.Sort(小娃,"排序")[科目]),"、")

現(xiàn)在把這段話替換之前的代碼

最終代碼如下:

最終上載后的結果:

PowerQuery合集:https://www.bilibili.com/video/BV1oa4y1j75e

更多教程:https://www.bilibili.com/read/cv10222110

Excel之PowerQuery 從課程表了解教師任課情況的評論 (共 條)

分享到微博請遵守國家法律
固安县| 林周县| 新河县| 板桥市| 札达县| 赫章县| 宝丰县| 建宁县| 松原市| 凤翔县| 嘉祥县| 高阳县| 荔波县| 凤台县| 西盟| 揭东县| 长岭县| 麟游县| 文安县| 洞头县| 墨脱县| 金门县| 阿克| 东明县| 紫阳县| 海盐县| 镇坪县| 五家渠市| 齐河县| 惠水县| 中江县| 邮箱| 新邵县| 西藏| 裕民县| 石景山区| 昌乐县| 凭祥市| 德昌县| 龙州县| 高邮市|