|
收到提问:如何批量将Excel表格中不同行的同一人的数据合并?如图,请问如何将大量(成千上万条)数据按“编号”进行合并,“疾病”列合并 并保存唯一。 注意:姓名可能有重名的,同一姓名的疾病可能有相同的疾病不同时期的记录。附两种想要达到的结果,只需一种就可以。 根据题主描述以及提供的图片,可知其需要按编号整理原表数据为自己想要的显示格式,现以第一种效果来做分享,可以使用以下方法来实现。 方法一:函数公式(分步完成) 由于需要根据编号来整理数据,因此,首先提取对应的编号,再依次获取其他项。为了便于观察,将整理的结果放置在原表下方。 1、获取编号 我们可以在F32单元格输入这个公式:=UNIQUE(F2:F28);无需下拉填充,该公式返回的是列表,按下Enter键即可得到所有编号。 2、获取姓名 我们可以在E32单元格输入这个公式:=XLOOKUP(F32,$F$1:$F$28,$E$1:$E$28,"",0) 双击鼠标,向下填充公式,即可得到“编号”对应的姓名。 3、合并“疾病” 我们可以在D32单元格输入这个公式: =TEXTJOIN("、",TRUE,UNIQUE(FILTER($D$1:$D$28,($F$1:$F$28=$F32)*($E$1:$E$28=$E32)))) 双击鼠标,向下填充公式,即可将“编号”和”姓名”对应的所有疾病合并在一个单元格中。 4、获取乡镇和行政村 我们可以在B32单元格中输入这个公式: =XLOOKUP($E32&$F32,$E$1:$E$28&$F$1:$F$28,B$1:B$28,"",0) 拖动鼠标,将公式向下和向右填充,即可得到“编号”和”姓名”对应的乡镇和行政村。 5、序号填充 直接在A32、A33单元格输入数字1、2,接着选中这两个单元格,双击鼠标,即可生成序号了。 方法二:使用POWER QUERY 若是觉得分步输入公式的方法麻烦,还可以使用POWER QUERY来实现目标,动动鼠标就能轻松搞定!具体步骤如下: 1、导入数据 选中数据区域,依次点击【数据】→【来自表格/区域】,在弹出的对话框中,勾选“表包含标题”,确定。 2、删除重复项 右击“疾病”列,选择“删除重复项”。 3、数据分组 选中“姓名”和“编号”这两列,然后,依次点击【转换】→【分组依据】,在弹出的对话框中,新列名输入“分组”,操作选择“所有行”,确定。 4、获取列表 接着,依次点击【添加列】→【自定义列】,在弹出的对话框中,新列名默认,不修改 ,自定义公式输入:=[分组][疾病],确定。 5、合并“疾病” 然后,再次依次点击【添加列】→【自定义列】,在弹出的对话框中,新列名默认,输入公式:=List.Distinct([自定义]),确定。目的是提取“疾病”列中的唯一值。 接着,点击“自定义.1”列右侧的展开按钮,选择“提取值”,在弹出的对话框中,选择“自定义”,输入顿号“、”,确定。删除“自定义”列,右击此列,选择“删除”。 6、获取其他项 点击“分组”右侧的展开按钮,选择“乡镇”和“行政村”,确定;右击“编号”列,选择“删除重复项”; 然后,点击【添加列】→【索引列】,选择“从1开始”,再依次右击列标题,选择“重命名”,将标题更改为正确的标题,拖动鼠标调整各列的位置。 7、导出数据 将处理好的数据导出到Excel中。依次点击【主页】→【关闭并上载】,等待加载,加载完成将得到一个超级表,再点击“表设计”里的“转换为区域”,即可转为普通表。 以上就是小兔分享的两种解决方法,根据自己的具体需求和习惯,选择适合的方法。如果你喜欢今天的内容,欢迎分享给身边的小伙伴,若还有疑问或其他问题,可以给小兔留言哦~ 想了解更多精彩内容,快来关注 |
