Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 12534|回复: 5

[已解决]查找和循环语句

[复制链接]
发表于 2012-12-12 11:42 | 显示全部楼层 |阅读模式
本帖最后由 sinhanbing 于 2012-12-12 13:45 编辑

问题如附件。
BC列3-26行有对应的数据,要在F29-M46中显示28行内容与C列相同时候的B列内容,使用数组模式。

本人EXCEL新人,这种太复杂了本人真心不会!求教各位帮忙了

感谢二楼的朋友,修改了下后,我放在附件里试了下,发现还是有问题,F29-M46无法显示正确的内容。所以还是要请帮忙解决
最佳答案
2012-12-12 13:55
公式改一下:
=INDEX($B$3:$B$26,SMALL(IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999),ROW(A1)),)

求教.zip

7.12 KB, 下载次数: 77

问题

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2012-12-12 11:59 | 显示全部楼层
  1. E1=index(D:D,small(if(C1:C10="A",row(C1:C10),999),row()),)&""
复制代码
数组公式,以Ctrl+shift+enter完成键入
回复

使用道具 举报

发表于 2012-12-12 13:55 | 显示全部楼层    本楼为最佳答案   
公式改一下:
=INDEX($B$3:$B$26,SMALL(IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999),ROW(A1)),)
回复

使用道具 举报

 楼主| 发表于 2012-12-12 14:00 | 显示全部楼层
展翅 发表于 2012-12-12 13:55
公式改一下:
=INDEX($B$3:$B$26,SMALL(IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999),ROW(A1)),)

谢谢您的解答,不过我还想问问IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999)怎么解释
另外还有SMALL(IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999),ROW(A1)),)的用法。
因为我的这个课题可能很多地方都用得到这些
回复

使用道具 举报

发表于 2012-12-12 14:17 | 显示全部楼层
IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999)
如果C列的内容=F28单元格内容的,就获取对应的行号。公式最终结果就得到类似这样的结果:{2,3,999,5,999,7...}。

这个结果在放到small公式中,相当于是small({2,3,999,5,999,7...},row(a1)),下拉的时候,依次得到最小的数、第二小的、第三小的...,最终结果提供给index引用。
回复

使用道具 举报

 楼主| 发表于 2012-12-12 16:43 | 显示全部楼层
展翅 发表于 2012-12-12 14:17
IF($C$3:$C$26=F$28,ROW($C$3:$C$26)-2,999)
如果C列的内容=F28单元格内容的,就获取对应的行号。公式最终 ...

谢谢!谢谢!授之以渔比授之以鱼还是要好些!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-19 13:38 , Processed in 0.152666 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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