» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


 20 12
发新话题
打印

[其他] 问一个比较复杂的EXCEL操作问题,请高人指点

因日常工作需要,我导出数据后,想在文本数据里匹配是否包含集合A和集合B的人名信息,集合A类似(小明、小光、小丽.....),集合B类似(甲、乙、丙....)这样,我想操作出来的结果是:
1、如果文本同时包含了集合A和集合B的数据,则输出两个集合分别对应的人名;
2、如果文本只包含集合A,则输出集合A中具体对应的人名;
3、如果文本只包含集合B,则输出集合B中具体对应的人名;
4、如果都不包含就不用理会了。

由于导出来的文本数据很多没有按规范填写,没法直接用分列或者替换处理,如果硬要处理很耗时间,想问下各位高人有无办法处理,谢谢!!!!

[ 本帖最后由 mcer 于 2018-8-12 19:39 编辑 ]


TOP

感觉是if+正则+vlookup



TOP

引用:
原帖由 兰开夏 于 2018-8-12 19:58 发表
感觉是if+正则+vlookup
能否给个大概的公式?


TOP

你把尼上面提到的几种情况截个屏,应该可以用Excel第三方插件做出来。

TOP

VLOOKUP效率低下,已经过时了
现在都用INDEX+MATCH代替了
LZ你给几个图片详细说说呗

不知道是不是这样的效果:
数据在S列,V列和W列是两个集合,Z列是结果


用数组公式搞定
{=SUBSTITUTE(TRIM(IFERROR(INDEX($V:$V,MATCH(TRUE,SUBSTITUTE(INDEX($S:$S,ROW()),$V$1:INDEX($V:$V,MATCH(REPT("Z",255),$V:$V,-1)),"")<>INDEX($S:$S,ROW()),0)),"")&IFERROR(" "&INDEX($W:$W,MATCH(TRUE,SUBSTITUTE(INDEX($S:$S,ROW()),$W$1:INDEX($W:$W,MATCH(REPT("Z",255),$W:$W,-1)),"")<>INDEX($S:$S,ROW()),0)),""))," ",",")}

[ 本帖最后由 加州IT男 于 2018-8-13 08:28 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • mcer 激骚 +2 威武! 2018-8-13 10:43
  • jjx01 激骚 +1 恭喜发财 2018-8-13 08:44

TOP

posted by wap, platform: 小米
楼上各种表情 醉了

TOP

posted by wap, platform: iPhone
mark学知识

TOP

引用:
原帖由 加州IT男 于 2018-8-13 08:02 发表
VLOOKUP效率低下,已经过时了
现在都用INDEX+MATCH代替了
LZ你给几个图片详细说说呗

不知道是不是这样的效果:
数据在S列,V列和W列是两个集合,Z列是结果
1017753

用数组公式搞定
{=SUBSTITUTE(TRIM(IFE ...
是的,就是这样,你的公式好复杂,完全看不懂。。。。膜拜大神

TOP

引用:
原帖由 加州IT男 于 2018-8-13 08:02 发表
VLOOKUP效率低下,已经过时了
现在都用INDEX+MATCH代替了
LZ你给几个图片详细说说呗

不知道是不是这样的效果:
数据在S列,V列和W列是两个集合,Z列是结果
1017753

用数组公式搞定
{=SUBSTITUTE(TRIM(IFE ...
一直用vlookup的掩面飘过,学习一下。

TOP

我建议楼主把去掉敏感信息的样板文件发出来,直接让大神给你五分钟码几行命令比较好,

其实我更建议去excel论坛问

it男那种楼主看了也不懂的我估计楼主拿到手也没法自己修改了

TOP

5F这种还是有局限,比如说一个文本里面包含多个人名,比如:小明小丽和甲乙丙,这种不限定个数的情况,用函数就很难处理了,毕竟函数无法实现各种循环

我的理解是不是还得用vba来处理才好
或者,为啥非要限定用excel,你拿个python处理不也很简单么

TOP

posted by wap, platform: iPhone
=IF(ISERROR(FIND(C$1,$A6)),"",C$1)&IF(ISERROR(FIND(C$2,$A6)),"",C$2)

第一行是集合a,第二行是集合b,第一列是文本,直接拉一下就行了。

如果文本很多的话,用这个思路在第二个sheet做就行了。

TOP

引用:
原帖由 jackiehoo 于 2018-8-13 12:48 发表
posted by wap, platform: iPhone
=IF(ISERROR(FIND(C$1,$A6)),"",C$1)&IF(ISERROR(FIND(C$2,$A6)),"",C$2)

第一行是集合a,第二行是集合b,第一列是文本,直接拉一下就行了。

如果文本很多的话,用这个思路在 ...
不是很懂,能否在你的EXCE展示一下?

TOP

posted by wap, platform: iPhone
引用:
原帖由 @mcer  于 2018-8-13 15:07 发表
不是很懂,能否在你的EXCE展示一下?
文本从A6开始往下放
集合a从C1开始往右放,
集合b从c2开始往右放,
这个公式放在c6,然后一直拉就行了

TOP

引用:
原帖由 jackiehoo 于 2018-8-13 15:51 发表
posted by wap, platform: iPhone
文本从A6开始往下放
集合a从C1开始往右放,
集合b从c2开始往右放,
这个公式放在c6,然后一直拉就行了
刚试过可以了,但是公式是在那一行横着拉喔,我的两个集合都很长,这样显示太麻烦了,我自己试着改公式,集合按列排放,但是没有反馈结果

TOP

 20 12
发新话题
     
官方公众号及微博