上周听技术部分享简书的时候,基本处于听不懂状态,于是暗暗决定本周也要写篇技术类的,最好也让技术人员看不懂。哈哈。。。
题目是上周就想好的,其实连下周的题目也想好了。就看到时候有没有空去深入寻找答案了。
一、问题描述
最近在研究如何把多列excel变成一列,如下图所示。
4列变1列可能有些人会说,三次复制转置黏贴即可。对于数据少是可以的,当数据很多的时候,就不行了。于是我就百度了一下,看有没有什么好的方法,用公式来实现它。
终于功夫不负有心人,找到了答案,但是理解答案花了不少时间。接下来就来和大家分享一下。
二、函数讲解
首先说一下答案:=OFFSET($A$1,INT((ROW()-1)/4),MOD(ROW()+3,4))
这个公式里牵涉到4个函数,分别是OFFSET,INT,ROW,MOD,接下来就分别介绍一下他们是什么意思。
1、OFFSET函数:引用某个单元格或区域,它的语法是
OFFSET(reference,rows,cols,height,width),举个例子大家就能明白。
通俗点说,以A1为起点,向下移动2行,向右移动两列,区域为1的单元格。
例子是以A1(1)向下移动2行(9)向右移动2(11)就是11。
2、ROW函数:返回行数,它的语法是ROW(),举个例子
ROW函数举例.pngC2所在的单元格是在第2行,所以ROW(C2)=2
展开一下,COLUMN()为返回列数,所以COLUMN(C2)=3
3、INT函数:取整函数,举例:INT(0.5)=0
4、MOD函数:求余函数,举例:MOD(5,2)=1
三、题目分析
根据OFFSET函数,如果一个一个写,就如同下图,然后分析一下规律。
Paste_Image.png
分析:第一个数字,每4个递增1,后面一个数字为0-3循环。
第一个数字可以通过:INT((ROW(A1)-1)/4)来实现;
第二个数字可以通过:MOD(ROW(A1)+3,4)来实现;
写好第一个公式下拉即可。
其实这个方法我还真想不出来,需要根据数字的变化来找规律。如果是5列变1列,那就把4改为5,+3变为+4即可。
以上就是我本周的简书分享,希望有人能看懂吧!
网友评论