登录
首页精彩阅读妙用“连环引用法”实现二维表转一维表
妙用“连环引用法”实现二维表转一维表
2015-12-25
收藏

妙用“连环引用法”实现二维表转一维表

大神chandoo最近有一个贴,介绍如何用sumifs对不规范的表格进行条件求和,技巧非常棒,这里不细述,要点是sumifs的计算区域和条件区域可以有行或列上的偏移,并不一定要在同行或同列上,只要数组结构一致即可。见这里

但他那个贴的根本问题是数据表格不规范,不便于后续函数统计。Structure is everything,所以说你必须有良好的工作习惯,把表格设计、录入规范,后面的工作才好做。
那怎么把贴中的不规范表格转换为规范的表格呢?
chandoo在新贴中介绍了两种方法,一是公式法,一是vba法,见这里。vba完全是不必要,公式法是:
=IFERROR(INDEX(data,2*(INT(J5/7))+1,MOD(J5,7)+1),"")
=IFERROR(INDEX(data,2*(INT(J5/7)+1),MOD(J5,7)+1),"")
这个公式当然很棒,但太费脑了,一般人要想出、甚至只是看懂都不知要死多少脑细胞,我就根本不想琢磨。
这里介绍我自己常用的“连环引用法”,我们在图表仿的002、015、024A中都有用到和介绍过这个技巧。这里的情况和024A类似,不过方向是水平的。

如图,要把不规范的二维表格转换为一维表格,我们在原表右侧输入公式:
I4:=B6
I5:=B7

然后选中I4:I5,向下复制到I15;再选中I4:I15向右复制到AQ列。因为原表有6*7=42列,所以到AQ列,也可直接拖到右边都是0出现为止。
这时观察复制出来的结果,你会发现图中绿色框线内B4:AL5区域正是我们想要的结果!
现在是横的,我们只要复制B4:AL5,再找个空白地方,选择性粘贴,值,旋转,确定,就得到了纵向的一维表格!

这简直就是一个魔术,其中的原理,就在于一环套一环的连环引用,你可以琢磨一下。
这个方法只是最简单的鼠标操作,完全不用动脑筋,但简单、巧妙之极,效率也非常高,分享给大家。我们可以称之为“连环引用法转二维表为一维表”,横向、纵向都可以使用。

数据分析咨询请扫描二维码

客服在线
立即咨询