Excel怎么用公式进行单列数据到多行多列数据的转换,是无法通过简单的操作完成这个任务的。在之前的文章中,我们讲过通过选择性粘贴来进行单行或单列的转置,以及二维表格行列的转置,但今天要介绍的是一转多,因此需要使用到复合公式或VBA代码。
这里我们还是用公式来计算,通过对公式的解析,有助于大家对一些函数的了解和使用。
在下图中,这是一列英文词句。
(资料图片仅供参考)
我们的目的是将A列的数据转换为任意的列数,以使数据在指定的行列下重新排列,如下图所示,将A列转换为6列数据,按照原先A列数据的排列,从左至右,再到下一行,继续从左至右,来排列显示所有数据。
要达成上图效果,其实并不复杂,对excel函数使用较多的童鞋可能马上就会想到一个函数——OFFSET函数。
offset函数是一种引用函数,用来引用某个单元格或区域的数据,且常用于组合函数中。
再看第三个参数,我们这里直接输入了0,即表示向右移动了0行,综合上面说的三个参数的值,即offset($a$1,0,0),以a1单元格为参照,向下移动0行,向右移动0列,也就相当于没有移动一样,因此公式返回的结果就是a1单元格的值。
我们将公式向右拉或者向下拉,可以看下图。
公式为”=OFFSET($A$1,ROW(B1)*6-6+COLUMN(B1)-1,0)“,row(b1)的值仍为1,column(b1)的值为2,因此它以a1为参照,向下移动了1行,即a2,也就是引用了a2的数据。
同理,我们将公式向下拉:
通过前面的讲解,童鞋们能不能理解这个公式的含义呢?!
offset函数虽然不像sum、sumif、vlookup等函数一样使用频繁,但它的作用却非常多,与其他的函数组合到一起,可以起到意想不到的效果。
快关注作者君,一起学习更多的Excel知识吧!
标签:
滚动