Excel 2013:生成满足所有要求的列表

时间:2012-11-02 14:10:16

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

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


验证答案

我添加了一个列'正确',用于验证答案是否得到了正确回答。如果正确则返回 QuestionID ,如果为FALSE,则返回'不正确'

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

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

拉可能的赢家

我需要获得所有正确回答所有问题的PersonID。如果他们错误地回答了问题,他们将被取消资格。如果他们没有回答问题,他们就会被取消资格。

TableWithData

1 个答案:

答案 0 :(得分:0)

我尝试按照工作表图像中的可见布局编制自己的工作表: 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列中的行号搜索的正确答案。如果问题得到正确回答,将显示问题代码。公式将复制到列T:X。

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

Y栏:获奖者和DQ。数组公式:

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

现在可以应用AutoFilter。