【发布时间】:2014-10-26 21:05:45
【问题描述】:
我正在尝试比较 Excel 中的两个单元格以检索数值,例如:
试验类型 持续时间 字母 分心 侧向性 响应 完整 6 80 XZHTEJ 0 双边TEHZ在该行中,我想将显示的字母与响应进行比较,并返回一个数字,表明有多少是正确的。我希望它有数字 4,因为输入的四个字母与显示的字母相匹配。
【问题讨论】:
标签: excel excel-formula match worksheet-function
我正在尝试比较 Excel 中的两个单元格以检索数值,例如:
试验类型 持续时间 字母 分心 侧向性 响应 完整 6 80 XZHTEJ 0 双边TEHZ在该行中,我想将显示的字母与响应进行比较,并返回一个数字,表明有多少是正确的。我希望它有数字 4,因为输入的四个字母与显示的字母相匹配。
【问题讨论】:
标签: excel excel-formula match worksheet-function
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)
【讨论】:
ISNUMBER 吞下错误并返回 TRUE 或 FALSE:=ISNUMBER(FIND(MID(C1,1,1),F1))+ ...
如果显示的字母(在 C1 中)始终为 6 个或更少字符,@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),"")
)
任何一种方法都可以根据需要轻松扩展。
【讨论】:
仅供参考,这是任何长度响应的解决方案。它还具有比其他给定解决方案更短的优势(我认为)
{=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+Enter
输入公式解决方案创建两个数组,如下所示
Shown Inputted
X T
Z E
H H
T Z
E
J
然后循环遍历每个 Inputted 字符,在 Shown 数组中寻找匹配,如果匹配则返回 1,否则返回 0。最后SUM 添加所有的 1(匹配项)以给出所需的结果。
【讨论】: