【问题标题】:Excel 2013: Generate list meeting all requirementsExcel 2013:生成满足所有要求的列表
【发布时间】:2012-11-02 14:10:15
【问题描述】:

我需要创建一个电子表格,随机抽取正确回答所有问题的获胜者。


验证答案

我添加了一个列 'Correct' 来验证答案是否得到正确回答。如果正确则返回 QuestionID,如果错误则返回 'Incorrect'

我有另一个表格,其中包含验证数据库结果的答案。

  • 9747 |错误 |正确 |错了
  • 9748 |正确 |错误 |错了
  • 9749 |错误 |错误 |正确
  • 9751 |正确 |错误 |错了
  • 9752 |错误 |错误 |正确
  • 9753 |错误 |错误 |正确

拉出可能的赢家

我需要获取正确回答所有问题的所有 PersonID。如果他们错误地回答了一个问题,他们将被取消资格。此外,如果他们未能回答问题,他们将被取消资格。

【问题讨论】:

  • 为什么不只过滤你的表?
  • 每个人都只回答一个 QuestionID 吗?如果不是这样,他们是否被取消了一轮或所有问题的资格?
  • @DanielCook 过滤器只删除不正确的答案。我仍然需要检查每个 PersonID,看看它是否有 6 个问题回答正确。
  • @JüriRuut 每个人回答所有 6 个 QuestionID。如果他们回答

标签: excel dynamically-generated office-2013 excel-2013 vba


【解决方案1】:

我尝试按照工作表图像中可见的布局并编译我自己的工作表: http://www.bumpclub.ee/~jyri_r/Excel/Answers_to_quiz_correct_wrong.xls 有添加的块用浅绿色标记,错误情况用黄色标记。

将 C1:C200 定义为 PersonList。

除非另有说明,否则所有公式都在第 2 行。

J 列:由

选择的正确答案
=IF(AND(E2="Right",F2="Right",G2="Right"),B2,"")

L 列:按数组公式编制的唯一参与者列表(Shift-Control-Enter,Excel 本身添加的大括号,而不是用户添加的):

  {=INDEX(PersonList,MATCH(0,COUNTIF($L$1:L1,PersonList),0))}

M 列:找到的第一个问题的答案列表(第一个表示在表格中的位置):

=MATCH($L2,$C$2:$C$2000,0)+1

N 列:其他问题的答案列表,进一步复制到 O:R 列

=MATCH($L2,INDIRECT("$C"&M2+1&":$C$2000"),0)+M2

S列:M列中的行号寻求的正确答案。如果问题w被正确回答,将显示问题代码。公式将复制到 T:X 列。

=(INDEX($J$1:$J$200,M2))

Y 列:获胜者和 DQ。再次数组公式:

{=IF(SUM(IF(S2:X2="",1,0))=0,"Winner","DQ")}

现在可以应用自动筛选。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    相关资源
    最近更新 更多