2021年6月16日 近期为了验证课程测试题,深入了解了下 Excel 数据分析的功能,找到一些有趣的技巧,记录一下。
满足条件的单元格的位置,及其引用
在评估创业点子的盈利性(Profitability evaluation),绘制上面的表格(考虑TVM - Time Value of Money),算是基本的操作,即得到连续几年预估的收益情况。其中,投资回收期(Payback period)的计算,是评估盈利性的指标之一,也就是看在开始后未来某个时间点收回投资的时间点。
以前,都是眼睛看出来第5年中的某个点,然后手工完成计算:
这次就想能否自动计算,也就需要知道
- "Cumulative Value" 列中有多少行的数值低于投资 - 应该是4
- 根据前面的数值,取得相应单元格的数据 - E5和D6,也就是
E(4+1)
和D(4+2)
。
为简便,将"Cumulative Value" 列中有多少行的数值低于投资
单独设了一个单元格 - 即payback-period上面的4,表达式就是=COUNTIF(E2:E6,"< "&(A8)&" ")
。其中,A8
是投资额的单元格。
那么,payback-period
右侧的单元格的计算公式就是:=COUNTIF(E2:E6,"< "&(A8)&" ")+(A8-INDIRECT("E"&(M9+1)))/INDIRECT("D"&(M9+2))
。其中的INDIRECT("E"&(M9+1))
和INDIRECT("D"&(M9+2))
也就是对E5和D6单元格的引用。
求解置信区间中的边界值 - NORMINV()
,FINV()
,``
在课程中梳理了统计学(基础部分),其实也就是围绕4个分布计算给定置信度的置信区间,进而进行推断的过程。比如,下面的图就展示了所谓的ANOVA (Analysis of Variance: 方差分析)的计算,最后就要借助F分布
来计算置信区间的边界值 - 即CI
对应的单元格。
CI
单元格的计算公式是=FINV(C6,C5-1,C4-C5)
,其中的FINV()
就是计算F分布置信区间边界值的函数。在得到置信区间边界值后,因为样本数据得到的F值(5.398)大于边界值(是SPE事件 - Small Probability Event),意味着我们有理由相信不同设计方案对销售没有影响的假设有可能是有问题的。
其他3个分布的置信区间边界值函数如下:
- 正态分布 -
= NORMINV()
和= NORMSINV()
- 学生分布 -
= TINV()
- 卡方分布 -
= CHINV()
当然,也有直接得到置信区间的函数 - = CONFIDENCE()
-
计算值固定某些单元格,按某列的条件加另外一列,以及动态展示单元格的颜色 - KMeans算法展示
计算值固定某些单元格
为验证 K-means聚类算法,就需要计算数据到固定点的距离。如上图中B和C列展示了5条数据,初始的质心是 M1和 M2,就需要计算那5条数据到 M1、M2的距离 - Dist-M1和Dist-M2。自然希望完成了一条数据的距离计算,直接拖拽来完成其他数据的距离计算,这就需要M1和M2的数据在计算中不能因为拖拽而改变。
I3单元格保存了数据A到M1的距离,计算公式为 =SQRT(POWER(B3-$F$3,2)+POWER(C3-$G$3,2))
,其中的$F$3
和$G$3
就是固定了的,当拖拽I3来计算I列其他数据到M1的距离时,$F$3
和$G$3
都是固定的,没有被 $
符号包围的就随之改变了,也就完成了其他数据到M1的距离计算。
动态展示单元格的颜色
另外一个就是希望能够根据数据距离M1和M2的远近自动以不同的颜色显示类别归属信息,即上图中K和N两列 - 两种颜色是根据距离的差异自动显示的。为此,需要使用Excel的条件格式
- 选中一个单元格,点击条件格式,点击 新建规则
如上图进行设定,然后拖拽刷新该列其他的单元格。
要注意,以上只是设定了一个颜色 - <= 0
。
按照同样的步骤,再建一个格式规则 (此次是 > 0
),并指定不同的颜色,再次刷新其他的单元格,颜色就自动出现了。
其他列类似处理即可。
按某列的条件加另外一列
在K-means计算中,按照质心更新类别后,还需要计算新的质心,也就需要借助更新后的类别来计算新质心的坐标。
如上图,在初始的M1和M2聚类后,K列展示了按照初始M1和M2的聚类,那么,下一个循环就需要按照更新的聚类信息计算新的质心。I12单元格计算了新的M1的X坐标,计算公式为 =SUMIF(K3:K9,"<=0",B3:B9)/COUNTIF(K3:K9,"<=0")
。其中的SUMIF(K3:K9,"<=0",B3:B9)
就是按照 K3:K9
列中满足 "<=0"
的行,将B3:B9
中对应的行上的单元格数据相加。效果就是基于A和B两条数据计算新M1的坐标 - 因为按照初始的M1和M2值, A和B离初始的M1更近。