在前几期的文章中,小必老师给大家讲解了如何使用Power Query的功能将具有相同属性/类型的单元格归纳到一个单元格中,并用间隔符将其隔开。对于这个问题呢,其实还有很多种方法,经小必老师不断地积累与思考,最终给大家归纳了五种归纳的方法,这5种方法从简单到一般,能适合每个Excel学习者及爱好者,分别是:
- 辅助列 VLOOKUP归纳法
- 辅助列 LOOKUP归纳法
- TEXTJOIN函数法
- Excel Power Query方法
- Excel Power Pivot方法
下面是一张各个部门的人员明细表:
根据领导的要求呢,要把每个部门的人员放到一起,还要进行要数的统计,结果如下图所示:
方法01
VLOOKUP函数 辅助列
具体的操作方法如下:
Step-01:选中A列的任意一个单元格,单击【数据】,选择任意一个方式进行排序(升序与降序都行),如下图所示:
注意:此处的排序是相当地重要的一个步骤,如果不排序那么后面的步骤的结果就不能正常地显示。
Step-02:在C列建立一个辅助列,在C2单元格中输入公式:
=B2&IFERROR(","&VLOOKUP(A2,A3:C$17,3,0),""),按确定键后向下填充。
注意:上述公式中的A3:C$17一定在注意,就是在查询的区域一定是数据区域最后一行的下一行,那怕是多一行都行,多几行也无所谓,但是就是不能少,同时要对行标进行锁定,即在行标上加上"$"符号,如上述公式中的C$17。如果是第二行的公式,那么就从第三行的区域开始选取,如A3。
解析:上述题目中使用VLOOKUP函数从当前行的下一次开始查找,如果有查找到的内容,就用”,“连接,如果没有就为空白。
Step-03:在F12单元格中正常使用公式:=VLOOKUP(E7,A:C,3,0),按确定键后向下填充即可得到。
温馨提示:除了VLOOKUP函数,LOOKUP函数也能完成上述的问题。见方法02.
方法02
LOOKUP函数 辅助列
具体的操作方法如下:
Step-01:选中A列的任意一个单元格,单击【数据】,选择任意一个方式进行排序(升序与降序都行),如下图所示:
注意:此处的排序是相当地重要的一个步骤,如果不排序那么后面的步骤的结果就不能正常地显示。
Step-02:在C列建立一个辅助列,在C2单元格中输入公式:
=IF(A2=A1,C1&","&B2,B2),按确定键后向下填充。
Step-03:在F12单元格中正常使用公式:
=LOOKUP(1,0/(E7=$A$2:$A$16),$C$2:$C$16),按确定键后向下填充即可得到。
注意:关于以上公式的意义在这里再不给大家做过多的解释,只要大家记住套路即可。以上公式的用法属于公式的高阶用法。
方法03
TEXTJION IF函数组合
具体的操作方法如下:
在E7单元格中输入公式:{=TEXTJOIN(",",1,IF(D7=A:A,B:B,""))},按组合键<Ctrl Shift Enter>完成填充。如下图所示:
注意:对于以上公式的两边的大括号不是手动添加上去的,而是通过按组合键自动加上的,表示数组公式,但是加大括号的不一定是数组公式。另外,以上函数只在EXcel2019版本及Office365版本中才有的功能。
方法04
Excel Power Query
除了以上的三种方法以外呢,还有更好的方法。那就是Power Query的方法。
具体的操作方法如下:
Step-01:选中任意一个单元格,单击【数据】-【从表格/区域】,在弹出的对话框中选择【表包含行标题】-【确定】,如下图所示:
Step-02:在弹出的界面中选择【分组依据】,在弹出的对话框中的【分组依据】中选择“部门”,在【操作】里选择“求和”,在【柱】里选择“姓名”,如下图所示:
Step-03:然后将原公式:
= Table.Group(更改的类型, {"部门"}, {{"计数", each List.Sum([姓名]), type text}})
修改为:
= Table.Group(更改的类型, {"部门"}, {{"计数", each Text.Combine([姓名],","), type text}})
然后按Enter键确定即可。结果如上。
Step-04:单击【关闭并上载至】,在弹出的对话框中选择要存放的位置。此步过程略过。全部的具体的操作见下面的动态图演示。
注意:该方法的好处就是如果有新的数据增加或者减少的时候可以自动刷新一劳永逸的方法。上面用到了PQ的专属函数即M函数。在写M公式的时候一定要区分大小写。
方法05
Excel Power Pivot
还有一种方法同Power Query是一样的神奇,那就是使用Power Pivot。具体方法如下:
准备工作:如果没有【开发工具】选项卡的小伙伴们,右击任意一个选项卡,单击【自定义功能区】,在弹出的对话框中选择 【主选项卡】,在右边的选项中勾选【开发工具】,最后单击【确定】即可。如果没有有【开发工具】没有加载Power Pivot的小伙伴们可以单击【开发工具】下面的【COM加载项】,在弹出的对话框中选择【Microsoft Power Pivot for Excel】,然后单击【确定】,如下图所示:
Step-01:选中任意一个单元格,单击【数据】-【Powe Pivot】-【添加到数据模型】,如下图所示:
Step-02:在公式编辑栏中输入公式,按enter键完成。如下图所示:
=CONCATENATEX('表2','表2'[姓名],",")
Step-03:然后单击【插入】-【数据透视表】,在弹出的对话框中选择【使用此工作簿】
Step-04:将“部门”拖放至【行】,将“度量值1”拖放至【值】,设计表格布局中取消行列合计,如下图所示:
注意:如果有数据的增减修改了的,在透视表的结果中右键刷新即可。具体的操作过程如下图所示:
以上5种方法呢,需要说明的呢,方法1与方法2都是适用于所有版本的Excel,而方法3是只能在Excel2019版本及Office365的版本中才能做的,因为TEXTJOIN函数属于新增函数;方法4与方法5在Excel2013版本与Excel2010版本中只能通过官方的插件来实现,大家可以在微软的官网上下载相应的插件Power Query for Excel与Power Pivot for Excel的插件,而在Excel2016版本及以上包括Office365的版本都可以在软件内置的功能中找到其功能。
关于方法的选择:
1、版本的使用方面:对于使用Excel2019版本以上的小伙伴们可以选择以上的所有的方法,而使用Excel2016版本及其以上的用户可以选择除方法3以外的所有的方法;而对于Excel版本在2010及以上并装有插件Power Pivot插件的可以使用上述除方法3以外的所有的方法;而对于2013版本及其以下的用户(未装有插件)的小伙伴们可以使用方法1与方法2;
2、效率优先:对于追求效率方面来说,建议大家使用方法4与方法5,这两种方法可以不用提取同类属性,直接可以使用,而在原始数据胡增减改动的情形下可以直接右键刷新即可,不用拖动更改;但是以上两种方法灵活性较差;
3、灵活性方面:对于追求灵活性方面的小伙伴可以使用前三种方法,这三种方法可以灵活地在工作表中进行处理,但是由于添加了辅助列,会造成效率低下,方法3使用了数组函数,在数据量比较大的情况下会出现Excel卡顿的现象。
,