欢迎转发和点一下“在看”,文末留言互动!
置顶公众号或设为星标及时接收更新不迷路
小伙伴们好,今天要和大家分享一道文本题目。通过这道题目,我们可以复习一下多个基础函数的基本操作和应用,这道题目做起来挺有意思的。
原题目是这样子的:
题目要求将左侧的源数据通过公式转换为右侧的格式。仔细看一下,这道题目和以前我们曾经做过的一类题目非常相似,即根据B列数量来重复显示A列数据。但由于这道题目中B列也是文本,这就需要我们动动脑筋了!
看看朋友们都能够写出多少答案吧!
01
INDEX函数巧妙转换数据格式
既然B列中都是文本,不能使用我们之前学过的方法,那我们就先把A、B两列的数据组合在一起吧。
在单元格D2中输入下列公式,三键回车并向下拖曳。
=INDEX($A$2:$A$4&TRANSPOSE($B$2:$B$5),INT((ROW(A1)-1)/4)+1,MOD((ROW(A1)-1),4)+1)
思路:
$A$2:$A$4&TRANSPOSE($B$2:$B$5)部分,其实是构成了一个3行4列的一个矩阵。在这个矩阵中包含了最终结果的每一种可能性
INT((ROW(A1)-1)/4)+1部分,返回1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4这样的序列
MOD((ROW(A1)-1),4)+1部分,返回1,2,3,4,1,2,3,4,1,2,3,4,1,2,3,4这样的序列
最后,利用INDEX来返回最终答案就好啦
02
OFFSET函数巧妙转换数据格式
能用INDEX函数,自然也能用OFFSET函数。
在单元格D2中输入下列公式,并向下拖曳即可。
=OFFSET($A$1,INT((ROW(A1)-1)/4)+1,)&OFFSET($B$1,MOD((ROW(A1)-1),4)+1,)
这个公式比较简单,就不再过多解释了。朋友们有问题可以私信我哦!
03
另一个角度的OFFSET函数公式
这个同样也是OFFSET函数。
选中单元格区域D2:D13并输入公式“”即可。
=T(OFFSET($A$1,INT((ROW($1:$12)-1)/4)+1,))&T(OFFSET($B$1,MOD((ROW($1:$12)-1),4)+1,))
这里OFFSET函数的第二个参数有改变,当OFFSET函数完成偏移后生成了多维数组,需要用T函数来降维。完成后直接合并即可。
04
多维引用
最后,我们来看看多维引用是如何来解决这个问题的。
在单元格D2中输入下列公式,三键回车并向下拖曳即可。
=INDEX($A$2:$A$4,SMALL(((COUNTA($B:$B)-1)<COLUMN($A:$Z))/1%+ROW($B$2:$B$5)-1,ROW(A1)))&INDEX($B$2:$B$5,MOD((ROW(A1)-1),4)+1)
由于这个公式比较复杂,朋友们一时不能理解也没有关系,可以参看相关的帖子。如有问题,也可以私信给我留言哦!
本期内容练习文件提取方式:
链接:https://pan.baidu.com/s/1Y06Cy0GhH-LOhL8KS6zgkQ?pwd=4ifc
提取码:4ifc
-END-
长按下方二维码关注EXCEL应用之家
面对EXCEL操作问题时不再迷茫无助
我就知道你“在看”