用Excel制作刷题器,备考无忧 !
作者:ITFANS来源:部落窝教育发布时间:2024-07-22 18:37:59点击:1062
编按:
用Excel制作一个刷题器,实现随机出题,可以帮自己备考,帮孩子备考。刷题器支持单项选择题、多项选择题、判断题三类题型。
帮自己备考,帮家里孩子备考,或者做随机出题的内训培训测试,你可以使用Excel打造一个实用的刷题器。
看看最终效果,选择单选或者多选题,点击“刷题”即可随机从题库中抽题,输入答案后还会自动进行打分。
刷题器很简单,包括“原始试题”“题库”“出题1”三张工作表。
一、原始试题整理
将网上搜集的试题粘贴到Excel中,大多数试题逐行排列,并且各题答案汇总在一行。
而为了方便随机出题,我们需要把各道试题整合成一行,并拆分出正确答案。
Step1,整合题目
将原始试题粘贴到B列,答案粘贴到A2备用。
接着在C2输入公式:
=DROP(TEXTSPLIT(TEXTJOIN("|",TRUE,IF(B:B="","",IFERROR(SUBSTITUTE(B:B,IF(ISNUMBER(--TEXTBEFORE(B:B,{"、","."})),TEXTBEFORE(B:B,{"、","."}),""),"部落窝",1),B:B))),,"部落窝",TRUE),1)
说明:
将各题题目和其选项使用“|”连接起来汇成一行排列。
注意,整理的最后一道题与其他题不同,其末尾会缺少一个分隔符“|”,
Step2,最后行添加“|”
定位到D2输入公式“=IF(C2#=TAKE(C2#,-1),TAKE(C2#,-1)&"|",C2#)”,自动为最后行添加符号。
Step3,提取答案
定位到F2输入公式将A2的答案提取出来并放在整合题目的后方:
=TEXTSPLIT(TEXTAFTER(A2,"答案:"),,TEXTSPLIT(TEXTAFTER(A2,"答案:"),,CHAR(ROW($65:$90)),1),1)
Step4,复制整理后的试题到题库
打开VB编辑器新建“复制整理试题”宏,代码含义参考注释。
在表中插入一个形状,右键指定宏为“复制整理试题”。今后点击这个形状即可将整理的试题和答案复制到题库的D:E列。
二、实现随机出题
切换到“题库”工作表,我们通过公式来随机抽取题目,并用宏固定题目。
Step1,生成随机数
在C2输入公式“=RANDARRAY(ROW(A2:INDIRECT("A"&COUNTA(D:D))))”,以D列非空单元格数为最大值,使用RANDARRAY函数生成随机数。
Step2,判断题型
定位到F2输入“=IFS(LEN(E2:E1000)=1,"单选",LEN(E2:E1000)>1,"多选",1,"")”。
Step3,添加刷题的题型选择器
切换到“出题1”工作表,按提示插入2个“选项按钮(窗体控件)”,分别修改文字为“单选题”“多选题”。接着选中任意一个控件,右击选择“设置控件格式”,将单元格的链接设置为C2。这样选择“单选题”或“多选题”的时候,C2就会显示数字1或2,可作为题型选择依据。
Step4,随机抽取题目
返回“题库”工作表,在H2输入公式:
=ROW(A1:A5)&IFERROR(IF(出题1!C2=2,INDEX(LET(F,FILTER(C2#:D1000,(A2:A1000="")*(F2#="多选"),""),SORTBY(F,INDEX(F,,1,1))),ROW(A1:A5),COLUMN(B1)),INDEX(LET(F,FILTER(C2#:D1000,(A2:A1000="")*(F2#="单选"),""),SORTBY(F,INDEX(F,,1,1))),ROW(A1:A5),COLUMN(B1))),".请重置|")
说明:
借助C列的随机数字,随机从D列中抽取5道题。
Step5,设置已出标记
刷题要求已经出过的题目不再出现,因此需要标记已抽取的题目,便于后续抽取时避开它们。
由于随机数易变,为了不出现错误,首先将抽取的H2:H5的题目以“值”的方式粘贴到I2:I5进行固定(此处可以先手动粘贴,后续我们通过代码实现)。
然后定位到B2输入公式:
=IFERROR(IF(XLOOKUP(TEXTAFTER(D2:D1000,"."),TEXTAFTER(I2:I1000,"."),C2:C1000,"")<>"","已出",""),"")
Step6,新建固定已选标记的宏
B列“已选”标记会不断变化,为了固定历次抽取的标记,需要新建一个宏,如下。代码的作用请参考注释。
Step7,新建固定已出题的宏
新建一个“刷题”的宏,取代第5步中的手动粘贴。
Step8,新建重置的宏
当随机抽取完所有题后,则需要重置,用于清除I列题目、A列标记,以及“出题1”工作表用户的答案输入,便于开始新的一轮抽取。
Srep9,还原题目为标准试题
在K2输入“=IFERROR(TEXTSPLIT(CONCAT(I2:I6),,"|",TRUE,,""),"")”还原题目为标准试题。
三、刷题设置
切换道“出题1”工作表进行刷题设置。
Step1,引用题目
在B6输入“=题库!K2#”,引用题库还原后的题目。
Step2,引用答案
在C6输入公式:
=IFERROR(XLOOKUP("*"&IF(ISNUMBER(--TEXTAFTER(B6:B28,".")),1/0,TEXTAFTER(B6:B28,"."))&"*",题库!$D$2:$D$1000,题库!$E$2:$E$1000,"",2),"")
Step3,关联宏
在D2、E2插入两个形状,分别关联到上述创建的“刷题”和“重置”宏。
Step4,其他设置
在E6输入公式“=IFS(D6:D28="","",D6:D28=C6:C28,"✔",D6:D28<>C6:C28,"✖,答案为:"&C6:C28)”,判断答案。
E3输入公式“=IF(D6="","",COUNTIF(E6:E29,"✔")*20)”,统计分数。
此外还可以设置条件格式,将题目栏设置为黄色显示,对答题单元格设置边框等,最终效果如图。
四、实际使用
Step1,输入试题
隐藏“题库”工作表。切换到“原始试题”工作表,仅保留A、B列显示(其他列隐藏)。只要将题目和答案分别粘贴到B列和A2,点击“复制整理试题”即可。
Step2,开始刷题
切换到“出题1”工作表,隐藏C列,选择题型,然后点击“刷题”。只要在D列输入答案,就可以自动完成分数统计。
后记:
当前的模板只是提供一个思路和方法,还有很多不足,譬如,题型上缺少判断题、刷题数固定为5、选择题的各选项必须单独成行。如果你需要更强大的刷题模板,如下,请联系部落窝教育领取。注意,需用Excel 365,Excel 2024等版本打开。
本文配套的练习课件请添加客服微信buluowojiaoyu索取。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者ITFANS;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。