excel 列出空值最多的前三个名称

siv3szwd  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(125)

我有两个班级(ABC和XYZ)和一些学生参加了这些班级的考试。但是,由于个人原因,一些学生不能参加几次考试。我想找到前3名未参加考试的学生的名字和前3名未参加考试的学生的名字。下面是我试图做的一个说明:

在单元格F3中,我编写了下面的代码来获取前3个未进行测试的数量:

=LARGE(COUNTIFS(C:C,"="&"",B:B,UNIQUE(FILTER(OFFSET($B$2,0,0,COUNTA(B:B)-1,1),OFFSET($A$2,0,0,COUNTA(A:A)-1,1)=$F$2))),ROWS(B$2:B2))

我的目标是现在列出前3名非考生的名字。我已经尝试了上述代码的变化,但似乎不能使它工作。我有excel版本2209,如果这有帮助。谢谢你在先进!

wfveoks0

wfveoks01#

试试看:

E2中的公式:

=LET(x,UNIQUE(FILTER(B:B,(A:A=F1)*(C:C=""))),SORTBY(x,MAP(x,LAMBDA(y,COUNTIFS(A:A,F1,B:B,y,C:C,""))),-1))

或者,对于名称和计数:

=LET(x,UNIQUE(FILTER(B:B,(A:A=F1)*(C:C=""))),SORT(HSTACK(x,MAP(x,LAMBDA(y,COUNTIFS(A:A,F1,B:B,y,C:C,"")))),2,-1))
xurqigkl

xurqigkl2#

您可以在E2单元格中使用以下内容:

=TAKE(SORT(HSTACK(UNIQUE(B2:B14),
 COUNTIFS(B2:B14, UNIQUE(B2:B14), C2:C14, "")),2,-1),3,1)

或者使用LET来避免重复并首先定义输入:

=LET(x, B2:B14,y, C2:C14,
 TAKE(SORT(HSTACK(UNIQUE(x),COUNTIFS(x, UNIQUE(x),y,"")),2,-1),3,1))

下面是输出:

COUNTIFS计算唯一名称的空白总数,其余部分只是为了使结果适应输出需要,即通过SORT排序,挑选前三行,并通过TAKE仅选择名称。
如果需要特定类的结果,可以按如下所示或使用引用向COUNTIFS添加附加条件。例如,对于ABC类:

=TAKE(SORT(HSTACK(UNIQUE(B2:B14),
 COUNTIFS(B2:B14, UNIQUE(B2:B14),A1:A14, "ABC", C2:C14,"")),2),3,1)

相关问题