求Excel大神,应该是不难但有点绕的公式

本守清-avatar

本守清

2022-02-04T07:39:17+00:00

我已经把表格简化成了如图片中的样子,A列是人名,B列是公司名,D列花名册是人名,需要一个公式在E列按花名册人名返回B列出现次数最多的公司,我试了index,mode,match,countifs啥的组合不出来,网上好像也没人有这个需求,来泥潭问问[img]https://img.nga.178.com/attachments/mon_202202/05/-7Q2p-e9o4KkT1kSa8-7b.png[/img]
Iamdepresso-avatar

Iamdepresso

先数据透视表,然后对数字透视表再处理一下
Reecin-avatar

Reecin

插入数据透视表?[s:ac:呆]
LozNac-avatar

LozNac

我只想到了sql,group by,count,max,orde by搞定……
bloodmochi-avatar

bloodmochi

数据透视表是最快的。
不然的话要插很多辅助列
PhanTom-avatar

PhanTom

[quote][pid=586712286,30561925,1]Reply[/pid] Post by [uid=36534015]woshizou[/uid] (2022-02-05 15:51):
我只想到了sql,group by,count,max,orde by搞定……[/quote]excel也有group by,记得是aggregate函数,两次aggregate就出来了
Dfraembs-avatar

Dfraembs

我的话会直接写个vba宏,感觉还是代码方便点
本守清-avatar

本守清

[quote][pid=586712011,30561925,1]Reply[/pid] Post by [uid=21482664]就让我用我的肉身,检验琴操姑娘的真身[/uid] (2022-02-05 15:49):

先数据透视表,然后对数字透视表再处理一下[/quote]主要是原表的人名和公司都好多好多,透视了再找次数也蛮麻烦,想看有没有公式能实现
supll1-avatar

supll1

wps开启筛选,可以看到筛选项目出现的次数[s:ac:blink]
supll1-avatar

supll1

[quote][pid=586714395,30561925,1]Reply[/pid] Post by [uid=61298968]小脑切片[/uid] (2022-02-05 16:04):

wps开启筛选,可以看到筛选项目出现的次数[s:ac:blink][/quote]透视,然后公司名-选定求和排序降序,然后回到原表v一下,按每个人名后面公司,排第一位的带过来移动填入。
ReverseWrld-avatar

ReverseWrld

编辑,看错了[s:ac:喷]
Kraiwit-avatar

Kraiwit

原表先加一列辅助列是姓名+公司的单元格,作为表1
然后开一张新表复制原表的3列数据,用重复筛选去掉重复项获得表2
在表2上用sumif统计每个数据的次数
最后在你那张结论表上max+VLOOKUP统计一下即可
本守清-avatar

本守清

[quote][pid=586714793,30561925,1]Reply[/pid] Post by [uid=61298968]小脑切片[/uid] (2022-02-05 16:06):

透视,然后公司名-选定求和排序降序,然后回到原表v一下,按每个人名后面公司,排第一位的带过来移动填入。[/quote]大佬是这样吗,是次数最多的公司在最前面,但是vlookup返回哪一列呢[img]https://img.nga.178.com/attachments/mon_202202/05/-7Q2p-1z1hKbT1kSaz-31.png[/img]
Geofthin Miasoni-avatar

Geofthin Miasoni

我的思路这样的,先构建个无重复的AB列表分别是名字,公司

然后对这个表增加
C列:每个人,每个公司的公司数计数
D列:每个人,C列最大值
E列:如果C=D,返回B,否则为空

筛选一下去重AE就是你要的结果。

具体公式怎么写就不说了因为很久没用excel了。。
Hi Im Jona-avatar

Hi Im Jona

分列汇总,直接就显示出来了。。。
DullToast-avatar

DullToast

用XLOOKUP或FILTER都能完成你的要求
NSE_BEAST-avatar

NSE_BEAST

我不太明白。这你把AB列联合去重以后,a列的数量(counif张三)不就等于张三所在的公司数?


e列的公式就是countif(a:a,
d2) a列等于d列的名称。手机打懒得开电脑,公式可能不太对,你再查一下。



如果你AB列本身就是从别的表格拿公式过来的,你可以加一个辅助列,用数组公式做去重(这个方法网上搜一下吧)
本守清-avatar

本守清

[quote][pid=586722947,30561925,1]Reply[/pid] Post by [uid=161078]ashama[/uid] (2022-02-05 16:55):

我不太明白。这你把AB列联合去重以后,a列的数量(counif张三)不就等于张三所在的公司数?


e列的公式就是countif(a:a,
d2) a列等于d列的名称。手机打懒得开电脑,公式可能不太对,你再查一下。



如果你AB列本身就是从别的表格拿公式过来的,你可以加一个辅助列,用数组公式做去重(这个方法网上搜一下吧)[/quote]大哥这样结果是数字呀,想返回个A公司或者B公司这样的名字[s:ac:哭]
NSE_BEAST-avatar

NSE_BEAST

[quote][pid=586724277,30561925,1]Reply[/pid] Post by [uid=708243]砍脸[/uid] (2022-02-05 17:03):

大哥这样结果是数字呀,想返回个A公司或者B公司这样的名字[s:ac:哭][/quote]那比如说张三在a公司出现两次公司出现一次,你要返回张三,a公司吗?
那如果这样,原理是一样的,你单独做一个列把AB拼起来。a&“-”b这种
DiploDingus-avatar

DiploDingus

[img]https://img.nga.178.com/attachments/mon_202202/05/-7Q2p-7qt2K1hT3cSj5-ak.png[/img]
用辅助列,并且不考虑相同次数的话,这样最简单了,辅助列里用countifs计算每个公司出现次数
如果不想用辅助列,并且还要考虑相同次数,那就麻烦了[s:ac:呆]