最近看到个问题,说是要统计不同物料的最高和最低价格,模拟数据如下:
于是有人写了个数组公式:
短小精悍,是不是?
不过,也有人批评说数组公式对于大多数人来说都不懂,所以这不是最佳解决方案,于是给出了另一个解决方案,即先对原始数据排序,然后直接用vlookup读取——需要取最大值时从大到小排,需要取最小值时从小到大排。
尽管这样很难在同一个表里同时展现最大及最小值,但的确对于大多数普通用户来说是要简单一些——当然,我并不推荐这种解法,所以也不具体上图说明了。
而实际上,这个问题我最推崇的解法应该是数据透视,有多简单?直接鼠标点拽几下搞定!因为透视表里的值直接支持设置“最大值”和“最小值”啊。如下图所示:
当然,这个问题还可以通过Power Query来解决,也非常简单,将数据获取到Power Query后,直接分组,设置聚合类型为最大最小值即可,如下图所示:
问题还没完,其实,我借这个问题,更想说明的一点是,分组依据和数据透视的差异,以及在Power Query中,碰到类似问题时,应该使用什么样的功能。
大家应该注意到,这个问题在Excel传统功能中解的时候使用的方法是数据透视,但在Power Query中使用的是分组依据,而不是透视!
为什么?
实际上,在Excel的数据透视功能里,对于单纯的将需要统计的数据放到值中,而不将某些统计维度放到列中的情况,是对数据的分组功能,而不是透视的功能——只是Excel中的数据透视表兼容了这种数据统计方式而已。