把下面这样一个20行10列的数据,转化为1列,按从上至下的顺序。现在需要把它转化为M列这样的200行1列(M1:M200)的数据。在数据量比较小的时候,我们只需要依次把A1:A20复制粘贴到M1:M20,然后B1:B20复制粘贴到M21:M40......依次复制粘贴完成就行。而实际工作中,我们遇到的数据经常是千行万行,几十列上百列,因此这样复制粘贴非常的低效浪费时间。=INDEX($A:$J,MOD(ROW()-1,20)+1,INT((ROW()-1)/20)+1)第二步:下拉填充200行(20×10),即可生成完整1列数据。原理:通过INDEX选取目标数据区域,返回行和列交叉处的值,用MOD函数循环取行(1-20重复),INT函数循环取列(1→10),复刻从上至下、逐列顺延的顺序。
结合具体使用场景,
如果数据区域是一个10000行30列的数据,把公式中的20改为10000就行,如下:
INDEX($A:$T,MOD(ROW()-1,10000)+1,INT((ROW()-1)/10000)+1)如果数据区域是一个X行Y列的数据,如下:
=INDEX(数据区域,MOD(ROW()-1,X)+1,