ef 单表一对多集合查询_EXCEL--一对多查询,你会吗?教你两招

实例:一对多查询

如下所示:A:B列是长虹电视的部分型号数据,每个尺寸段都有多个型号,如何在G列输入电视机的尺寸,便跳出所有的电视型号?效果如下所示:

2b2e04c0c72ff8bc966ee4134fc9969e.gif

本节介绍两种常用的方法VLOOKUP法和INDEX+SMALL+IF万金油公式。

方法一

VLOOKUP+辅助列法

我们知道VLOOKUP只能一对一查询,所以对于查找的数据必须是唯一的,在E列建立辅助列,公式输入:=C2&COUNTIF(C2:$C$2,C2)对C列单元格进行累计计数。

74f2ad05b23a0b091bb60938abe568e0.png

得到的结果便是43的第1个,表示为431

55的第1个,表示为551

43累计第2个,表示为432

55的第2个,表示为552

....依次累计转换成独一无二的值,便于查找

在F列建立辅助查找项,输入公式=$G$2&ROW(A1)

84eca086102035ed0075b4cd65772175.png

通过这种方法,查找的项目也变得不唯一

即查找43的第1个,第2个,第3个....

分别为431 432 433 434....

这样就转换成了一个逆向查找匹配数据的问题了

再通过VLOOKUP函数+IF({1,0})重构数据源,就得到结果了

=IFERROR(VLOOKUP(F2,IF({1,0},$E$1:$E$8,$D$1:$D$8),2,0),"")

285394355119b46fa8c2c07e226bf064.png

如果熟练一点的话,就可以不用F列辅助项,将公式更改为:

=IFERROR(VLOOKUP($G$2&ROW(A1),IF({1,0},$E$1:$E$8,$D$1:$D$8),2,0),"")

730a5b439ce7e5968fc37fc7bce36e67.png

如果再熟练一点,可以将E列辅助项去掉,将公式更改为数组公式,计算时按Ctrl+Shift+Enter三键

=IFERROR(VLOOKUP($G$2&ROW(A1),IF({1,0},$C$1:$C$8&COUNTIF(INDIRECT("C1:$C"&ROW($1:$8)),$G$2),$D$1:$D$8),2,0),"")

93b70045c83d362d32fd8dcb91ece06f.png

方法二

INDEX+SMALL+IF

本节直接给出公式:

=INDEX(D:D,SMALL(IF($C$1:$C$8=$G$2,ROW($C$1:$C$8),1000),ROW(A1)))&""

该公式为数组公式,输入完成后需要按三键Ctrl+Shift+Enter。

8812cced5549b94a2539777da4fad74d.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值