问题:4*7矩阵转成3*10矩阵
函数解决:
{=INDEX(T(OFFSET($A$1,(ROW($1:$30)-1)/7,MOD(ROW($7:$36),7))),ROW(A1)*3+COLUMN(A1)-3)}
思路:
先将4*7矩阵转换成1*30矩阵的内存数组。
转换使用Offset函数,第一个参数为固定的A1,第二个参数依次为7个0、7个1、7个2和7个3,第三个参数为0、1、2、3、4、5、6的循环。
利用Row(1:30)-1建构一列结果为0-29的内存数组,将这30个数分别除以7,所得结果整数部分达到第二个参数的要求。
利用Row(7:36)建构一列7-36的内存数组,分别计算每一个数除以7的余数,所得结果达到第三个参数的要求。
当Offset除第一个参数以外的参数为内存数组时,其结果为多维引用,无法在一个单元格平面内正常显示,此处用T函数将其每个平面的第一个结果提取出来,重新建构成一个1列30行的内存数组。
再将1*30的矩阵转成3*10的矩阵。
利用Index函数生成一个结果,再右拉下拉完成公式。
Index的第一个参数即T(Offset……,第二个参数是利用Row和Column函数建构一个右拉下拉后得出下图结果。
Row(a1)*3右拉不会导致结果变化,下拉会导致结果以3为步长的变化。
Column函数下拉不会导致结果变化,右拉会以1为步长变化。
再-3以修正结果。
标签:10,结果,30,矩阵,参数,内存,转成 From: https://www.cnblogs.com/officeplayer/p/16748972.html