Excel区域内查找数据
2019-09-19 · 知道合伙人软件行家
本问题有两个难点,题主设了20分的悬赏,一个难点值10个悬赏,哈哈。
第一个难点,成绩分散在3列中,要统一来比大小,是有一定难度的。
第二个难点,成绩可能有相同的,相同成绩可能在不同的班中(不同行),也可能在同一班中(不同列)。如何把相同成绩的不同姓名取到,比第一个难点难度更大。
如图:
成绩列:
=LARGE(CHOOSE({1,2,3},D$3:D$8,F$3:F$8,H$3:H$8),ROW(1:1))
班级列:
=INDIRECT("B"&INT(MOD(LARGE(CHOOSE({1,2,3},D$3:D$8*10000+ROW($3:$8)*100+COLUMN(D:D),F$3:F$8*10000+ROW($3:$8)*100+COLUMN(F:F),H$3:H$8*10000+ROW($3:$8)*100+COLUMN(H:H)),ROW(1:1)),10000)/100))
同时按Ctrl+Shift+Enter三键输入数组公式
姓名列:
=INDIRECT(TEXT(MOD(LARGE(CHOOSE({1,2,3},D$3:D$8*10000+ROW($3:$8)*100+COLUMN(D:D),F$3:F$8*10000+ROW($3:$8)*100+COLUMN(F:F),H$3:H$8*10000+ROW($3:$8)*100+COLUMN(H:H)),ROW(1:1)),10000)-1,"r0c00"),)
同样数组公式
3列3个公式一起下拉
建议不要这样设计工作表,这是自己给自己添麻烦。
而是逆向思维,把你的记录和需要的结果反过来,先所有数据放到一个区域中,如现有表格基础上,B列的班级,先把1班全部记录完,C列对应是姓名,D列是成绩,下面再记录2班的、3班的、4班的,等等。这样可以直接在E列得到排名。然后复制或其他很多方法得到一个副本,对排名排序,简单易行。再用数据透视表,可以得到不同的透视结果,虽然可能与你的原始表有差别,但应该可以达到更好的统计分析效果。当然,各有所爱,仅只是建议而已。