向EXCEL高手请教一个怎样应用函数公式的问题: A B C D E F G H I 语文 100 90 80 100 75 100 90 85 60 数

A B C D E F G H I
语文 100 90 80 100 75 100 90 85 60
数学 90 100 90 80 85 79 65 100 95
英语 95 100 70 90 90 85 70 98 100
说明:A、B、C、D等代表学生,列是相对应学科成绩。
我的问题是:怎样用EXCEL函数或公式方法实现各学科按成绩从大到小顺序的学生排列?
即实现下列的结果:
语文 A D F B G H C E I
数学 B H I A C E D F G
英语 B I H A D E F C G

第1个回答  2011-05-17
=INDEX($B$1:$J$1,MATCH(LARGE($B2:$J2-COLUMN($A:$I)*0.01,COLUMN(A1)),$B2:$J2-COLUMN($A:$I)*0.01,))
按ctrl+shift+enter输入后右拉填充8列,再下拉填充。追问

我用MACH函数出现成绩相同的就只显示一个,咋解决?另外能否请高手解析一下=INDEX($B$1:$J$1,MATCH(LARGE($B2:$J2-COLUMN($A:$I)*0.01,COLUMN(A1)),$B2:$J2-COLUMN($A:$I)*0.01,))函数的含义?谢谢

追答

正是因为match在有相同值时只能取一个,所有才在各自成绩所在列号上乘0.01做一个修正,让相同的变成不同的,这样就能一一对应了。

追问

示例:
0 1 2 3 4 5 6 7 8 9 10
1 -2 -22 19 -14 -6 -5 -3 8 0 -4
2 0 18 -15 4 6 -9 2 -10 0 -1
3 3 3 -7 1 -3 8 -3 22 -21 -7
问题是:怎样通过EXCEL函数公式法达到根据第1-10行每行数据由大到小显示对应的第0行数据?即最终得到如下表的结果:
0 1 2 3 4 5 6 7 8 9 10
1 3 8 9 1 7 10 6 5 4 2
2 2 5 4 7 1 9 10 6 8 3
3 8 6 1 2 4 5 7 3 10 9
我把问题又改进一下,不知这样的问题咋解决,希望得到你的帮助,谢谢!

追答

……这两个也没啥区别呀?不过好像更省事些。
=MATCH(LARGE($H3:$Q3-COLUMN($A:$J)*0.01,COLUMN(A1)),$H3:$Q3-COLUMN($A:$J)*0.01,)
按ctrl+shift+enter输入后右拉填充10列,再下拉填充。

追问

若不用数组公式法能实现吗?

追答

不知道。没试。

本回答被提问者采纳
第2个回答  2011-05-17
你说的有点像 财务报表的勾稽关系 建议在A单元格设置 =SUM(D7:E7)-SUM选中A列,格式——条件格式——公式:=OR(A1
第3个回答  2011-05-17
把字段和记录排放 换一下 就容易了...
就是 行的 放 科目
列 放 成绩!
然後直接排序...啥都不用..
第4个回答  2011-05-17
直接排序不就行了?排序的时候按选项,里面有按行排序的选项的。追问

好像不是那么简单,实现不了,还有啥好办法呀

追答

仔细看了一下,原来你是要把学生名字取过来,而不是简单的成绩排序,用公式的话,重复的成绩很难处理,只能麻烦一点,在每门课上面插入一行姓名,然后每门课连同姓名排一次序,排完之后把最上面那门课上面的那个单元格删除,让第一列每门课程名称都向上移一个单元格,按照课程排一下序列,把成绩删除即可。

第5个回答  2011-05-21
用排序功能,选择按行排序。
相似回答