excel多个窗口独立显示_EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)...

f5c3fef7af5c8b67f08d4c56ec363759.png

这是萌二很用心梳理编辑的一篇文,看到我的标题前面冠上了[tree],被EXCEL大咖论坛收录进知识树,很开心。你的努力总会有机会被看到,共勉!

0c9c2a8af01021edc0357f944aadea1a.png

f88e75b2c8d53fd78a57364feb82e459.png

aefadd8c93b3e1113ff2d80a82654010.gif

这是个万金油公式,谁用了谁知道!

INDEX+SMALL+IF+ROW】组合函数:

①难度:★★★☆☆

②作用:实现查找时返回多个符合条件的结果。

③结果放在行的写法:

INDEX(结果列,SMALL(IF(条件,ROW(条件列),4^8),COLUMN(A1)))&""

④结果放在列的写法:

INDEX(结果列,SMALL(IF(条件,ROW(条件列),4^8),ROW(A1)))&""

⑤结束键:数组公式须同时按CTRL+SHIFT+ENTER三键结束。

fbf0cb8599f338ff93e4652ced72f74d.gif

这个组合函数在简单的报表里用得不频繁,所以每到用时方恨练得少。接下来直接举“栗子”啦,想要进阶的同学多练习几遍,能从头到尾自己打代码把公式写下来才算真正掌握!

温馨提示:书写公式必须把输入法调整到英文半角状态,否则显示出错。

例题:A、B、C列是源数据,要求在E列提取A列“省份”数据(重复的只保留一个),并查找各省份对应的城市(在B列找),把结果放到同一行不同单元格里。

1.原始表

9b12f10a8274be57bfb594d2f1f7e4a2.png
图1--原始表

2.结果表

0534fe8a11a95f72559c16263006c806.png
图2--结果表

3.操作过程

4c7041694cb73c0f5e8a19b0d0a8d753.gif
图3--操作过程

4.步骤分解

①在E列提取A列省份(重复的只留一个)

方法一:复制A列粘贴到E列,EXCEL2007以上版本可直接点菜单栏“数据”,然后点击“删除重复项”,简单粗暴就OK了。

d0ea745af6d6d76dd18e6f92d400fd04.png
图4

方法二:INDEX+MATCH(上例用的是此法,详细的下次再探讨)

E2输入公式

=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$13,$A$2:$A$13,0)=ROW($A$2:$A$13)-1,ROW($2:$13),4^8),ROW(1:1)))&""

按CTRL+SHIFT+ENTER三键结束,下拉。

②在F2单元格里为E2省匹配B列中对应的第1个城市

F2输入公式

=INDEX($B:$B,SMALL(IF($A$2:$A$13=$E2,ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

三键结束。

③把F2的公式右拉,分别匹配E2省对应的第2、3、4、5个城市...直到显示空白。

④把E2右边存放有公式的单元格选中后下拉,为E3、E4单元格里的省份匹配到对应的各个城市。

⑤附加题:为省份匹配非省会的城市

公式的写法同上面一样道理,只是增加了一个条件——C列等于""。

那就在第②点的公式里插入一个新条件

=INDEX($B:$B,SMALL(IF(($A$2:$A$13=$E2)*($C$2:$C$13="否"),ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

同样三键结束。记得哦,增加条件后该增加的括号()也得成对增加哈~

⑥同理,如有更多条件要求,比照第⑤点用*星号连接插入相关条件即可。

5.公式翻译

先安利F9这个功能键:如果公式很长,在编辑栏抹黑某段公式,按F9可以得到公式结果解析。

尤其像INDEX+SMALL+IF+ROW这种组合函数,由多个函数嵌套组合在一起,得先理解各个函数的语法结构及功能作用,才能理解整个组合函数的工作原理。上图瞧瞧:

aefadd8c93b3e1113ff2d80a82654010.gif

23609561857b6353fadc162f685db063.png
图5

04dce40305400ff86894b279f969ebe3.png
图6

db03fc93467a73a95c565b1c08e74fdd.png
图7

a7397175ce107e994e54c9bcfda8ac3d.png
图8

a10611d8f17c1f257beccaa8b567b3a1.png

遇到复杂的公式,可以按F9解析难理解的中间步骤。现在先来翻译F2单元格的公式。

INDEX($B:$B,SMALL(IF($A$2:$A$13=$E2,ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

翻译:

IF(A列省份若是“广东”,返回那一行的行号,不是“广东”则返回一个很大的数65536)

SMALL(IF()得到的行号数组从小到大排列,第几小的行号)

INDEX(城市列,SMALL()得到的行信息)

由此可以得到:

INDEX(城市列,A列省份是“广东”对应的第1个城市)

INDEX(城市列,A列省份是“广东”对应的第2个城市)

INDEX(城市列,A列省份是“广东”对应的第3个城市)

。。。。。。

INDEX(城市列,A列省份是“广东”对应的第N个城市)

62155d39a19be3459f0f2bc977fd5b0e.gif

【原文链接:EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)】

78c31accc25328d64186a9f85292af99.png
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值