二维码 购物车
部落窝在线教育欢迎您!

用Excel制作刷题器,备考无忧 !

 

作者:ITFANS来源:部落窝教育发布时间:2024-07-22 18:37:59点击:802

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,禁止转载。

编按:

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就会显示数字12,可作为题型选择依据。

 

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,关联宏

D2E2插入两个形状,分别关联到上述创建的“刷题”和“重置”宏。

 

 

Step4,其他设置

E6输入公式“=IFS(D6:D28="","",D6:D28=C6:C28,"",D6:D28<>C6:C28,",答案为:"&C6:C28)”,判断答案。

E3输入公式“=IF(D6="","",COUNTIF(E6:E29,"")*20)”,统计分数。

此外还可以设置条件格式,将题目栏设置为黄色显示,对答题单元格设置边框等,最终效果如图。

 

 

四、实际使用

Step1,输入试题

隐藏“题库”工作表。切换到“原始试题”工作表,仅保留AB列显示(其他列隐藏)。只要将题目和答案分别粘贴到B列和A2,点击“复制整理试题”即可。

 

 

Step2,开始刷题

切换到“出题1”工作表,隐藏C列,选择题型,然后点击“刷题”。只要在D列输入答案,就可以自动完成分数统计。

 

后记:

当前的模板只是提供一个思路和方法,还有很多不足,譬如,题型上缺少判断题、刷题数固定为5、选择题的各选项必须单独成行。如果你需要更强大的刷题模板,如下,请联系部落窝教育领取。注意,需用Excel 365Excel 2024等版本打开。

 

 

本文配套的练习课件请添加客服微信buluowojiaoyu索取。

Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

简化公式的函数LET

MAP函数用法

用Textjoin函数合并单元格

TEXTSPLIT函数用法

版权申明:

本文作者ITFANS;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。