Excel实战-表格公式Excel 加油站

Excel实战:逆向还原统计数据

2019-05-06  本文已影响0人  简单快捷

本篇适合:有一定公式基础,主要思路分享。

QQ交流群:644328490。

需求:将统计类报表数据,逆向还原为一维数据......

图-1丨逆向还原

常规操作,是统计分析,即由图-1右边→左边。本例讲解非人类逆向操作,由左边报表,利用公式拉出右边明细。(逆向思维更考验公式思路)


01思路解析

初想,应用VBA代码,容易实现。但一般人(包括我)不会VBA,就想试试纯公式。

实际理清思路后,公式也简单:sum、row、countif,再加上index函数,都很常见,可搞定。

如图-1中“王某”买4个苹果,还原为明细是4条。想想一下操作场景:公式一直下拉到第4个单元格,这之前都是“王某”,而从第5条开始,变成“李某”,再从第7条变“陈某”......

OK,根据这个场景,首先计算机需要知道,公式所在单元格,是第几个单元格,自然想到row函数。

然后确定从第几条开始变。例如从第5,这个数字是比王某买的苹果数大一点;又如从第7,它比王某+李某买的苹果数之和,又大一点。这个简单,求和函数用sum。还要比较大小,也可用sum,但countif更简洁明了。

最后用index函数,返回结果即OK,如图-2:

图-2丨逆向还原公式

02步骤详解

如图-3,首先添加辅助D列求和,D1=0,D2单元格公式:=SUM($B$2:B2),向下填充。

图-3丨增域求和

☆注意:此处引用区域前半绝对引用,后半相对引用,构建“增域求和”,即公式下拉时求和区域逐渐增大。

E列辅助列是复制C列,以便index返回结果,不用也可。

F列为row函数,如图-4,F2处公式:

=ROW(C1),向下填充。

图-4丨row行序号函数

辅助G列为countif函数,G2处公式:

=COUNTIF($D$1:$D$5,"<"&F2),向下填充。

图-5丨比大小

☆注:这里是将row函数结果与sum函数结果比大小,是index函数返回结果的依据。

H列index函数返回结果,H2处公式:

=INDEX($E$2:$E$5,G2),向下填充。

图-5丨index函数

最终合并公式如下:

=INDEX($C$2:$C$5,COUNTIF($D$1:$D$5,"<"&ROW(C1))),向下填充。


03总结

表格公式问题,可加qq群644328490,或关注微信公众号“闲钓宇哥”。

上一篇 下一篇

猜你喜欢

热点阅读