Excel竖向转横向 并汇总 简单方法(非转置,不用公式)

目录

背景:

目前的解决方案:

        1.数据透视表:

        2.公式:

        3.使用Power Query编辑器的【透视列】功能:

        4.Python

简单的方案:

        思路:

        步骤1:创建辅助排序列

        步骤2:筛选序号

        步骤3:复制粘贴

        步骤4:删除多余字段

总结:


背景:

        业务上很多数据需要将数据按照相同组,从竖向排列转为横向排列,即一维表转多维表,具体如下:

        原数据形式:

         期望整理成的数据形式:

目前的解决方案:

        1.数据透视表:

                如果值为数字,则直接用数据透视表即可,但是现有数据表不支持显示文字,虽然可用Power Pivot等进行配置,但是学习成本高,不适用类型较多的情况。参考文章:excel中,数据透视表值区域如何显示文本-百度经验 (baidu.com)

        2.公式:

                某些情况可用OFFSET函数进行转换,但是此函数逻辑略复杂,反正我没完全理解。参考文章:Excel中利用OFFSET函数解决很多个分块的一次性转置问题(非纯手动)

        3.使用Power Query编辑器的【透视列】功能:

                本案例数据应该不适用这个功能,而且Power Query几乎是另一个软件了,学习成本很高。参考文章:Excel同一名称对应的多个数据调整为横向显示【一维二维转换案例】 - 知乎 (zhihu.com)

        4.Python

                说实话只是想简单整理一下,犯不着学一门编程语言,除非处理大数据。而且理论上有这种需求的业务也不涉及大数据,因为多维表不符合数据库建构思想。参考文章:利用python将excel中的大量分组竖行数据转为横行数据

简单的方案:

        思路:

                设置排序辅助列,然后筛选每个次序,最后依次复制粘贴

        步骤1:创建辅助排序列

                使用公式或自动填充,为同组数据加上排列序号,注意把数据较多的组放在前面(可用数据透视表的排序-其他排序选项)。

                参考文章:Excel函数 -名称相同序号自动递增(用于重复值排序)

        步骤2:筛选序号

                  依次选择组内顺序

        步骤3:复制粘贴

                依次将对应次序的筛选结果数据贴入新表格

                注意步骤1时一定要把数据较多的组放在前面,才能保证粘贴后行标题可以对应上

        步骤4:删除多余字段

                删除列标题、组内顺序等用于核对数据的辅助列,整理排版

                注意:如果步骤1没有把数据较多的组放前面,或有其他特殊情况(没遇到过),可能导致粘贴时对应关系混乱,可用公式进行横向检查

总结:

               理论上此类数据场景不符合数据库构建的思想,Excel数据透视不能显示文字也是基于此原因,但是业务上确实有此需要,而且处理起来超级磨人,其他解决方法的学习成本也很高。

                如果数据量较大,或者例行重复工作,可以使用Python方案,或者可以研究下Excel脚本/WPS宏。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将Excel中的行换为列,有几种方法可以实现。第一种方法是在新版Excel中使用复制和粘贴功能来实现。你可以选择要转置的区域,然后使用选择性粘贴功能,并勾选“转置”选项,这样就可以直接将行换为列。这种方法在低版本的Excel静态数据表中可能不适用。 第二种方法是使用INDEX函数来实现。你可以在一个单元格中输入以下公式:=INDEX($A$1:$F$12, COLUMN()-7, ROW())。通过使用动态的列号COLUMN()和动态的行号ROW(),这个公式可以自动扩展以实现行列换。你只需要向右或向下拖动这个公式,就可以完成行列换。这个方法适用于各种版本的Excel。 第三种方法是使用INDIRECT函数来解析和拼接字符串来实现。你可以在目标区域中的一个单元格中输入以下公式:=INDIRECT("$B" & COLUMN()-7)。这个公式可以根据动态的列号将行换为列。注意,在表示单元格的前半部分$B之前要加上英文状态的双引号,以确保它被识别为字符串,否则会导致公式错误。 这些方法都可以帮助你将Excel中的行换为列,具体选择哪种方法取决于你的需求和Excel的版本。<span class="em">1</span> #### 引用[.reference_title] - *1* [Excel实现行列换的三种方式](https://blog.csdn.net/ybw_wang/article/details/119385403)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值