今天有学员问小编这样一个问题。需要把左边的表变成右边的样子。 就是把3列数据合并到一列里面。具体效果如下图所示:
那么这个问题怎么解决呢?快跟着小编一起来看看吧:
1.首先我们需要理解从A列到C列里面取数据到F列的逻辑,小编在“苦苦”分析之后得知:
F列所需要的结果,是每隔4行(有1个空白单元格作为间隔)提取左表里1条数据记录。
那么我们来梳理一下,可知F2、F3和F4单元格内都取左表里面的第1条数据记录;F5单元格留空。同理F6、F7和F8单元格数据都取自左表里面的第2条数据.以此类推。
2.使用ROW函数模拟从1开始重复3次后隔着1个空白单元格并递增的数字序列
经分析发现,其实是隔着4行重复递增的数字序列。因此需要使用ROW函数和数组4,结合之后为:=ROW(1:1)/4。之所以使用ROW函数应用第一行,其实跟第一行的内容无关,只是为了得到了数字1而已。如下图H列的公式:
根据上图我们可以到,ROW函数得到的结果和G列的数字序列是不一样的,怎么办呢?这时我们可以用ROUNDUP/CEOLING等函数来实现向上取整的效果
3.接下来,使用INDEX函数取数就可以了,不过INDEX的第3参数(列号),得用MATCH函数根据E列的字段名在左表里面的第1行表头里定位。 在 H2 单元格输入公式:
=index($A$2:$C$30,Roundup(row(1:1)/4,0),match(E2,$A$1:$C$1,0))
4.最后使用IFERROR函数来屏蔽错误值就可以了