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

Posted

tags:

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

开始社这样的

如何可以吧列表该为这样

我又2000多条的数据球大神指点我该怎么做

SHEET2的B1输入=INDIRECT("Sheet1!b"&MATCH(A1&"*",Sheet1!B:B,))

下拉

或直接在C1输入=INDIRECT("b"&MATCH(A1&"*",B:B,))

动画为举例,如不行,直接发表,Mrpinetree@qq.com

 

参考技术A 在C1中输入或复制粘贴下列公式
=INDIRECT("B"&MATCH(A1&"*",B:B,0))
下拉填充
选择B列 隐藏
参考技术B C1=INDEX(B:B,MAX(IFERROR(FIND(A1&"-",B:B)*ROW(1:65525),0)))
数组公式 ctrl+shift+enter 结束

这个只限于对应A列数据,B列有唯一值。
参考技术C

有两种方法:

1、SHEET2的B1输入=INDIRECT("Sheet1!b"&MATCH(A1&"*",Sheet1!B:B,)),然后下拉

2、直接在C1输入=INDIRECT("b"&MATCH(A1&"*",B:B,))

3、动画操作举例参考:

参考技术D 要求B列--前的部分和A列的相同???如果是就很简单!

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,)

以上是关于如何在excel里面进行一对多的模糊匹配的主要内容,如果未能解决你的问题,请参考以下文章

看大数据最大技术难关之模糊检索,PostgreSQL如何攻克

Excel VBA,一种模糊匹配

SQL两表模糊匹配查询

oracle中如何使用like来进行模糊匹配

java 用字符串模糊匹配另一个字符串

如何在 Ruby 中进行模糊子字符串匹配?