今天工作中遇到需要将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 希望各位指正!

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

  1. 用powershell+excel行列转置三步走

    本文重点讲解第一步,手动在excel表中输入公式,或者用powershell自动输入公式. 第二步,用powershell向excel中写入数据,略. 第三步,用powershell从excel中读取 ...

  2. 使用SQL SERVER PIVOT实现行列转置

    一般我们在使用SQL语句实现行列转置时候,最常用的方法无外乎就是 case语句来实现,但是如果需要需要转置的列太多,那么case起来语句就无限庞大,十分不方便,sql server中的PIVOT就可以 ...

  3. Excel-怎样实现行列转置

    有时候,我们为了某些需要,必须把工作表的行列进行转置的方式显示.重新输入很浪费时间,怎样简单的实现转置呢,强大的excel2007提供了此项功能,具体怎么做,下面看我来演示一下. 工具/原料   装有 ...

  4. 行列转置(Oracle)

    一.Oracle行列转置 1.行转列 (1)创建表格.插入测试数据 create table student( id number, name ), course ), score number ) ...

  5. Microsoft Excel行列限制简明列表

    Excel行列限制简明列表:数据出处+-----------------+-----------+--------------+---------------------+ | | Max. Rows ...

  6. SQL动态长度行列转置

    一,案列问题描述: 某销售系统中,注册的用户会在随后的月份中购物下单,需要按月统计注册的用户中各个月下单的金额.源数据表如下: FM::注册月份,CM: 下单月份, AMT:下单金额 期望得到如下统计 ...

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

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

  8. Oracle 行列转置

    两种简单的行列转置 1.固定列数的行列转换如student   subject    grade--------- ---------- --------student1  语文       80st ...

  9. HAWQ中的行列转置

    行列转置是ETL或报表系统中的常见需求,HAWQ提供的内建函数和过程语言编程功能,使行列转置操作的实现变得更为简单. 一.行转列 1. 固定列数的行转列 原始数据如下: test=# select * ...

随机推荐

  1. js 为字符串添加样式

    <html><body> <script type="text/javascript"> var txt="Hello World!& ...

  2. iOS改变字母的大小写

    使用lowercaseString,uppercaseString -(void)test{ NSString * str = @"person"; NSString * str1 ...

  3. SQL数据库中字段类型 与C#中的对应字段类型

    数据库中的字段类型和对应的C#中的对应字段类型 数据库                 C#程序int int32text stringbigint int64binary System.Byte[] ...

  4. Python控制window进行简单的消息弹窗

    有人提到可以用easygui 稍后尝试一下

  5. test homework ~ coverage about method printPrimes

    /******************************************************* * Finds and prints n prime integers * Jeff ...

  6. hdu 5596 GTW likes gt

    题目链接: hdu 5596 题意不难懂(虽然我还是看了好久)大概就是说 n 个人排成一列,分成两组, 第 i 秒时第 i 个人会消灭掉前面比他 b[i] 值低的且和他不同组的人,c[i] 表示第 c ...

  7. monkey 自己总结

    adb shell monkey -p com.test.smstest --pct-touch 50 --pct-motion 30 --pct-nav 20 -s 10 -v --throttle ...

  8. python多线程

    python多线程有两种用法,一种是在函数中使用,一种是放在类中使用 1.在函数中使用 定义空的线程列表 threads=[] 创建线程 t=threading.Thread(target=函数名,a ...

  9. 删除文件夹工具【fuckwinfsdel】,如 node_modules

    强力删除文件夹. 安装 npm install fuckwinfsdel -g 使用 fuckwinfsdel youdir 例 fuckwinfsdel node_modules 项目地址 http ...

  10. javascript event(事件对象)详解

    javascript event(事件对象)详解   1. 事件对象     1. 事件对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 什 ...