找回密码
 立即注册
搜索
查看: 166|回复: 18

EXCEL问题

[复制链接]

37

主题

332

回帖

526

积分

高级会员

积分
526
发表于 2006-10-10 17:41:50 | 显示全部楼层 |阅读模式
有一EXCEL表格 从A到F共6列,共20行,A列为编号(从001,002到020),E列为B、C、D三列的和,每行都如此。

难点在于
F列 取E列中最大的数值(前六位),然后显示出该行的编号(即A列的编号),如下所示
----------------------------------------------------
    |   A  |  B  |  C  |  D  |  E  |  F  |
1  | 001 |  3  |  1  |  2  |  6  | 001|
2  | 002 |  1  |  2  |  2  |  5  |      |
3  | 003 |  6  |  3  |  0  |  9  | 003|
4  | 019 |  4  |  4  |  1  |  9  | 019|
5  | 020 |  1  |  1  |  2  |  4  |      |
。。。。
。。。。

54

主题

729

回帖

1026

积分

金牌会员

积分
1026
发表于 2006-10-10 17:47:42 | 显示全部楼层
原帖由 power2010 于 2006-10-10 17:41 发表

难点在于
F列 取E列中最大的数值(前六位),然后显示出该行的编号(即A列的编号),如下所示
---- ...


没看懂
有贼心没贼胆的是好人
回复

使用道具 举报

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2006-10-10 17:51:09 | 显示全部楼层
你只要前6位吗?

..你的题目不严谨!! 如果你只要显示出前6位的编号,那么如果有重复怎么办??

[ 本帖最后由 妮可宝贝 于 2006-10-10 17:55 编辑 ]
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2006-10-10 18:02:50 | 显示全部楼层
还要自己做EXCEL表.真麻烦...  .楼主真凶..居然这样演示表格..

如图所示,F列显示出了前6位的对应A列的编号,只是因为有并列现象,所以实际显示的不止6个.
F列中的公式: =IF(E1=LARGE(E1:E20,1),A1,IF(E1=LARGE(E1:E20,2),A1,IF(E1=LARGE(E1:E20,3),A1,IF(E1=LARGE(E1:E20,4),A1,IF(E1=LARGE(E1:E20,5),A1,IF(E1=LARGE(E1:E20,6),A1,""))))))

公式的意思就是拿E列的当前格和E1:E20这个范围内的最大值比较,相等,当前格就为A1格内容, 不等的话继续和第2大值,第3大值……依次比较, 直到比较完第6大值后,仍不相等,则当前格内容为空..

[ 本帖最后由 妮可宝贝 于 2006-10-10 21:37 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

37

主题

332

回帖

526

积分

高级会员

积分
526
 楼主| 发表于 2006-10-10 18:17:49 | 显示全部楼层
超级强。。。。谢谢班主,我弄了半天,没弄好!,呵呵,本想如果搞不定就用DELPHI去写一个了,没想到EXCEL也强。。。


感谢!
回复

使用道具 举报

1546

主题

1万

回帖

1万

积分

管理员

积分
17171
发表于 2006-10-10 18:46:32 | 显示全部楼层
有个简单点的办法,不用记公式。
1、定位当前单元格于E1,点排序(升序排序),E列就从大到小,从而得到前六位。
2、在F1输入“=A1”,得到A列对应的数值。
3、拖动E1序列填充到第六行(鼠标指向E1单元格的右下角呈十字状时),得到前六名所有对应的A列数值。
4、定位当前单元格为A1,点排序(升序排序),完成。

注意,排序时,不能多选单元格,就是只能以当前单元格为序列值进行整行排序。不然,是对选择范围内的数据排序,会造成同一行内的数据被排乱,全部出错。

如果数据A列没序列可言,换句话说,不能以任何序列恢复到最初的排列方式,那还是用妮可的办法较好。但也可以自己添加一个A列,定义一个序列来弥补,但要注意,和原来的整体数据不能有空白单元格或者空白列的间隔,不然,不会一起参与排序。
回复

使用道具 举报

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2006-10-10 21:34:33 | 显示全部楼层
自己更正自己的错误,

F列中的公式:=IF(E1=LARGE($E$1:$E$20,1),A1,IF(E1=LARGE($E$1:$E$20,2),A1,IF(E1=LARGE($E$1:$E$20,3),A1,IF(E1=LARGE($E$1:$E$20,4),A1,IF(E1=LARGE($E$1:$E$20,5),A1,IF(E1=LARGE($E$1:$E$20,6),A1,""))))))

:)

当时快下班了,于是做的公式没有仔细检查, 刚刚才发现这个致命的错误呵..因为没有设置为绝对引用,所以F1单元格的公式拖动到F2时, 设置的取值范围也会相应增加..所以在输入完E1:E20的时候,应该把光标移动到E1位置,然后按下F4,同样,E20位置也按下F4,这样就能把引用位置固定在E1:E20之间,无论怎么拖动和复制公式都能保持不变呵..

重新上示例..
:)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

1546

主题

1万

回帖

1万

积分

管理员

积分
17171
发表于 2006-10-11 00:15:45 | 显示全部楼层
我想了想,还有更简单的公式,效果一样。
在F1中输入
=IF(RANK(E1,$E$1:$E$20)<7,A1,"")
此公式含义为:把E1值和E1:E20做比较,用RANK取名次,小于第7名,也就是前6名的,显示A1值,否则显示为空,以此类推。
然后向序列填充,就可以了。
按妮可做的表里数据,有相同名次,所以产生了7个。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2006-10-11 00:24:45 | 显示全部楼层
;02

E这个强一些.. 看来实现某一功能有N种方法呵.. 没有最方便的..只有更方便的呵..
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

1546

主题

1万

回帖

1万

积分

管理员

积分
17171
发表于 2006-10-11 00:27:26 | 显示全部楼层
再修改了一下。
=IF(RANK(E1,$E$1:E$20)<7,"第"&RANK(E1,$E$1:E$20)&"名","")&" "&IF(RANK(E1,$E$1:$E$20)<7,A1,"")
没什么特别意思,就是增加了显示名次,看上去直观点。呵呵。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-22 02:51 , Processed in 0.087004 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表