知识库外链:https://t6ixa9nyl6.jiandaoyun.com/sharedoc/7dca4jXgHiAiW3fi6wgqXb
表单外链: https://slc5umd6bu.jiandaoyun.com/f/6053344ed27f720007903634
应用安装链接:https://jiandaoyun.com/a/5ea8076bcfdfea0006062a29("多选题得分判断"表单)
一、问题背景
复选框存储逻辑改版之后,选择多个选项之后,数据库内排序是随机的。即:复选框选择了A、B、C之后,存储起来的排序有可能是ABC,也有可能是ACB或者CAB等。用户题库判断多选题得分时,就会比较麻烦。已有的解决方案是:
1、根据正确答案一个个拆分之后再去SEARCH。弊端在于:正确答案个数不同,需要判断的情况就很多,公式较长。
2、根据正确答案和选择的答案吧复选拆分到子表单内判断。弊端在于:一个多选题的判断就要设置一个子表单拆分,比较麻烦
已知条件:多选题的正确答案、已经选择答案的复选框
需要实现:简便的、通用的公式实现多选题的得分判断
二、解决思路
答案正确有2个前提:
1、选择的答案个数和正确答案个数相同
2、选择的答案选项是正确答案的子集
三、设计步骤
1、表单内添加一个复选框用来选择答案,一个单行文本记录该多选题的正确答案,一个数字字段计算得分(这里用正确的10分,否则得0分举例)
Tips:正确答案间需要有英文逗号间隔,不要求答案顺序
2、”得分“字段公式解读
- 答案正确首先应该满足条件1:选择得答案个数和正确答案的个数相等,因此可以用2个答案COUNT的结果来比较,即需要满足公式:COUNT(请选择答案)==COUNT(SPLIT(正确答案,',')
- 在满足条件1的情况下,还有一个问题会导致答案不正确,即:选择的选项在正确的答案内不存在,那么怎么来判断是否存在这种情况呢?假如正确答案是ABC,选择的答案是ABE,此时E在正确答案内是不存在的,正确答案和选择答案组合在一起去重之后,组合为ABCE,去重后的选项个数为4个;假如正确答案是ABC,选择的答案是ABC,此时回答是正确的,正确答案和选择答案组合在一起去重之后,组合为ABC,去重后的选项个数是3个,等于正确答案个数。
- 因此想要答案正确还应该满足条件2:选择的答案和正确答案组合去重之后,应该等于正确答案,即选择答案是正确答案的子集,即需要满足公式:TEXT(UNION(SPLIT(正确答案+','+请选择答案,',')))==TEXT(SPLIT(正确答案,','))。但是这个公式需要注意的是:正确答案和选择的答案在组合的时候,正确答案需要放在前面,因为UNION的去重原理是从前向后开始去判断重复,剔除重复值的。为了写公式时减少注意事项,最后用公式:COUNT(UNION(SPLIT(正确答案+','+请选择答案,',')))==COUNT(SPLIT(正确答案,','))来替换,这个公式对字段位置没有特殊的要求。
Tips:关于基础公式如果有疑问,可以参考帮助文档基础公式介绍:https://hc.jiandaoyun.com/doc/9031 编辑于 2021-7-22 17:02
|