Excel行列转制
文章目录
今天人事部的同事拿了个Excel的表过来说要我们这里帮点忙。这是一张员工薪资补贴表,每个人有几栏数据分别是工资和各种补贴什么的,反正是从什么系统里面导出来的,需要转换一下行列方便处理数据
原始表 数据胡诌的

需要做到的样子

总之先做个筛选把名字排出来复制黏贴一下,先把姓名列贴好然后把几个项目敲上去
之后就比较麻烦了,笨办法是选取C2到C5的数据然后复制一下,贴的时候选择选择性黏贴中的转制。
然后一个人做一次,人数不多是没什么问题,但是如果人数多了就很要命,而且容易出错,不然人家也不会找过来要帮忙了。
一开始是想写个宏来做的,指定一下Source和Target单元格和数据的行数然后让宏自动做。
不过突然想试试函数能不能解决,结果发现函数可能比宏解决起来更简单。
直接在B2输入公式=INDEX(Sheet1!$C:$C,(ROW()-2)*4+COLUMN(),1)
然后往右边拉一下,下面拉一下,就完成了,非常简单
解释一下函数
用Index定位找需要的值。Sheet1!$C:$C
就在Sheet1里面C列的数据里面定位。用绝对引用防止拉的时候被自动换成DEF…(ROW()-2)*4+COLUMN()
因为一共是从工资到车贴的四项数据,所以像是张三的这些数据就是从C2到C4的四格,李四就是从C5到C8的四格,用(ROW()-2)*4来计算需要的偏移量,然后用加上COLUMN()的值来定位要需要的格子。
所以有的问题用用函数就还蛮简单的,不过我还是想把这个宏什么时候来写一下,这样以后有的情况下用起来也比较方便。

