这个offset的公式是一个偏移位置取值的方法。
Offset(基准位置,偏移多少行,偏移多少列)
例如这里,用A1这个单元格作为基准的话,要取C4这个位置的值,那公式就变成
=offset(A1,2,2)
所以如果要把以序列变成一列的话,可以用以下公式。
=OFFSET($A$1,INT((ROW(A1)-1)/3),MOD(ROW(A1)-1,3),1,1)
这里取数的顺序是从左到右取3个单元格,然后换到下一行又从左到右取3个单元格,如此类推。
这个写法适用于列固定,但行不固定的情况。或者需要按从左到右的顺序。
首先这个把基准的位置固定为A1,所以用了$A$1
偏移行这里,因为每3行取的是同一列的数,所以行的偏移里面用的是是A1的行数(这里不加$是因为需要在复制的时候公式需要自动调整参照单元格,即往下复制的时候会变成A2,A3…)。当参照单元格的行数小于等于3的时候,INT((ROW(A1)-1)/3)=0(INT为取整公式),参照单元格的行数为4-6时,INT((ROW(A4)-1)/3)=1…
偏移列这里的其实也是一样,只是换了一个计算方法。用参照单元格的行数-1再对3取模,即除以3取它的余数。
最后的两个1是目标单元格的取数范围,为可选参数,可以不填。
所以,公式往下复制之后实际上就会变成
第1格:=offset($A$1,0,0)
第2格:=offset($A$1,0,1)
第3格:=offset($A$1,0,2)
第4格:=offset($A$1,1,0)
第5格:=offset($A$1,1,1)
第6格:=offset($A$1,1,2)
….
或者也可以换个顺序,从上到下取3格,再换到第二列。这样的写法适合于行固定但列不固定的情况。或者需要按从上到下的顺序。
=OFFSET($A$1,MOD(ROW(A1)-1,4),INT((ROW(A1)-1)/4)