身為寶可夢班級的上課老師， 要算成績很辛苦的~~ 同學們常常出去比賽， 可是不見得每個人都會參加每一場比賽； 有時會場還會不小心收集到其他班插花同學的成績。 每次收集到新成績時， 要把它跟現有的成績冊整合， 都是一件很費工的事。 本文介紹偷懶的方法。
假設你已有一個 (ods 或 xls 格式的) 「成績總表」 內含寶可夢們的學號、 姓名、 許多次的成績。 另有一個新的 .csv 檔， 內含某次小考的新成績及寶可夢們的學號； 但並不是每位同學都有考到這次小考。 我們的目標是要把新成績貼到原先的成績總表裡面去。
有一種方法是對新成績的 .csv 檔採用學號排序， 然後用工人智慧 (人眼+手工) 找出缺考的同學， 小心地一段段剪貼。 或是， 排序完之後即可在命令列下採用 join 指令合併， 再剪貼回成績總表。 以前我一直都採用 join 指令這個方法， 比較不怕粗心弄錯， 但每次都要做頭腦體操， 還是有點辛苦。
在成績總表最左側新增兩個空白欄。 假設現在學號欄變成 C 欄。
開一個新分頁 (圖中青色框框部分) 命名為 new 好了。 順便把原先的主分頁改命名為 main。
在 new 分頁裡， 把新的 csv 內容貼到第 B、C 兩欄。 假設 B 欄是學號， C 欄是這次的新成績。
點選 new 分頁的 A1 (或 A10 或 A 欄任何一格皆可)。
填入以下算式： =VLOOKUP(B1,main.C$1:D$99,2,FALSE()) 然後把這個算式向下拖滿整欄到資料結束為止。 意思是： 拿我右邊那格到 main 分頁的 C$1 到 D$99 表格中去查詢， 查到的話就把 (從查詢表格範圍的最左邊開始數起) 第 2 欄的內容貼上； 沒查到的話就填 #N/A。 這一步非必須； 只是要確認新成績都屬於本班同學。 例如圖中 s36 明明不是本班同學， 卻跑來插花出現在新成績當中。 應該去了解一下是剛轉班進來還是怎樣、 是否要把成績轉給他們班的老師。
回到 main 主分頁， 點選 A1。
填入以下算式： =VLOOKUP(C1,new.B$1:C$99,2,FALSE()) 然後把這個算式向下拖滿整欄到資料結束為止。 同樣地， 這意思是： 拿我右邊那格到 new 分頁的 B$1 到 C$99 表格中去查詢， 並填上第二欄的值。 現在誰缺考就很清楚了。
請參考範例檔 grade.ods 。
ps. 如果是 google sheet 或 excel， 只要把 "main." 改成 "main!"、 把 "new." 改成 "new!"、 FALSE() 改成 FALSE 即可。