我使用以下公式从列表中输出随机项,具体取决于某些因素。在此示例中,学生姓名位于A栏,考试成绩位于B栏。随机学生的选择条件是他或她的考试成绩超过80%:
{=INDEX(Database!A1:A100,SMALL(IF(Database!B1:B100>=80%,ROW(Database!A1:A100)-MIN(ROW(Database!A1:A100))+1),RANDBETWEEN(1,COUNTIF(Database!B1:B100,">=80%"))))}
除了这些专栏,我还有C栏的教育水平(选项是小学,高中和大学)。如何修改上述公式,输出一个随机学生,条件是考试成绩超过80%和大学教育?
答案 0 :(得分:2)
您可以使用此版本
=INDEX(Database!A1:A100,SMALL(IF((Database!B1:B100>=80%)*(Database!C1:C100="College"),ROW(Database!A1:A100)-MIN(ROW(Database!A1:A100))+1),RANDBETWEEN(1,COUNTIFS(Database!B1:B100,">=80%",Database!C1:C100,"College"))))
公式
使用IF
向SMALL
函数添加了额外条件,并在最后添加COUNTIFS
函数中的相同条件(而不是COUNTIF
)
答案 1 :(得分:2)
如果您使用的是Excel 2007或更高版本:
=INDEX(Database!A1:A100,SMALL(IF(Database!B1:B100>=80%,IF(Database!C1:C100="College",ROW(Database!A1:A100)-MIN(ROW(Database!A1:A100))+1)),RANDBETWEEN(1,COUNTIFS(Database!B1:B100,">=80%",Database!C1:C100,"College"))))
如果不是:
=INDEX(Database!A1:A100,SMALL(IF(Database!B1:B100>=80%,IF(Database!C1:C100="College",ROW(Database!A1:A100)-MIN(ROW(Database!A1:A100))+1)),RANDBETWEEN(1,SUM((Database!B1:B100>=80%)*(Database!C1:C100="College")))))
两者都是数组公式。
此致