在数据清洗和整理中,总会遇到形形色色的要求。今天营长分享的是一对相反的操作,将Excel文本多行变一行,一行变多行。会用到Excel最新的TEXTJOIN、FILTER函数,也会用到Excel强大的后台Power Query编辑器。
1
多行变一行
今天的案例来自内训课的企业培训部门负责人,想把左侧的每人多行列表变成右侧的每人一行,这样每位员工登记的设备就一目了然。

方法一:FILTER函数(适合365版本)
FILTER函数是Office 365版本新增的动态筛选函数,具体可以参考
Excel 365动态数组函数FILTER,让你轻松实现“一对多,多对多”查询
这里用到转置函数TRANSPOSE和FILTER的组合,结果在不同的单元格中。

在E2单元格中输入公式
=TRANSPOSE(FILTER($B$2:$B$8,$A$2:$A$8=D2))
后面单元格均会自动填充结果,向下拖拽公式即可。
方法二:TEXTJOIN函数(适合2019和365版本)
TEXTJOIN函数可以把多个区域的文本,用特定符号连接起来。具体可以参考
这里用TEXTJOIN和IF函数,根据姓名匹配各自的设备型号,用“、”连接放在一个单元格中。

在E2单元格中输入公式:
=TEXTJOIN("、",,IF($A$2:$A$8=D2,$B$2:$B$8,""))
方法三:用Power Query工具(适合2016及以上版本)
从2016版本开始,Excel自带强大的数据查询工具Power Query,2010和2013版本都需要安装插件。

按姓名进行分组

新列名为”设备“,操作选择”所有行“。

只需要将它自动生成的公式编辑栏里的公式内容稍做下修改即可搞定多行变单行的操作。

each Text.Combine(_[登记设备],",")

最后”关闭并上载“即可。

精彩视频
▼▼▼
Excel 学习逻辑图示
2
一行变多行
也会遇到一行数据,如何快速按姓名变成多行呢?如下图。

最方便快捷的方法还是用PQ编辑器里的分列到行功能,适合2019和365版本。
先将数据导入。

【拆分列】--【按分隔符】

输入自定义符号”、“,拆分为”行“,这一步很关键。

结果立马呈现,就可以上载到Excel工作簿中。

好,今天的教程就是这些。
精彩推荐
▼▼▼






王忠超

AI+BI智能办公与数据决策 实战讲师
北京科技大学MBA 校外导师
微软(中国)员工技能提升项目 特聘讲师
帆软FineBI 数据应用研究院 专家
Cherry Studio 认证讲师
北大纵横管理咨询公司 合伙人
微信公众号“AI+BI智能办公”创始人
24年企业实战培训经验
19年企业管理咨询经验
