注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Oh! I see you!

Hi! ppmm~~

 
 
 

日志

 
 

Excel同一条件返回多个结果的查找引用  

2009-12-09 03:32:15|  分类: Excel |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

本文链接:http://oicu.cc.blog.163.com/blog/static/123039471200911933215610/

问题:第一个表格第一列中是人名,第二列是考试的分数,希望在第二个表格中把第一个表格中
分数为60分的人名放在一列中。

公式来源:ExcelHome
假设有7行数据,Sheet2!A1填写公式:
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$1:$B$7=60,ROW($1:$7),4^8),ROW(1:1)))&""
是数组公式,输入后按Ctrl+Shift+Enter确认,再下拉向下填充。

使用前提是 A65536 单元格只能为空。

公式解释:
4^8=2^16=65536

IF(Sheet1!$B$1:$B$7=60,ROW($1:$7),4^8)
构造一个储存着行数的数组,不满足条件(不是60分)的都用Excel2003里的最大行数65536代替实际行号,比如

      B列       构成数组结果
1    59         65536
2    60         2
3    82         65536
4    60         4

ROW(1:1)控制SMALL函数取行号数组里的第几个最小值,返回的是满足条件(60分)的行号,这里不能用
绝对引用,这样填充的结果就能连续。取到行号后用INDEX或INDIRECT查找A列的对应值。

&""的作用是转成文本格式,消去显示的0值。

为了消去#NUM!错误,可以写成:
=IF(ROW(1:1)>COUNTA(Sheet1!A:A),"",INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$1:$B$7=60,ROW($1:$7),4^8),ROW(1:1))))&""


发信人: hnny (紫丁香), 信区: OfficeSoft
标  题: excel 求助,谢谢
发信站: 水木社区 (Tue Jan 12 10:39:21 2010), 站内

动态统计一下所有某项值出现的位置

比如:输入
A    B
1    中国
2    台湾
3    中国
4    台湾
5    台湾
输出
C       D
中国    台湾
1       2
3       4
        5

如果A,B增加
A   B
6   中国
则自动变为
C
中国
1
3
6
主要就是完成动态生成的功能

 

发信人: oicu (Oh! I see you!), 信区: OfficeSoft
标  题: Re: excel 求助,谢谢
发信站: 水木社区 (Tue Jan 12 16:52:06 2010), 站内

Web下查看公式,公式中的2个$7根据情况修改大小。

C2
{=IF(ROW(1:1)>COUNTA($A:$A),"",INDEX($A:$A,SMALL(IF($B$1:$B$7=C$1,ROW($1:$7),4^8),ROW(1:1))))&""}

向D2填充,向下填充。

  评论这张
 
阅读(3565)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018