精华内容
下载资源
问答
  • Excel行列转换工具

    2019-03-29 11:55:29
    excel中对行转换成列,也可将列转换成行。很方便的一键式工具。
  • Excel 行列转换的最简方法

    千次阅读 2019-03-05 16:22:29
    当编辑一张 Excel 表格时,发现表格的列数太多,而行数较少,为方便打印,这时你或许会希望将该表格行列转换;或许是为了做进一步做统计分析,当前格式不太方便,这时也会用到行列转换。   下面这种交叉式的 ...

    问题描述

      在工作中时常会遇到对 Excel 表格的处理。当编辑一张 Excel 表格时,发现表格的列数太多,而行数较少,为方便打印,这时你或许会希望将该表格行列转换;或许是为了做进一步做统计分析,当前格式不太方便,这时也会用到行列转换。

      下面这种交叉式的 Excel 表是很常见的格式,用来填写和查看都比较方便:
      001png

      但是,如果想做进一步的统计分析,这种格式就不方便了,需要行列转换,变成如下格式的明细表:
      002png

      显然,手工操作会非常麻烦,若数据量小还可以,数据量大了会耗费大量时间,简直就是灾难。

      我们就以此为例,举例说明几种常见的解决方法。

    解决方法

    方法 1:Excel 数据透视表

      Excel 可以通过数据透视表支持行列转换功能,效果如下图:
      003png

      显然,这并不是我们想要的格式。Excel 的数据透视表可以满足简单格式的行列转换,但如果格式稍微复杂,转换效果往往是不尽人意。

    方法 2:编程语言

      以写程序来解决,思路也很简单:

      · 加载 excel 文件,装载需要的 sheet 工作表。

      · 读取“账套名”所在行,将其转换成字符串数组。

      · 读取“科目编码”所在列,将其转换成字符串数组。

      · 按“科目编码”分组,与“账套名”数组构造一张表。

      · 根据“账套名”对应的数据,遍历所有的明细值填充到相应的表中。

      · 这样就可以构造出对应的明细表来。

      如果用 Java 来实现,初步估计代码量也不会少于 200 行,若需要结果输出成 excel 文件则开发工作量会更多。虽然 Excel 自己提供了 VBA,但那个麻烦程度谁用谁知道,不提也罢。那其它的语言呢?传说 python 有处理行列转换的功能(pandas 包里有 pivot 功能),代码量相对于 java 会少很多, 我们来试一下:

        import pandas as pd
        import numpy as np
    
        df = pd.read_excel("D:\\excel\\pandas.xlsx", 0, 3)
        cols = df.columns.values.tolist() #获取数据头信息
    
        #移去前两列,只保留需要行列转换的列
        cols.remove('科目编码')
        cols.remove('科目明细')
    
        #构造一个 list.
        frames=[]
        for col in cols:
            df1 = df.pivot_table(index = ['科目编码','科目明细'], values = [col])
            df1.rename(columns={col: '数值'}, inplace=True)
            df1[3]=col
            #转换后的数据追加到 frames 中.
            frames.append(df1)
    
        # concat 将相同字段的表首尾相接
        result=pd.concat(frames)
        result.rename(columns={3: '帐套名'}, inplace=True)
        result.to_excel('D:\\excel\\pandas_n.xlsx', sheet_name='科目明细')
    
    

      效果还不错,果然比较简洁!这是 Python 生成的 excel 文件:
      004png

      不过,存在一点小问题,这个 excel 格式有点特殊,想用 Python 的 pivot,我们要将“科目编码”,“科目明细”移到与转换列标题所在同一行上,变成下面的样子。否则在代码上就得特殊 “照顾”,反正只有一行,手工做一下就算了,比写代码省事。
      005png

      无论如何,python 的这个细节处理的小“瑕疵”并不影响其方便性。python 确实名不虚传,虽然使用了循环,但整个代码也就只有 10 来行的样子。

      还能更简单吗?

      嘿嘿,能!

    方法 3:集算器编程

      下面我们来看集算器的代码:

     AB
    1=file("D:/excel/ 明细.xlsx").importxls@t(;1,3:40)// 读入 excel 文件
    2>A1.delete(A1.select(_1=="科目编码"))// 清除首列为“科目编码”所在的行
    3>A1.rename(_1: 科目编码,_2: 科目明细)// 更换列 1 名称为科目编码,列 2 名称为科目明细
    4=A1.fname().to(3,).concat(",")// 将从第 3 列的列名连成字符串,用, 分开
    5=A1.pivot@r(科目编码, 科目明细; 账套名, 数值;${A4})// 用 pivot 函数进行行列转换
    6=file("D:/excel/ 明细 2.xlsx").exportxls@t(A5;"科目明细")// 将整理好的数据另存储为 xlsx 文件

      代码很简单,我们把每一步的中间结果列出来看看:

      A1:加载 excel 文件工作表 1,提取指定范围的数据 (从 3 行到 40 行),其中选项 @ t 表示首行为标题,载入数据, 生成表格如下:
      006png

      A2:删除非数据行
      007png

      A3:更换列名称
      008png

      A4:把从第 3 列开始的列名称连成字符串,用“,”分开
      009png

      A5:pivot 函数将行列数据进行转换,把 A4 中对应的列数据置放到“数值”列
      010png

      A6:将整理好的数据另存储为 xlsx 文件
      011png

      集算器脚本只有 6 行,木有啥循环、判断之类的玩意儿,也不像 Python 那样要先手工倒腾一下,就把这看似有点“乱”的数据表格处理好了。相比之下,Python 采用列优先转换多次循环 “N”字方式,集算器则用行优先一次性处理,在处理数据上,集算器对细节处理及使用习惯更专业。而且集算器的开发环境也容易调试,可以看到每一步运算的中间结果,方便挑出错误,开发更为便捷。在这种常规数据处理的任务中,集算器要比 Python 更为优越。

    优势总结

      就这个问题,关于 python 与集算器的差异,再说说自己的一点心得体会:

    1. 多列转换

      对于需要多列行列转换并汇集成“长”列的场景时,python 需要将每个数据列构造成数组,并增加一列记录当前列名,再追加到一个大的列表中,最后合并,合并中去掉非首个数组中的 title;

      集算器就容易些,它直接把想要转换的列汇集在一块就行。相对于 python 的繁琐,集算器至少能省几个脑细胞。

    2. 名称更改

      python 对于需要转换列的名称不能更改, 如 cols[0]=’天津’,此时 python 找不到修改前的关键字,“哪个朋友挖的坑,别以为我发现不了”,欺负大爷眼花,给报个异常行不?

      但对应的集算器来说则很方便, 如:>A1.rename(_1: 科目编码,_2: 科目明细,4 成都: 成都)

    3. 标题空值问题

      Python 读取 excel 表中的转换行标题时,前面两列为空 (对应原来的 excel 中的“科目编码,科目明细”),此时标题 cols 中的空值就没有了, 这个“坑”有点隐蔽啊,我真没有发现, 把其中的两列弄丢了,真有点丢脸 ;

      但集算器能识别出来,会自动加上对应的标识 _1、_2,这样处理数据时,就能找到其中对应的两列。

    4. 网格式编程

      集算器使用网格 A1 这种格式,它自动与所在位置的对象关联起来,这点非常方便, 感觉很有特色;Python 就只能望洋兴叹了。

    展开全文
  • EXCEL 行列转换工具

    2021-03-04 10:52:59
    EXCEL 行列转换工具
  • excel行列转换如何实现.docx
  • 行列转换工具

    2018-02-03 12:37:36
    行列转换工具,EXCEL行列转换小工具,用于行转列或 列转行
  • excel行列转换程序

    2013-01-07 21:36:46
    行变列,有利于数据的统计分析和归纳。对分析数据有帮助。
  • excel 行列转换

    2018-05-29 08:36:00
    excel 行列互换 CreateTime--2018年5月29日08:24:48 Author:Marydon 1.列转行  第一步:在第一行插入空行  鼠标移至第一行最左侧-->鼠标样式会变成一个向右指示的图标→-->点击即可选中该行 ...
     

    excel 行列互换

    CreateTime--2018年5月29日08:24:48

    Author:Marydon

    1.列转行

      第一步:在第一行插入空行

      鼠标移至第一行最左侧-->鼠标样式会变成一个向右指示的图标→-->点击即可选中该行

      -->右键-->插入

      第二步:选择性粘贴

      选中要转换的数据-->进行复制-->鼠标选中A1单元格-->右键-->选择性粘贴 

      -->勾选上"转置"-->确定-->列转行转换成功 

      转换结果展示

     

    2.行转列

      同样也是需要用到"选择性粘贴"的"转置"功能

     相关推荐:

     

     
    展开全文
  • Excel行列转换

    2016-10-11 14:11:25
    步骤1: 新建一个工作表,选取一个和原表行列相同大小的区域(行数=源表列数,列数=原表的行数),如本例原表是7列6行的区域,那么在新工作表中选取 7行6列的区域,当然选更多的行列数也行。 步骤2:选取区域后,...

    这里写图片描述
    步骤1: 新建一个工作表,选取一个和原表行列相同大小的区域(行数=源表列数,列数=原表的行数),如本例原表是7列6行的区域,那么在新工作表中选取 7行6列的区域,当然选更多的行列数也行。
    这里写图片描述
    步骤2:选取区域后,在编辑栏中输入=TRANSPOSE(Sheet2!A1:G6),光标放在公式结尾处,按ctrl+shift同时再按回车键,再同时松开三键结束公式输入。结果如下图所示。

    转置后如下图

    这里写图片描述

    展开全文
  • 当编辑一张 Excel 表格时,发现表格的列数太多,而行数较少,为方便打印,这时你或许会希望将该表格行列转换;或许是为了做进一步做统计分析,当前格式不太方便,这时也会用到行列转换。   下面这种交叉式的 Excel...

    问题描述
      在工作中时常会遇到对 Excel 表格的处理。当编辑一张 Excel 表格时,发现表格的列数太多,而行数较少,为方便打印,这时你或许会希望将该表格行列转换;或许是为了做进一步做统计分析,当前格式不太方便,这时也会用到行列转换。

      下面这种交叉式的 Excel 表是很常见的格式,用来填写和查看都比较方便:
    1
     但是,如果想做进一步的统计分析,这种格式就不方便了,需要行列转换,变成如下格式的明细表:
    2
     显然,手工操作会非常麻烦,若数据量小还可以,数据量大了会耗费大量时间,简直就是灾难。

      我们就以此为例,举例说明几种常见的解决方法。

    解决方法
    方法 1:Excel 数据透视表
      Excel 可以通过数据透视表支持行列转换功能,效果如下图:
    3
     显然,这并不是我们想要的格式。Excel 的数据透视表可以满足简单格式的行列转换,但如果格式稍微复杂,转换效果往往是不尽人意。

    方法 2:编程语言
      以写程序来解决,思路也很简单:

      · 加载 excel 文件,装载需要的 sheet 工作表。

      · 读取“账套名”所在行,将其转换成字符串数组。

      · 读取“科目编码”所在列,将其转换成字符串数组。

      · 按“科目编码”分组,与“账套名”数组构造一张表。

      · 根据“账套名”对应的数据,遍历所有的明细值填充到相应的表中。

      · 这样就可以构造出对应的明细表来。

      如果用 Java 来实现,初步估计代码量也不会少于 200 行,若需要结果输出成 excel 文件则开发工作量会更多。虽然 Excel 自己提供了 VBA,但那个麻烦程度谁用谁知道,不提也罢。那其它的语言呢?传说 python 有处理行列转换的功能(pandas 包里有 pivot 功能),代码量相对于 java 会少很多, 我们来试一下:

    import pandas as pd
    import numpy as np
    
    df = pd.read_excel("D:\\excel\\pandas.xlsx", 0, 3)
    cols = df.columns.values.tolist() #获取数据头信息
    
    #移去前两列,只保留需要行列转换的列
    cols.remove('科目编码')
    cols.remove('科目明细')
    
    #构造一个 list.
    frames=[]
    for col in cols:
        df1 = df.pivot_table(index = ['科目编码','科目明细'], values = [col])
        df1.rename(columns={col: '数值'}, inplace=True)
        df1[3]=col
        #转换后的数据追加到 frames 中.
        frames.append(df1)
    
    # concat 将相同字段的表首尾相接
    result=pd.concat(frames)
    result.rename(columns={3: '帐套名'}, inplace=True)
    result.to_excel('D:\\excel\\pandas_n.xlsx', sheet_name='科目明细')

      效果还不错,果然比较简洁!这是 Python 生成的 excel 文件:
    4
    不过,存在一点小问题,这个 excel 格式有点特殊,想用 Python 的 pivot,我们要将“科目编码”,“科目明细”移到与转换列标题所在同一行上,变成下面的样子。否则在代码上就得特殊 “照顾”,反正只有一行,手工做一下就算了,比写代码省事。
    5
     无论如何,python 的这个细节处理的小“瑕疵”并不影响其方便性。python 确实名不虚传,虽然使用了循环,但整个代码也就只有 10 来行的样子。

      还能更简单吗?

      嘿嘿,能!

    方法 3:集算器编程
      下面我们来看集算器的代码:
    a
     代码很简单,我们把每一步的中间结果列出来看看:

      A1:加载 excel 文件工作表 1,提取指定范围的数据 (从 3 行到 40 行),其中选项 @ t 表示首行为标题,载入数据, 生成表格如下:
    6

    A2:删除非数据行
      7
     A3:更换列名称
    8
     A4:把从第 3 列开始的列名称连成字符串,用“,”分开
    9
    A5:pivot 函数将行列数据进行转换,把 A4 中对应的列数据置放到“数值”列
    10
    A6:将整理好的数据另存储为 xlsx 文件
    11
     集算器脚本只有 6 行,木有啥循环、判断之类的玩意儿,也不像 Python 那样要先手工倒腾一下,就把这看似有点“乱”的数据表格处理好了。相比之下,Python 采用列优先转换多次循环 “N”字方式,集算器则用行优先一次性处理,在处理数据上,集算器对细节处理及使用习惯更专业。而且集算器的开发环境也容易调试,可以看到每一步运算的中间结果,方便挑出错误,开发更为便捷。在这种常规数据处理的任务中,集算器要比 Python 更为优越。

    优势总结
      就这个问题,关于 python 与集算器的差异,再说说自己的一点心得体会:

    1. 多列转换
        对于需要多列行列转换并汇集成“长”列的场景时,python 需要将每个数据列构造成数组,并增加一列记录当前列名,再追加到一个大的列表中,最后合并,合并中去掉非首个数组中的 title;

      集算器就容易些,它直接把想要转换的列汇集在一块就行。相对于 python 的繁琐,集算器至少能省几个脑细胞。

    1. 名称更改
        python 对于需要转换列的名称不能更改, 如 cols[0]=’天津’,此时 python 找不到修改前的关键字,“哪个朋友挖的坑,别以为我发现不了”,欺负大爷眼花,给报个异常行不?

      但对应的集算器来说则很方便, 如:>A1.rename(_1: 科目编码,_2: 科目明细,4 成都: 成都)

    1. 标题空值问题
        Python 读取 excel 表中的转换行标题时,前面两列为空 (对应原来的 excel 中的“科目编码,科目明细”),此时标题 cols 中的空值就没有了, 这个“坑”有点隐蔽啊,我真没有发现, 把其中的两列弄丢了,真有点丢脸 ;

      但集算器能识别出来,会自动加上对应的标识 _1、_2,这样处理数据时,就能找到其中对应的两列。

    1. 网格式编程
        集算器使用网格 A1 这种格式,它自动与所在位置的对象关联起来,这点非常方便, 感觉很有特色;Python 就只能望洋兴叹了。
    展开全文
  • java实现excel行列转换

    千次阅读 2012-09-05 18:17:35
    根据本人自身的需求,周末写了个excel行列转换代码,可处理一定量的数据。package com.lfn.excel;import java.io.File;import java.io.IOException;import jxl.Cell;import jxl.Sheet;import jxl.Workbook;import ...
  • excel-bean 主要功能是 JavaBean 与 Excel 数据行之间的互相转换,普通项目中都会有Excel的导入导出功能,使用该工具可以大大提高工作效率,使开发者不必关系复杂的Excel解析。 主要解决 Excel 行类型数据与 ...
  • 当编辑一张 Excel 表格时,发现表格的列数太多,而行数较少,为方便打印,这时你或许会希望将该表格行列转换;或许是为了做进一步做统计分析,当前格式不太方便,这时也会用到行列转换。 下面这种交叉式的 Excel 表...
  • VBA控制Excel行列转换

    2012-05-05 21:02:48
    Sub Macro2() ' ' Macro2 Macro ' ' Range("D8:F15").Select Selection.Copy Range("D20").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlan...
  • 实现将excel行数据按行输出到新的excel,并按列展示,开发环境VS2012.可作为转换工具直接使用
  • EXCEL行列转换

    2014-01-16 13:38:28
    EXCEL行列转换 1. 复制欲转换的表格内容 2. 鼠标选定目标单元格 3. 菜单"编辑" >> "选择性粘贴" >> "转置", 点击"确定"即可
  • pandas行列转换

    2020-11-26 20:31:23
    import pandas as pd import os os.chdir(r'文件路径') videos = pd.read_excel(r'Videos.xlsx',index_col='...#进行行列转换方法一 df1 = videos.transpose() #进行行列转换方法二 df2 = videos.T print(df2) ...
  • 一般的方法行不通,可能要用到宏或者编一个程序,请帮忙!
  • 主要介绍了C#中DataTable实现行列转换的方法,实例分析了C#操作DataTable的相关技巧,非常具有实用价值,需要的朋友可以参考下
  • Excel宏——行列转换

    2009-11-22 00:35:58
    EXCEL中可以方便进行行列转换 例如: 1 a 1 b 2 a 可转化为: 1 a b 2 a 反之亦可以,便于进行统计
  • java面试题之行列转换 Oracle 和SQLServer两种方式 详细例子以及说明 一条语句实现,绝对看得懂! 方便理解!
  • 例子:想把表1—->>转换成为表2 表1: 表2: R实现数据的透视功能,使用reshape2包中的melt()函数和dcast()函数。在《R语言实战》这本书中有着详细的介绍。我在这里引用了其中的一些内容。 首先是融合函数,...
  • Excel的数据透视表不仅可以进行分类汇总,而且可以轻松快捷的进行行列转换 例如: 按照上篇文章中的方法我们可以插入数据透视表,将姓名放到行中,将课程放到列中,将分数放到值中: 从上面的结果中,我们可以...
  • excel如何方便的进行行列互换,采用下面的介绍一键...一个好用的excel行列互换绿色工具, 地址:http://www.excelfb.com/ 点击 : 将表换成另外一种表格式 --》行列互换绿色工具。 下图中第四个就是工具的效果 ...
  • C# Datatable数据Excel导出和行列转换

    热门讨论 2011-12-27 00:31:51
    C# 实现DataTable数据的excel导出方法简单包装,行转列的实现
  • excel行列转换

    2007-06-19 14:20:00
    Excel2003中,用“选择性粘贴/转置”功能: 选中数据区域执行“复制”命令; 在新单元格区域,执行“编辑/选择性粘贴/数值/转置/确定”即可。
  • EXCEL行列转换

    2019-10-29 23:08:45
    高B格可以参看如下链接的方式: EXCEL中使用TRANSPOSE函数转置 本人觉得如下的方式,效率会快点: 选择要转置的内容,复制,点击粘贴,然后选中转置,就可以将内容转置。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,961
精华内容 2,384
关键字:

excel行列转换