举例说明。有表格如图所示:
a1:c7是一个明细表
G2的公式:=MAX(C2:C7) 取C列最大值,即最好成绩
E2的公式:=DGET(A1:C7,2,G1:G2) 找数据库A1:C7中成绩=G2的姓名
F2的公式:=DGET(A1:C7,1,G1:G2) 找数据库A1:C7中成绩=G2的班级
全是数组公式数组公式,公式输完后,光标放在公式编辑栏同时按下CTRL+SHIFT+回车键,使数组公式生效
F2=MAX(($B$2:$B$18=E2)$C$2:$C$18)
F5=MIN(IF($B$2:$B$18=E5,$C$2:$C$18,4^8))
向下复制
G2=INDEX($A:$A,SMALL(IF(($B$2:$B$18=$E2)($C$2:$C$18=$F2),ROW($C$2:$C$18),4^8),COLUMN(A1)))&""向右向下复制
你选中所有数据,点击工具--排序然后按照分数排序即可
先把第一个表格里面的顺序调整为每人分数为A列,B列有01---20各班,C列是全校学生姓名。第二个表格如你所假设。
在第二个表格里,B列里面先用函数max,然后再在A列和C列中用函数vlookup。
用法:
=max(选中第一张表中A列的所有分数)
=vlookup(选中第二张表格中的B列同一行的一个单元格,选中第一张表格里面从A列到C列所有内容,填写第一张表格里面从A列到B列或C列的列数,0)
但是这种方法如果碰到一个班有两个最高分就只能找出一个人的名字,所以你最好事先过一遍,保证最高分没有重叠。假设分数写在B列,名字写在A列,数据在2至33行
则
B34单元格写入公式
=MAX(B2:B33)
B35单元格写入公式
=MIN(B2:B33)
C34单元格写入公式
=INDEX(A:A,MATCH(B34,B2:B33,))
C35单元格写入公式
=INDEX(A:A,MATCH(B35,B2:B33,))
第一列是姓名,第二列是内容,我想把第一列的姓
答:选中第三列,单元格格式-对齐-自动换行勾上 C1输入 =A1&":"char(10)&B1 向下填充,完成后,将C列选择性粘贴成数值
按分数查人名,由于分数相同的人有可能不至一个,所以只能用”过滤“的方法来查看人名,不可能自动把查到的结果放到指定的(多个)格中。最高分可以在”过滤“下的列表里看到,选最高分后,相关的人名就过滤出来了。
如果一定要求自动的话,就要用编程的方法了。
以下公式中诸如E2:E23等区域根据表格具体情况进行调整。
1、名次K2中输入:
=RANK(J2,$J$2:$J$23)
下拉即可。
2、"语文"和"数学"成绩都大于或等于85的学生人数:
=SUMPRODUCT((E2:E23>=85)(F2:F23>=85))
3、"体育"成绩中男生的平均分:
=AVERAGE(IF(D2:D23="男",I2:I23))
这是数组公式,输入完毕后要按Ctrl+Shift+Enter结果。
4、"体育"成绩中男生的最高分:
=LARGE(IF(D2:D23="男",I2:I23),1)
这是数组公式,输入完毕后要按Ctrl+Shift+Enter结果。
5"体育"成绩大于或等于90的"女生"的人数:
=SUMPRODUCT((D2:D23="女")(I2:I23>=90))
6、"体育"成绩大于或等于90的"女生"的姓名:
(此解有些麻烦,暂时没找到其它方法。)建一个辅助列,在M2中输入公式:
=SUMPRODUCT(($D$2:$D2="女")($I$2:$I2>=90)),
下拉复制至M23
"体育"成绩大于或等于90的"女生"的姓名:
(横向显示,输入公式后,向右拉填充公式)
=INDEX($C$2:$C$23,MATCH(COLUMN(A1),$M$2:$M$23,0))
或者:(纵向显示,输入公式后,向下拉填充公式)
=INDEX($C$2:$C$23,MATCH(row(A1),$M$2:$M$23,0))
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)