微软用几年的弯路摸索出自助商务智能的最终产品路线,PowerBI 自然而然地来了。另外,如果您正从零(或者具备一定Excel基础)开始希望学习自助BI,也可以对照看目前所处的位置以更清晰学习上升的路线。
概述
不知从何时起,人们的办公计算开始进入了数字化阶段,大家开始使用Excel,通过Excel在工作表中使用各种公式来完成业务计算并成为了常态。然后发现很多业务数据会以某种规律化的方式反复出现,便专门用表结构来组织这些数据,并强行要求这些数据必须满足某些规则,否则会被视为是脏数据(不符合要求的业务数据),当然这种工作也可能由一个专门的部门IT部来完成。在观察数据之间的关系和规律方面,有一种强大的工具叫做透视表(Pivot Table),历史上,透视表最初是基于某个表的汇总分析表,透视表给了人们非常强大的洞察力。由于人们往往需要联合不同的基础表在一起以后再做透视表,这就要求需要一个主要的表作为基础,把相关的数据补充进来,这个过程在Excel中常常由VLOOKUP函数完成。做大量业务分析的伙伴希望更好的提升效率,包括Excel的发明者微软公司也面临同样问题,这就出现了数据模型的概念,期初数据模型由专业的IT人员设计,由终端用户使用,而在现如今的Excel中,人们可以自行设计数据模型。由于有了数据模型,人们观察和分析数据的基础变得更加厚实,人们自然需要更快速灵活的探索和分析工具,数据可视化工具就成了重点。现在,人们可以通过数据可视化工具并凭借自己的业务知识自行构建数据模型并展开分析,获得更强大的生产力。
而集合上述所有功能为一体的工具中,PowerBI便是这样进化而来。我们沿着历史的发展来一起看看,现在您正在用怎样的方法来处理和分析数据,以不断理解我们可以进一步提升的方向。
Excel 平面数据计算
如果您正用着或者迷恋着Excel的函数,并直接展开某些计算,例如:
这里即将写出类似:SUM(A1:B5) 之类的公式来实现计算。
我们说这种方式叫:办公计算 或者叫 平面数据计算。所谓办公计算,就是它通常由个人基于某种临时性的任务而计算完成,这个过程是不受控的,但很灵活。一些复杂的任务可能也会完成,但大多需要依赖大量技巧和潜在的非正规式的使用。
除非本人就对这种计算着迷,否则很难学会复杂的技巧用法。在大量数据面前,由于它并非为大数据量设计,显得捉襟见肘。
Excel 工作表中的表
在办公计算阶段,一旦涉及的业务变得复杂,很难理解诸如 A5:D7 这种编码形式的含义,而导致业务计算的逻辑在维护起来很复杂,也可能引发潜在的计算问题而不被发现。Excel中存在一种表结构,叫做Excel中的表。如下所示:
如果您认为只是表格带了样式就叫表格那就错了,再看一个区别性的案例,请分辨左右两边的表结构,哪个是平面区域数据,哪个是Excel中的表:
理解Excel中的表的伙伴应该能一眼认出右边才是Excel中的表,左边仅仅是样子和右边一样的平面区域数据而已。
思考:怎么看出右边是Excel中的表的?
Excel中的表的好处在于,在进行计算的时候,可以引用的是业务逻辑名称,而不再是无意义的编码区域了,例如:
这里仍然是求和,但求和的对象已经使用了有意义的业务名称了。可以看一个更加让人一目了然的案例:
可以通过这种方式来进行计算,让业务更加直接。
思考:在Excel中的快捷键:Ctrl + T 是干嘛的?
Excel 透视表
之前我们已经铺垫了什么是透视表,或者说大多数人都在用透视表,但有谁真正停下来思考过,到底什么是透视表呢。即使微软也告诉了大家透视表能干什么以及用来干什么,但却没讲过什么是透视表。
我们可以观察到一个现象:
插入透视表和表格是在同一个分组里的。有很多人用了很多年透视表,但却从没用过表格。只能说微软把透视表和表格编入一个功能分组,它们一定有非常紧密的关系,而如果你只用过透视表却不知道表格,那说明什么呢,透视表用得也一定不过关。
Excel 函数 VLOOKUP
现在让我们来假设你会用表格和透视表,但很快你会遇到的问题就是:订单表没有产品信息,需要根据产品信息来分析订单而建立透视表的时候,就需要在订单表里补充一个产品类别列,会这样做:
人们开始思考如何做到更加的系统化处理业务,并去突破各种函数的限制。VLOOKUP很快就会被发现存在严重隐患:
正如上述细节描述,VLOOKUP存在两个核心痛点:
- 要查找的值必须位于 table-array 中指定的单元格区域的第一列中。
- 列编号是一个固定的数。
这两个问题将导致VLOOKUP将是一个巨大隐患。例如一旦你在产品表中插入了一列,那 VLOOKUP( [@产品ID], 产品, 3, FALSE ) 可能将导致计算到另外的列,而这种并非会报错,有时这种错误很难发现,导致很严重的业务计算错误。
Excel 函数 INDEX + MATCH
当您开始思考如何真正地使用Excel函数来计算业务并确保其准确性,那就进入了一个新阶段,这时候人们开始总结各种最佳实践,也就是一条最好的路。对于VLOOKUP,可以用INDEX+MATCH来替代,如下:
INDEX + MATCH 的函数组合可以彻底解决 VLOOKUP 存在的风险,由此,您可以认为自己已经是Excel的函数高手了,并开始学习更多的Excel函数。
从技术的角度,我们确实理解了Excel中更多函数组合的秘密并能实现很棒的计算效果,但对于业务问题本身,痛点却依然存在。
因为当你希望从时间,地理位置,产品,人员,客户等多个角度的多个属性去分析订单时,需要写大量的 INDEX + MATCH 来实现数据整合。当然,这已经比 VLOOKUP 好多了。
基于Excel 数据模型的透视表
其实,微软的办公人员一定是比我们最先遭受折磨的,因为微软的办公人员也在使用Excel来分析自己的业务,如果我们都无法忍受这种重复和低效,那么微软的人能比我们更能忍受吗?
所以,我们一直有一个同理心逻辑,如果我们自己无法忍受某种低效,而微软的人员也在这样使用,请问他能够忍受这种低效吗?如果不能,那么一定存在某种功能可能是我们不知道却事实存在的。
我们仔细来看下构建透视表的过程细节:
创建数据透视表让人们有三种选择:
- 选择一个表或区域
- 使用外部数据源
- 使用此工作簿的数据模型
大部分人只用过第一个方式的区域形式,其实透视表可以基于表来创建,正如这里的订单,其实是一个表。
但依然会遇到问题,就是无法从产品角度进行分析,但仔细观察,会发现:
原来透视表知道我们可能找不到需要的字段,因此给了一个机会让此时可以从更多表格来重新选择。如下:
这告诉我们,只要在分析中同时使用多个表,将自动使用数据模型来创建透视表。此时,Excel将可能用到的表都列了出来:
我们选择产品的类别和订单销售额来进行分析,如下:
将字段放置在合适的位置后,可以看到透视表的计算结果并不符合预期,原因是系统并为自动完成诸如 VLOOKUP 的功能,这需要建立表之间的关系,如下:
系统可以帮助用户自动检测到关系,并建立起来,以使计算正确。如下:
有了这个功能,在分析数据的时候有了很好的便利性,不再需要使用大量的VLOOKUP或INDEX+MATCH来整理相关数据。
Excel PowerPivot
直到此处,以上的内容在Excel2013及以后版本都已经比较成熟,而是基本都是自带功能,并且都没有提过Excel PowerPivot。如果您能用到这个阶段,即使您不知道Excel PowerPivot,您也在沿着正统的路线使用透视表分析工具。我们可以在Excel的数据选项卡找到:
此时并没有启动PowerPivot,但却可以定义关系,数据模型是Excel的内置机制,只有当我们需要更进一步地去管理数据模型时,才会继续用到PowerPivot,而显然我们也是需要这样做的。在第一次点击管理数据模型时,系统会提示我们:
这样便彻底开启了数据模型的高级能力:
我们可以在PowerPivot中对数据模型做更加复杂的定义以实现让透视表可以完成非常强大的计算功能,甚至可以应对百万乃至亿级数据的处理。
理清思路
以上整个历史的发展截止到2010年。也就是说,在2010年微软就提供了上述所有功能。
这是当年 PowerPivot 的官方网站,但现在已经不存在了,微软将 PowerPivot 作为了Excel的内置功能,并在专业增强版提供出来。
按照专家的说法:
这种大事,其实就是可以在一个工具中用一种简单的方法来联立分析数以百万乃至亿计的数据。
Power BI
只有一种核心能力,我们说那是一种发动机。有着强大发动机的车不一定就能满足商业实际需求,在实际中,还要考虑更多:
经过微软多年的实践和总结,Power BI内置了这台发动机,并做到了更优化的调校,以满足企业内对商务智能的各种需求:
这也是我们说的:第三代BI产品。按照Gartner的描述:
商务智能与分析平台经过多年发展演化,已经从IT导向的报表模式不可逆转地转向到了业务导向的自助分析模式,也就是说:拐点已过。
在微软从2010年PowerPivot诞生到2017年正式发布Power BI,经过了大量实践总结,这其中的经验积累非常之巨大,而Cost显然也很巨大。
Power BI 一经发布就提供了完全免费的Power BI Desktop,微软将用Power BI来诠释其使命:
那就是:赋能每个人和组织。
总结
我们总结了PowerBI入门学习的必经问题,那就是为什么是PowerBI:
- 办公自动化阶段的平面计算阶段历史;
- 表结构计算阶段历史;
- 透视表阶段历史;
- 函数整合数据阶段历史;
- 优化函数整合数据阶段历史;
- 数据模型阶段历史;
- PowerPivot阶段历史;
- Power BI阶段。
如果您刚刚接触Power BI或正考虑分析企业业务数据,在问要用什么,那回答必然是:Power BI。上述的一切都是历史,但依然适用,只不过相对于全面启动Power BI能力来说,这些都是基础,并且有一个正确的学习路线。不得不强调:相对于努力来说,正确地学习也很重要。如果您仔细留意,这里根本没提VBA,因为 VBA 就不是为了分析数据而生的,它虽然强大,但它不是用来分析数据的。简单地说,VBA 因自动化而生,但就分析而言,从 Excel 到 Power BI 是自然而然的。
我在 Excel120 等您加入,一起深入研究这些有意思的事。