EXCELL中如何一对多进行匹配?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCELL中如何一对多进行匹配?相关的知识,希望对你有一定的参考价值。

如图所示:

想把图一的内转化为图二,而且数据量很大,这只是我做的例子,求高手指教!

 以下两条公式都是数组公式,输入完成后不要直接回车,要按三键  CTRL+SHIFT+回车  结束。


如果仅仅只是要匹配a,那就简单,用这数组公式下拉:

=INDEX(B:B,SMALL(IF(EXACT(A$1:A$999,"a"),ROW($1:$999),4^8),ROW(A1)))&""


但建议改为下图这样的效果更为直观点:

E1公式右拉再下拉:

=INDEX($B:$B,SMALL(IF(EXACT($A$1:$A$999,$D1),ROW($1:$999),4^8),COLUMN(A1)))&""


追问

可是我的是一个姓名对应多个个人信息

追答

那我也不会

参考技术A

A2=COUNTIF($B$2:B2,B2)下拉对姓名出现次数标记


G2=IFERROR(VLOOKUP($F2&G$1,IF(1,0,$B:$B&$A:$A,$C:$C),2,0),"")组合键结束公式

参考技术B 你好,假设你的姓名是从H2开始
你在G2单元格做一个辅助列,输入公式
=H2&COUNT(H$2:H2)
下拉,作为辅助列

再假设你图2的姓名从K2开始
然后在你图2的个人信息的第一个单元格,也就是L2单元格输入公式
=VLOOKUP(K2&ROW(A1),G:I,3,0)
M2单元格就把上公式的A1改为A2
后面的以此类推。一直到出现错误信息就可以了。
最后就是把输入的公式全部下拉至你所有的姓名。
保证每一行的最后一个公式都是错误信息#N/A。
就可以达到你需要的效果了

如果有不明白的地方可以继续追问,很乐意为你解答本回答被提问者采纳
参考技术C L2公式=if(column(a1)>countif($h:$h,$k2),"",index($i:$i,match($k2,$h:$h,)+column(a1)-1)),公式右拉,下拉。
或者=iferror(index($i:$i,small(if($h$2:$h$15=$k2,row($2:$15)),column(a1))),"")数组公式,三键结束,右拉,下拉。
参考技术D 在Sheet2的K2单元格输入以下公式,然后向下填充公式
=OFFSET(Sheet1!H$2,INT((ROW(A1)-1)/4),)
在Sheet2的L2单元格输入以下公式,然后向下填充公式
=OFFSET(Sheet1!$I$2,(ROW(A1)-1)*4+COLUMN(A1)-1,)

以上是关于EXCELL中如何一对多进行匹配?的主要内容,如果未能解决你的问题,请参考以下文章

如何在excel里面进行一对多的模糊匹配

一对多关系,如何匹配非空值

在 SQL 连接语句中选择一对多关系中最匹配的记录

excel如何实现一对多查询

Excel怎样实现一对多匹配?请教

核心数据:在一对多关系中匹配多个项目的组合