2011年4月9日 星期六

Excel-輸入答案後自動畫出答案卡

現在在學校中,利用電腦閱卷答案卡(如下圖範例)作答是很常見的事,如果要畫一張100個答案的答案卡,可能對已經非常忙碌的老師而言,也是一個「小小」的負擔。

如果能在 Excel 的工作表中輸入好答案(參考下圖),自動幫你轉成答案卡(參考下下圖),而且印在一般A4的白紙上即能使用,是不是很方便呢?!

其實答卡紙上的紅色部分是給人看的,讀卡機並不會讀取到這些資料,只有黑色部分才是機器要的資料。所以可以把答案卡分為二個部分來設計,左邊的黑色線條是用來做為機器校正之用,所以你只要稍加調整製作出接近原來答案卡差不多的線條即可。

至於右邊答案畫記的部分,則要靠公式和設定格式化條件來自動產生,參考以下的做法:

儲存格C53:=IF((CODE(OFFSET(Ans!$C$3,(ROW(1:1)-1)/2,,,))-64)=COLUMN(A:A),1,0) (第1題)

複製儲存格C53至儲存格C53:G53

公式中主要是利用OFFSET函數來找出Ans工作表中的答案如何對應到答案卡中,因為公式要往下複製,

所以利用公式中的(ROW(1:1)-1)/2,將間隔一列的答案,轉為間隔二列的答案卡畫記。

公式中的CODE(OFFSET( … ))-64,指先將OFFSET函數找到的答案利用CODE函數找出其ASCII碼,

再減64的意義,可以將A對應1、B對應2、C對應3、D對應4、E對應5。

COLUMN(A:A)=1,往右複製時會產生:COLUMN(B:B)=2、…、COLUMN(E:E)=5

將以上的兩個結果加以比對,如果相同,則輸出1;如果不同,則輸出0。

然後,利用設定格式條規則,將儲存格輸出1者,設定為黑底黑字;儲存格輸出0者,設定為白底白字。

同理:

儲存格J53:=IF((CODE(OFFSET(Ans!$F$3,(ROW(1:1)-1)/2,,,))-64)=COLUMN(A:A),1,0) (第26題)

複製儲存格J53至儲存格J53:N53

儲存格Q53:=IF((CODE(OFFSET(Ans!$I$3,(ROW(1:1)-1)/2,,,))-64)=COLUMN(A:A),1,0) (第51題)

複製儲存格Q53至儲存格Q53:U53

儲存格X53:=IF((CODE(OFFSET(Ans!$L$3,(ROW(1:1)-1)/2,,,))-64)=COLUMN(A:A),1,0) (第76題)

複製儲存格X53至儲存格X53:AB53

將儲存格C53:AB53往下複製,產生所有的答案畫記。

該答案輸出為A5大小,如果使用A4紙張列印,則只要將紙張對齊即可使用。

你可以進一步練習如何產生複選題的答案卡畫記,待續 …

1 則留言:

  1. 抱歉
    因為我不太會使用部落格
    也不知道要怎麼留言
    我只是想請問您
    因為我想要將部分EXCEL做凍結儲存格的動作
    可是例如我選了五列,卻只凍結了四列
    我選了六列,卻凍結了十列
    無法精確的凍結我所選取的範圍
    請問這是什麼原因造成的呢?

    回覆刪除

檢視其他文章

好康東東