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