【DEMO案例】连涨五天的股票

目标

从Excel中获取多个股票的日交易数据,计算出哪些股票在上个月里连续上涨超过5天。

esCalc to compute stock rise on consecutive days-1
原始数据在excel中,右边计算表中的是最终的计算结果。

步骤

1、数据整理

导入Excel,删除多余的列

esCalc to compute stock rise on consecutive days-2

2、按照股票分组

在A2格点右键,选择”Quick operation–Group”

esCalc to compute stock rise on consecutive days-3

分组后的结果如下图所示:

esCalc to compute stock rise on consecutive days-4

注意:快捷操作中的分组会自动排序。如要更细致的设置,可以使用普通操作。

3、按照时间过滤

过滤出小于6月30日且大于6月1日的数据。

注意:在计算表中,这个计算可以一步完成,也可以分为2步,即先计算大于6月1日的数据,再在结果上计算小于6月30日的数据。

首先,在B3点右键,选择”Operation-Filter

esCalc to compute stock rise on consecutive days-5

输入一次公式,所有分组均被过滤,这样就过滤出了大于6月1日的数据。注意,计算表可以在分组后过滤明细数据,这是传统电子表格难以做到的。

接着,用同样的方法,过滤出小于6月30日的数据

esCalc to compute stock rise on consecutive days-6

分步计算可以简化问题,避免一次写出复杂的公式,对业务人员更加友好

4、求每日股价的增长值

增长值即当天股价减去昨天股价, 这属于“行间运算” 。

首先,追加一列,在D4输入公式:=C4-C3

esCalc to compute stock rise on consecutive days-7

然后我们获得如下的结果:

esCalc to compute stock rise on consecutive days-8

在计算表中,公式只需要输入一遍,就可以自动复制到其他具有相同业务意义的单元格,复制后的公式会自动变迁,比如D19中的公式自动变为:C19-C18

esCalc to compute stock rise on consecutive days-9

跨组的公式如何变迁?比如D26

esCalc to compute stock rise on consecutive days-10

公式中直接相减是错误的,因为它们不同组。 注意,跨组复制公式时会产生错误,这是电子表格软件的通病。

计算表可以轻松解决这个问题。重新在D4输入公式:=C4[A2]-C3[A2],结果如下:

esCalc to compute stock rise on consecutive days-11

[A2]表示运算的范围只在A2分组内,这样就不会产生跨组的错误

我们知道D26中的正确结果应该是:D26=C26-null=49.91,下面我们选中D26,查看结果:

esCalc to compute stock rise on consecutive days-12

D26格的公式变成了:=C26[A25]-C24[A25] = C26[A25]-null=49.91,结果正确!注意:A25这组并不存在C24格,因此C24[A25]=null

上述的计算有赖于公式正确的变迁,而计算表可以正确地做到。

esCalc to compute stock rise on consecutive days-13

5、计算连续上涨的天数

追加一列,在E4输入公式=if(D4[A2]>0,E3[A2]+1) ,这表示:如果当日股价是上涨的,则将昨天的连涨天数增加1,作为当日的连涨天数。同样的,公式只需输入一次,就会自动复制到同位格中。

esCalc to compute stock rise on consecutive days-14

同位格:具有相同业务意义的单元格。 比如E4、E5、E24、E26都是明细数据,互称同位格。 C2、C25都属于汇总区,互称同位格

esCalc to compute stock rise on consecutive days-15

计算表独有的同位格模型,使分组数据中的复杂计算变得异常简单。传统电子表格进行同样的计算需要大量手工 操作

6、计算最大上涨天数

按照同位格的规律,只要求一只股票的最大上涨天数,所有的股票都会自动计算出答案。在第一支股票的汇总区,比如E2,输入公式:={E3}.max()

esCalc to compute stock rise on consecutive days-16

这里的{E3}表示E3的同位格,即E3到E24

点分组级别”1”可以收缩数据,从而可以更清楚的观察汇总区

esCalc to compute stock rise on consecutive days-17

此时已经可以直观地看到哪些股票的连涨天数超过5天了,比如上图中的E25、E48、E71、E209、E370等。想要”自动的”将这些汇总区的数据过滤出来,传统电子表格是难以做到的。

7、过滤股票

在F2点右键,选择”Filter”,输入:@>=5

esCalc to compute stock rise on consecutive days-18

过滤出的结果即本案例计算目标

esCalc to compute stock rise on consecutive days-19

同位格可以清楚地区分汇总区和明细区,在汇总区执行的过滤不会影响明细区。因此计算表可以轻松地实现分组过滤。传统电子表格难以区分汇总和明细,过滤后会发生数据混乱。