多选得分判断

image.png

这个公式要怎么写

FineReport 18328816101 发布于 2019-12-5 15:17
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
张洪威Lv6高级互助
发布于2019-12-5 15:43

if(len(A2) > len(B2) || len(A2) = 0, 0, if(count(GREPARRAY(split(A2, ""), FIND(item, B2) = 0)) > 0, 0, if(len(A2) = len(B2), 2, 1)))


下载这个cpt文件缕下思路就行。


多选判断.cpt


image.png


  • 18328816101 18328816101(提问者) GREPARRAY返回split(A2, \"\")数组过滤FIND(item, B2) = 0条件后的新数组,这个item是什么意思
    2019-12-05 16:03 
  • 张洪威 张洪威 回复 18328816101(提问者) 设计器的公式编辑里面搜索GREPARRAY这个函数,有解释。
    2019-12-05 16:06 
  • 18328816101 18328816101(提问者) 回复 张洪威 按照你给的公式,假设A2是AD,那么split(A2, \"\")返回数组是[AD],FIND(item,ABC)就是数组[AD]中的A和D在ABC中的位置:1和0,那么就是GREPARRAY([ABC], 1 = 0)或GREPARRAY([ABC], 0 = 0)?这个GREPARRAY返回的又是什么
    2019-12-05 17:01 
  • 张洪威 张洪威 回复 18328816101(提问者) 你可以把greparray的item理解为遍历,GREPARRAY(split(A2, \"\"), FIND(item, B2) = 0) 这个公式就是返回split(A2, \"\")中符合FIND(item, B2) = 0的项。
    2019-12-05 17:05 
  • 祈L 祈L 你这个假设多选只有2个就不太适用,要再判断一层,3个以上没问题
    2021-03-01 17:40 
最佳回答
1
豆豆小可爱Lv5中级互助
发布于2019-12-5 15:45(编辑于 2019-12-5 16:15)

判断多项字符串至少一项被包含-https://help.finereport.com/doc-view-2388.html


5.cpt


最佳回答
0
xiaomiliLv6初级互助
发布于2019-12-5 15:37

if (len(你的答案) = 3,2,if(len(你的答案) = 2,1,0))

类似于这种,你可以试试哦


  • 18328816101 18328816101(提问者) 答案是ABC,如果我写ACD不也是2分,有问题啊
    2019-12-05 15:42 
  • xiaomili xiaomili 回复 18328816101(提问者) 忘了还有D哈
    2019-12-05 15:53 
最佳回答
0
LSQ000Lv5中级互助
发布于2019-12-5 16:15(编辑于 2019-12-5 16:49)

假如最多选项只有4个就可以这么写,因为这里用不了for循环
A2指你回答下面那个单元格,B2则指你标准答案下面的单元格

if(

if(FIND(indexofarray(SPLIT(A2, ""), 1), B2) == 0, 1, 0) + if(FIND(indexofarray(SPLIT(A2, ""), 2), B2) == 0, 1, 0) + if(FIND(indexofarray(SPLIT(A2, ""), 3), B2) == 0, 1, 0) + if(FIND(indexofarray(SPLIT(A2, ""), 4), B2) == 0, 1, 0) == 0 && len(A2)!=0,if(len(A2)==len(B2),2,1),0

)


最佳回答
0
ma3063419Lv4见习互助
发布于2021-2-27 00:11(编辑于 2021-2-27 00:15)

IF(LEN(GREPARRAY(SPLIT(回答,","),INARRAY(item,split(标准答案, ""))=0))>0,"不包含","包含")

函数1:SPLIT(回答,",") 将回答 分割成数组,

函数2:GREPARRAY(SPLIT(回答,","),INARRAY(item,split(标准答案, ""))=0)

过滤出不属于标准答案中的字符,判断是否在标准答案中,

如果 回答 在标准答案中,并且答案不等于标准答案,就是部分正确。

比如 标准答案 ABD, 回答是AB, AB 都在答案中,LEN(函数2)的长度就是0

如果回答 不在标准答案中,就是错误

比如 标准答案 ABD, 回答是ABC, LEN(函数2)的长度不等于0

  • 6关注人数
  • 830浏览人数
  • 最后回答于:2021-2-27 00:15
    请选择关闭问题的原因
    确定 取消
    返回顶部