我正在尝试在 Excel 中测量问卷答案的有效性。我的测试之一是检查回答者是否连续对许多问题选择了相同的答案。我试图检测 6 个问题的模式,其中可能的答案是 1-6。我不是在寻找所有答案都是特定数字的情况,而是寻找所有 6 个答案都相同的情况,例如所有 5 都是 4 等等。
问题的答案位于相邻的列中,即 C、D、E...H,每个受访者都在他们自己的行中。
此外,我想看看 6 个答案中有 5 个相同的情况,因为我相信一个人可能会选择一个不同的答案来让它看起来更可信。我的猜测是,如果这个问题可以解决 6 个案例中的 5 个,那么 6 个案例中的 6 个就更简单了
我可以分享我目前的失败,即使用 if 语句和/或 countif 尝试匹配 a=b、b=c 等。有一篇文章描述了这种方法比较两列的匹配和差异
我愿意接受使用 vba 的解决方案,因为我过去曾使用过它,但它必须是循序渐进的,我有一段时间没用 excel 了,现在又回到了 excel
干杯
答案1
我建议一种不同的方法,这种方法简单易行,只需调整数据范围即可扩展到任意数量的问题。您将问题定义为匹配的响应数。此解决方案从另一个方向看待它,即不匹配的数量。如果没有不匹配,则意味着它们都相同。如果有一个不匹配,则意味着除了一个之外的所有匹配(您的 6 个案例中有 5 个,但一个不匹配适用于任意数量的问题)。
J2中的公式为:
=COUNTA(C2:H2)-MAX(FREQUENCY(C2:H2,C2:H2))
我不确定您想如何处理缺失的答案。此解决方案会忽略缺失的答案,并按照您描述的方式处理实际答案。COUNTA 会计算实际答案的数量。如果您想将空白答案视为不同的答案,可以将 COUNTA 替换为实际的问题数量。
FREQUENCY 函数确定每个唯一响应的计数。MAX 给出最大频率,它不关心代表哪个特定响应。任何小于 all-same 的值都会给出大于零的结果。
如果您只想区分0
和1
,则可以使用 IF 测试或 CHOOSE 包装此公式。您可以简单地>1
用空结果 ( ""
) 隐藏任何结果,或显示0
和 的特定文本响应1
。
答案2
一个非常长的 If/And/Or 语句就可以实现这一点。
=if(Or(And(A1=B1,B1=C1,C1=D1,D1=E1),And(B1=C1,C1=D1,D1=E1,E1=F1).....),"Lots of things in a row match","Not a lot of things in a row match")
随着你的理解,事情会变得越来越简单,因为你可以将前一个陈述的大部分内容复制AND
到下一个陈述中,然后写下一个比较。例如,对于第三个陈述,AND
你只需要C1=D1,D1=E1,E1=F1
从前一个陈述中复制AND
,然后在末尾添加F1=G1
。重复上述步骤。
如果你把数据也放到 Excel 表中,事情就会变得容易得多
答案3
另一种方法使用SUMPRODUCT
:
T
这将检查在列和之间的任何一行中是否有六个连续的相同的答案AI
:
=IF(SUMPRODUCT(--(T2:AC2=U2:AD2),--(U2:AD2=V2:AE2),--(V2:AE2=W2:AF2),--(W2:AF2=X2:AG2),--(X2:AG2=Y2:AH2))>0,"six in a row","")
以下是SUMPRODUCT
。
使用等式来生成真(1
)或假(0
)结果,然后您可以通过 运行它们SUMPRODUCT
。
编辑:简要解释一下,还注意到公式中的问题并进行了修复