Excel 行列转置 解决竖向拉,字母跟着递增的问题

今天工作中遇到需要将Excel行列转置涉及到的数据单元格一共几千个

查询网上说可以通过复制粘贴单元格,粘贴选项中转置一项实现,但是所涉及的sheet页中,数据格式和单元格格式各不一样,转置失败!

怎么做呢?

先看看查询Excel函数的结果:

首先看看INDERECT函数的定义:返回字符串所指定的索引

比如:

有了这个函数,解决当前问题的思路就是在竖向拖动的时候,能对应到INDIRECT("A1"),INDIRECT("B1"),INDIRECT("C1")所涉及到转置的问题,

就解决了

所以接下来的问题,就是要解决在竖向拖动的时候,单元格怎么对应生成"A1","B1","C1"的问题

查询之后看到,列名不就是A,B,C,D...这样排列的吗?所以用Address函数取列名

现在的问题就是对K$4进行处理,只保留列部分("K",不能写死就取一位"K",因为还有"AB","AZ"这种列)

所以用动态截取:

所以,最后的转置公式为:

=INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&"1")

但是这样解决了竖着拉列名跟着变化的问题,没有解决横着拉原Sheet页行编号的问题,因为公式最后&"1"是死的在转第二行数据的时候不得不写成

=INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&"2")

所以最后改进为:

=INDIRECT("Sheet1!"&LEFT(ADDRESS(1,ROW(),2),FIND("$",ADDRESS(1,ROW(),2))-1)&COLUMN())

刚开始学习Excel 希望各位指正!

时间: 2024-10-11 01:44:04

Excel 行列转置 解决竖向拉,字母跟着递增的问题的相关文章

还在傻傻用Ctrl+C和Ctrl+V吗?这2个行列转置方法助你效率提80%!

Excel行转为列,列转为行的例子特别常见,以下这两个方法可以帮助你解决99%行列转置问题! 点击文章右上角给小编一个"关注"鼓励,谢谢您! 我们先来对比下面两张图片: 当下面表格的名字越来越多时,表格也就越来越来,查看也就越来越麻烦. 而下面这个表格显示看起来比较舒心,这也是我们平时制作表格的方式. 那么通过对比,我们知道哪个图片才是我们想要的.但是有时候别人发给我们的表格并不是我们想要的方式,而且数据量很大,这时该用什么方法变成我们想要的呢? 方法一:使用"选择性粘贴&q

Excel-怎样实现行列转置

有时候,我们为了某些需要,必须把工作表的行列进行转置的方式显示.重新输入很浪费时间,怎样简单的实现转置呢,强大的excel2007提供了此项功能,具体怎么做,下面看我来演示一下. 工具/原料 装有excel2007的电脑一台 步骤/方法 如图所示,选中要进行行列转置的单元格区域.   选择"开始"选项卡,在"剪贴板"组中单击"复制"图标. 步骤阅读   在工作表中选中目标粘贴区域的左上角单元格.如图所示.   单击"剪贴板"组

excel 行列转换

excel 行列互换 CreateTime--2018年5月29日08:24:48 Author:Marydon 1.列转行 第一步:在第一行插入空行 鼠标移至第一行最左侧-->鼠标样式会变成一个向右指示的图标→-->点击即可选中该行 -->右键-->插入 第二步:选择性粘贴 选中要转换的数据-->进行复制-->鼠标选中A1单元格-->右键-->选择性粘贴 -->勾选上"转置"-->确定-->列转行转换成功 转换结果展示

Excel 输入数据的效率 - 下拉式菜单设计 (三之二)

摘要:Excel 输入数据的效率 - 下拉式菜单设计 (三之二) 在前文"Excel输入数据的效率-下拉式菜单设计(三之一)中曾经提到单一选项菜单的设计方式.这种菜单的缺点在于:菜单中的客户编号一多,就很难记得那一个编号对应到那一家客户.如此一来,就容易告成选错的现像发生.因此,必须使"多重选项"的菜单来解决此一问题.所谓"多重选项"是指:能在菜单中同时看到客户编号和客户名称.这么一来,就不会选错客户编号了. 全文介绍:http://support.mic

Asp.net导出Excel乱码的解决方法

通过跟踪Asp.net服务器代码,没有乱码,然而导出Excel到浏览器后,打开时出现乱码. 解决方法是添加编码格式的前缀字节码:Response.BinaryWrite(System.Text.Encoding.Unicode.GetPreamble()); ? 1 2 3 4 5 6 7 8 9 10 11 12 13 Response.Clear(); Response.AddHeader("content-disposition","attachment;filenam

poi excel批量导入 解决各类型的数据

String value=this.getValue((HSSFCell) row.getCell(position)) 数字类型  时间类型 字符串类型验证没问题, 数字类型如果是1234.0会将其变成1234  如果是1234.5保存仍然保持小数位1234.5,用来解决电话号码和普通数字问题 时间类型将其格式化成了 2015-12-09 12:13:12这种格式便于保存数据库 //解决类型问题,获得数值 public String getValue(HSSFCell cell) { Stri

简化实现动态行列转置的SQL

动态行列转换的计算在实际业务中非经常见,网上各类技术论坛上都有讨论,比方以下这些问题: http://www.iteye.com/problems/87788 http://bbs.csdn.net/topics/390869577 http://bbs.csdn.net/topics/391000711 http://bbs.csdn.net/topics/391001035 http://bbs.csdn.net/topics/390888703 http://bbs.csdn.net/to

windows server 2008 x64 上asp.net 调用 word, excel 出错的解决方式

异常信息: System.Runtime.InteropServices.COMException message:内存不足,请现在保存文档 网上的一种方法是 但是,在64位机器上安装32位的office,在DCOM 配置里是找不到 word,excel的选项的. 下面用这个方法解决: This solution is ...?Windows 2008 Server x64 Please make this folder.C:\Windows\SysWOW64\config\systemprof

SqlBulkCopy excel 字段映射解决办法二 使用数字索引代替 字段名称 做映射 避免字段中有中文 大小写等情况

多线程的SqlBulkCopy批量导入.事务和SqlBulkCopy使用的数据集中自定义映射字段的注意事项 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68