楼主 donghan |
1、根据学生成绩(分数均为整数,包括0分)在H2:K7得出要求的排名表,要求连表头(姓名、成绩)一起写进去,结果可以作为向后处理的中间参数(再说明一下:就是单元格数组公式按F9能得出图片上编辑栏中的效果)。 2、同分数要区分排名,即不允许有相同的排名,同分数排名前后均可(即赵三和李七谁得7、8名均可)。 3、原始数据引用区域必须为B2:E7 4、字符数<150得2分,<145得4分,精彩公式可再加分。 排名.rar |
2楼 xihabang |
等高人了...呵呵 |
3楼 liuguansky |
=IF(ISTEXT(B2:E7),B2:E7,LOOKUP(TEXT(B2:E7,"0;;;!0")+ROW(1:6)%+COLUMN(A:D)%,SMALL(TEXT(B2:E7,"0;;;!0")+ROW(1:6)%+COLUMN(A:D)%,ROW(1:24)),TEXT(25-ROW(1:24),"第0名"))) 163字符。待修订。 |
4楼 roc.jame |
用RANK 不行吗 |
5楼 高玉甫 |
不知楼主意思是何,郁闷。 |
6楼 chg515 |
不能打开? |
7楼 杨弼芳 |
H2=IF(ISERROR(RANK(B2,$B$2:$E$7)),B2,RANK(B2,$B$2:$E$7)+COUNTIF($B$2:B2,B2)-1) |
8楼 高玉甫 |
朋友,我刚才下载了您的附件,准备马上来研究一下,可是,我看到了如我附图那样的提示我心里有点不爽:保守?资源不准共享?太不那个了。这样不好.png |
9楼 donghan |
为了大家一起研究此题的最简方法,现开放权限,我先给出我的答案,有能力者再继续简化。 目前答案: 多单元格数组公式: 1、=TEXT(MATCH(ROW()&{2,3,4,5},RIGHT(SMALL(-(TEXT(B2:E7,"0;;1;-")&ROW()&{2,3,4,5}),ROW(A:A)),2),),"[<11]第0名;"&B2:E7) 2、=IF(B2:E7<"","第"&MATCH(B2:E7+COLUMN()%+ROW()%%,LARGE(IF(B2:E7<"",B2:E7,-1)+COLUMN()%+ROW()%%,ROW(A:A)),)&"名",B2:E7) 请高手们继续简化,寻求最简公式 |
10楼 rongjun |
这两个公式都不能满足你的第1个要求。必须得到内存数组才能作为中间参数进行下一步计算,有些参数是不能省略的,省略了就成为多单元格数组而非内存数组。 |
11楼 donghan |
=TEXT(MATCH(ROW(2:7)&{2,3,4,5},RIGHT(SMALL(-(TEXT(B2:E7,"0;;;-")&ROW(2:7)&{2,3,4,5}),ROW(A:A)),2),),"[<11]第0名;"&B2:E7) |
12楼 高玉甫 |
学习了,谢谢您。 |
13楼 Timon13 |
我这么试 看怎么样 指点指点 =IF(ISNUMBER(B2),"第"&(RANK(B2,($B$2:$E$7),0)+COUNTIF($B$2:B2,B2)-1)&"名",B2) ISNUMBER判断单元格是不是数字 是 则进行排序(RANK函数) 使用COUNTIF函数解决重排 不是数字则显示原单元格内容 再拖动复制公式完成其他排序 花了些时间,还请各位指点指点。 |
14楼 Timon13 |
回复了才看到7楼 杨弼芳 有下面的公式 IF(ISERROR(RANK(B2,$B$2:$E$7)),B2,RANK(B2,$B$2:$E$7)+COUNTIF($B$2:B2,B2)-1) 共75字符 IF(ISNUMBER(B2),"第"&(RANK(B2,($B$2:$E$7),0)+COUNTIF($B$2:B2,B2)-1)&"名",B2) 共74字符 思路一致 判断函数不同而已 学习了! |
15楼 高玉甫 |
不错,又学到一点,谢谢了。 |
16楼 donghan |
注意我要求的是得到内存数组哦 |
17楼 悟空师弟 |
来竞赛的都是高人,努力学习中…… |
18楼 tltt0503 |
观察楼上那么多层所给出的诸多公式,大多都没有领会楼主的题意。 题目的意思是求一个内存数组。也就是说,写出的公式不可以用“拖拽一个单元格句柄的方式来填充其余单元格”这种方式。 内存数组是选定H2:K7区域后一次性输入的,没有“拖拽”之类的过程。 以下公式,考虑到了数据源的特殊性:观察数据源发现,数据源在同列不同行存在相同“成绩”,在不同列不同行存在相同“成绩”,但是在不同列相同行不存在相同“成绩”,因此,可以选定H2:K7区域后,输入以下公式。 {=IFERROR("第"&(RANK(B2:E7,$B$2:$E$7)+COUNTIF(INDIRECT("R1C1:R"&(ROW()-1)&"C"&(COLUMN()-6),0),B2:E7))&"名",B2:E7)} 该公式长度105个字符。 声明:当修改数据源成:不同列相同行存在相同成绩时,此公式需要做修改才能使用。 |
19楼 悟空师弟 |
内存数组公式:(97字符)
普通公式:(60字符)
详见附件: 排名.zip |
20楼 悟空师弟 |
内存数组公式:(89字符)
|
21楼 fly_fu |
来竞赛的都是高人,努力学习中…… 没有学不好,只有不好学! |
22楼 w83365040371 |
|