我正在尝试比较Excel中的两个单元格以检索数值,例如:
Trial type Duration Letters shown Distracters Laterality Response Full 6 80 XZHTEJ 0 Bilateral TEHZ
在该行中,我想比较显示的字母和响应,并返回一个数字是否正确。我希望它的数字为4,因为有四个字母与显示的字母匹配。
答案 0 :(得分:1)
VBA可能更合适,但您没有标记,公式应该有效:
=IFERROR(FIND(MID(C1,1,1),F1)>0,0)+IFERROR(FIND(MID(C1,2,1),F1)>0,0)+IFERROR(FIND(MID(C1,3,1),F1)>0,0)+IFERROR(FIND(MID(C1,4,1),F1)>0,0)++IFERROR(FIND(MID(C1,5,1),F1)>0,0)+IFERROR(FIND(MID(C1,6,1),F1)>0,0)
答案 1 :(得分:1)
@pnuts'的答案就有效。
如果响应(在F1中)总是4个或更少字符,则以下内容将起作用:
=LEN(C1)-
LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(
C1,MID(F1,1,1),""),MID(F1,2,1),""),MID(F1,3,1),""),MID(F1,4,1),"")
)
任何一种方法都可以根据需要轻松扩展。
答案 2 :(得分:1)
仅供参考,这里是任何响应长度的解决方案。它还具有比其他给定解决方案更短的优势(我认为)
{=SUM(IF(ISERROR(MATCH(MID(F1,ROW(INDIRECT("B1:B"&LEN(F1))),1),MID(C1,ROW(INDIRECT("A1:A"&LEN(C1))),1),0)),0,1))}
这是一个数组公式,所以省略花括号并使用 Ctrl + Shift + 输入
输入公式该解决方案创建了两个数组,如下所示
Shown Inputted
X T
Z E
H H
T Z
E
J
然后遍历每个输入的字符,在显示的数组中查找匹配项,如果匹配则返回1,否则返回0.最后SUM
添加所有1(匹配)以提供所需的结果。