iT邦幫忙

2019 iT 邦幫忙鐵人賽

0
自我挑戰組

程式設計師大冒險系列 第 102

[102/150]離散數學英文題庫製作(Excel)

以前有下載過別人寫好的,但是忘記丟到哪。上網重新下載又怕有病毒,於是乾脆自己做一個。

【大綱】

  • 版面規劃說明
  • 公式說明
  • 檢討與修正
  • 新學習

【版面規劃說明】

https://ithelp.ithome.com.tw/upload/images/20190110/20091910zBNVIScN7Z.jpg

題庫區
題目放在這裡,名稱定義為「離散英文」,
範圍定義為=OFFSET(資料表!$C$3,0,0,$G$3,2)
好處是題目有更動,透過公式去動態修改範圍,不用手動重新定義。

比方說範圍用$C$3:$D$4絕對參照,新增一題要手動改$C$3:$D$5。
用公式的話會抓取到題目區第一筆到最後一筆資料,使用上會方便許多。

參數
輔助列,一方面知道題目總量;一方面減少公式長度。

答案券
題目部分用RAND()隨機出題,但這個方法要注意一點,自動計算要改手動。
請在公式/計算選項/改 手動,不然每寫完一題,題目就會更動一次。
寫完題目後EXCEL會立刻幫你對答案,用三種顏色做區分。
白色(空白色)為尚未答題;紅色為答錯;綠色為答對。

【公式說明】

題庫區(離散英文)
範圍定義為=OFFSET(資料表!$C$3,0,0,$G$3,2)

參數
=COUNTA(C:C)-1
-1是因為標題列

答案卷(題目)
=INDEX(離散英文,INT(RAND()*$G$3+1),1)
考量到擴充性,搭配參數動態增減出題範圍。
INDEX第三個參數,1是考英翻中;2是考中翻英。

條件式判斷
=IF($J3="",0,IF($J3=VLOOKUP($I3,離散英文,2),0,1))
有作答並且答錯,就顯示紅色

=IF($J3=VLOOKUP($I3,離散英文,2),1,0)
答對題目,就顯示綠色

【檢討與修正】

參數區可以新增考中文或考英文,開關控制。
每學完一個章節,就要更新題目一次。
可以設計界面,增加易讀性。

【新學習】

學會用公式參照,名稱可以動態定義範圍。
這個定義方法很實用,以前沒有想過可以用公式定義範圍。
是因為設定條件式判斷,才想到名稱搞不好也可以。
上網一查果然辦的到,而且這項資訊就在第一項搜尋結果。

在想到這個方法前,一度想要用VBA動態抓取範圍。
不過多了不能用VBA限制,反而想到更好辦法。
感謝撥冗閱讀,歡迎留言指教。


上一篇
[101/150]離散數學(十)函數-3
下一篇
[102/150]離散數學(十一)偏序-1、鐵人賽交通
系列文
程式設計師大冒險112

尚未有邦友留言

立即登入留言