​文/HALI就职于汽车行业战略部门
专注汽车市场信息情报收集和分析

因为工作需要,每月周期性的更新数据和撰写PPT 报告成为繁重的劳动。结果是很多时间花费在数据处理上,真正的分析工作,往往只能草草收场。不能坐以待毙,就要想想有没有更好的办法。

最早,我想到并采取的是Excel图表到PPT的链接。后来随着各种BI工具的普及,尝试学习并使用了Power BI。它实在强大,据说使用了SQL Server的数据引擎Vertipaq,数据处理速度飞一样。另外,可以处理的数据可以做到海量,加上是专业数据库,比较之下,Excel秒成渣。

于是尝试将工作平台转移到PowerBI。但是,最终的测试发现,微软不支持用户能自动与PPT嵌入图表(不知道为什么,但是看来微软想直接在PowerBI内部制作类似报告,与PPT不同,PowerBI的报告将更倾向于数据)。

虽然有第三方工具或插件可以嵌入PowerBI图表到PPT(如何在PPT中动态交互PowerBI报告?),但是需要联网等等,很麻烦。各位做报告的同学一定有经验,你绝对不希望PPT报告有任何技术问题,不然董事会上各位大佬干瞪眼等着刷新数据,呵呵。后果惨过没有报告。这就是报告一族面对的政治生态。简单说就是绝不允许任何问题。

平心而论,目前PowerBI的报告能力,颜色和文字能力,图表的定制能力,目前不及Excel和PPT。给分析人员看是非常够用了,快捷又方便。但是给管理层做报告,呵呵。领导看到PowerBI的报告,意见是质量一般。我也是做过几次才发现,PowerBI报告不能用其他字体,不能调整单个数据label,等等。有其他方法,太费劲。

这就尴尬了,PowerBI白学了。这么好的数据处理能力真的可惜了。曾经有一段时间尝试学习Excel PowerPivot,但是发现差异挺大,而且不能使用PowerBI的便捷图表方式和分组什么的真的是损失,貌似不能兼得了,怎么办呢?

搜google吧,功夫不负有心人,还真让我找到了解决方法-OLAP(OnlineAnalytical Processing)。应采总的邀约,把相关的内容汇总一下,在这里分享给大家。希望对需要经常更新PPT报告的人有帮助。

传统方式:Excel 数据图表和PPT的链接及自动数据更新

我的工作涉及数据分析图表和定期报告(PPT)。之前采用的方式是Excel维护数据,然后使用多个pivot table数据支持,制作数据图表。然后Excel内部的图表用黏贴链接的方式,黏贴进PPT里面。每个月数据更新时,把新增数据手工黏贴到数据源表,然后refresh all pivot table。然后打开PPT,提示是否更新数据,点yes。在无数次的屏幕抽动(抽筋一样闪动)之后,结束了图表更新。

这样做的好处是以透视表的方式固定了每月固定的工作流程,一定程度上实现了图标数据更新的自动化,节省大量时间。

但如果可以享受PowerBI的高效,又可以享受Excel和PPT的强大定制功能,还可以固定下来所有的工作步骤,然后一键刷新是不是就完美了?

PowerBI实际上可以理解为一个小规模的SQL Server,精简了很多东东,但是SSAS服务保留了。如果你运行PowerBI,通过任务管理器,你可以看到SSAS的服务一起运行了,SSAS服务就是留给兼容的外部程序访问数据库的,很幸运Excel里面提供了访问SSAS的组件。

这就让我们可以从PowerBI外部访问,并利用Excel的图表功能成为可能。

Excel链接PowerBI的方法有三种,下面一一介绍。

方法一:Excel手动连接PowerBI SSAS服务

打开pbix文件,然后打开DAX Studio(关于DAX Studio的使用请参考:DAX Studio:你迟早会用到的几个功能),复制pbix文件的ssas服务端口:

然后,打开Excel,新建一个文件。点击data>from other sources>fromanalysis services:

把pbix的分析服务端口黏贴到里面:

然后下一步,下一步,结束。注意,这一步我们建立了一个链接文件,它的存放位置在这里:链接文件是以端口号为开头的,容易区分。

然后Excel会提示你打算把用什么方式调用外部ssas服务的数据。当然PivotTable Report了:

注意看下右侧的可选数据表和所有列,看看是不是都在了?

这里有个技巧。你会发现一些数字列不能被拖入value。怎么办呢?查阅了微软的官方文档,方法是在PowerBI里面给每个数字列做一个度量值。然后你会看到这些度量值(带西格玛∑符号)如下图:然后他们就可以被拖入value合并计算了。

然后根据需要做各种透视表吧。

这里建议大家再单独建立一个新的Excel文件,该文件专门用来制作最终的图表(管理层喜欢的那种各种定制图表,包含贵公司的各种文化和领导喜好)。

下一步是把OLAP文件里的数据链接黏贴到最终图表文件里面。(其实业务顺序可能是根据业务需要先做最终图表Excel文件,然后根据图表文件的数据需求再做OLAP pivot数据文件),最后把最终图表黏贴链接到PPT。

这里提醒一句,一定要在同时打开PowerBI和OLAP文件的情况下才能修改PowerBI文件里面数据表和列的名称。否则,OLAP文件找不到变更后的列和表名称。最好留一个专门做报告的PowerBI文件,不要随便修改。我做过实验,调整列的位置或增加列不会影响OLAP文件,所以可以随后增加分组等工作,不需要一开始都分好。

最后,还有个问题,每月数据更新。当pbix文档关闭并重新打开后数据端口会发生变化,怎么办呢?

用DAX studio查询新端口。然后打开一个新Excel尝试链接ssas端口。然后关闭Excel文件。下一步是关键,打开我们保留了很多透视表的OLAP Excel文档,选择pivot tools>connection properties:

选择definition选项卡,选择connection file,Browse然后选择新端口号开头的链接文件。

然后refreshall,屏幕抽动无数次,结束。

其他的更新步骤不多说了,Excel就是全部刷新,PPT在打开时更新数据就ok了。至于pbix文件的数据更新,请各位参考采总的星球文章,推荐同一文件夹里的新增更新方式。

因为Excel是调用PowerBI的服务,因此这些在Excel里面图表报告的数据调用,其实都是在PowerBI里面完成的,超级高效。

至此,我们即可以享受PowerBI的高效,又可以享受Excel和PPT的强大定制功能,还可以固定下来所有的工作步骤,以后一键刷新就好。当然有些图表还是需要适当调整样式。

以上是最经典的OLAP链接方式。但是,这种数据更新方式真的有点麻烦。有没有更快捷的方法呢?google告诉我有的。

方法二:利用宏文件自动连接PowerBI ssas服务

Google上还找到一个澳大利亚的大神写的一个专门的Excel VB宏,来实现一键自动链接PowerBI文件。也就是说你不再需要链接文件,不需要DAX Studio查询端口,不需要每次都建立链接文件,一键连好。这个哥们儿叫Matt Allington。你可以在「PowerBI星球」后台回复“Excel连接PowerBI”获取这个Excel宏文件。

我这里把VBA的代码放一下:

SubUpdateUserPath()

'developed by Matt Allington from http://Exceleratorbi.com.au user = Environ("LOCALAPPDATA") UserPath = user & "MicrosoftPower BIDesktopAnalysisServicesWorkspaces" Sheets("Connection").Range("B2") = UserPathEnd SubSubRefreshSSASConnection()' developed byMatt Allington from http://Exceleratorbi.com.auDim myTable AsListObjectUpdateUserPathRange("SSAS_Data").ListObject.QueryTable.RefreshBackgroundQuery:=FalsePort =Range("Port")Db =Range("DB")If Len(Port) =5 Then With ActiveWorkbook.Connections("PowerBID").OLEDBConnection .CommandText = Array("Model") .CommandType = xlCmdCube .Connection = Array( _ "OLEDB;Provider=MSOLAP.5;Integrated Security=SSPI;PersistSecurity Info=True;Initial Catalog=" & Db & ";Data " _ , _ "Source=localhost:" & Port & ";MDXCompatibility=1;Safety Options=2;MDX Missing Member Mode=Error;Update IsolationLevel=2" _ ) .RefreshOnFileOpen = False .SavePassword = False .SourceConnectionFile = "" .MaxDrillthroughRecords = 1000 .ServerCredentialsMethod = xlCredentialsMethodIntegrated .AlwaysUseConnectionFile = False .RetrieveInOfficeUILang = True End With With ActiveWorkbook.Connections("PowerBID") .Name = "PowerBID" .Description = "" End With ActiveWorkbook.Connections("PowerBID").Refresh

Else MsgBox "You must have exactly 1 instance of Power BI Desktop open",vbCritical

End If

End Sub

大家注意黑体和下划线的部分可能需要调整。(第一个部分指定了PowerBI的SSAS端口文件位置,可能因为安装的位置不同而不同,只装一个PowerBI软件,且是一路yes的不需要调整。

第二个部分,最大打开drill数可以调到最大10,000)

除了上述两种OLAP链接方式,还有别的办法吗?在星球贴出本文后,一个迪拜的星友 分享了另外一个实现方法。

方法三:利用Power BI Publisher

Power BIPublisher是微软自己做的一个Excel插件。看来微软也觉得让各位数据分析员每次更新数据都去重新建立链接文件太费力了。因此写了一个插件方便大家。

据她说:“可以从Excel界面登陆连接PowerBI的报告和数据。然后加载成透视表,刷新就跟Excel刷新一样也可以设置每次打开自动刷新。我们财务系统的所有数据都推到了dataflow里这样就不用从ERP里下载了。”

我去下载了测试。发现使用该插件的前提是PowerBI必须是Pro账户。所以,不给钱,官方是不会给你这个方便的。不过购买Pro的同学可以下载该插件,享受这一便利。


本文至此结束。所有操作,亲测可靠,各位有需要的亲可以尝试。

答应了采总写一篇文章,拖了一段时间,今天交差,请各位斧正,如果各位有新的方法和心得,也请分享,希望对大家的工作有所帮助,谢谢。

-精彩推荐-

采悟:Power BI数据分析实战:模拟高德城市交通健康榜​zhuanlan.zhihu.com

采悟:Power BI应用实战:批量爬取网页数据​zhuanlan.zhihu.com

采悟:如何使用Power BI进行回流客户分析?​zhuanlan.zhihu.com

喜欢了别忘了点赞哦~

一个excel文档里复制黏贴另外表单跟着变动_利用Excel连接Power BI,实现PPT报告自动输出...相关推荐

  1. html 合并文件到excel,Excel2013把多个文件合并到一个Excel文档里方法图解

    日常工作当中,会产生很多Excel文档,每当需要整理的时候又很难归类.查询.这个时候就需要把诺干个Excel文档,合并到一个Excel文档里.一个Excel文档对应一个Sheet工作表,方便查询.归类 ...

  2. OCR图文识别软件是怎么从文档里复制内容的

    2019独角兽企业重金招聘Python工程师标准>>> ABBYY FineReader 12是一款OCR图文识别软件,可从文档中复制文本.图片和表格,粘贴到其他应用程序中.无需识别 ...

  3. 计算机文档里的圆圈,电脑怎么打出圆圈符号?利用word或者输入法打出圆圈的方法介绍...

    在文档编辑.排版等工作中,运用圆圈符号往往会令文档条理清晰,增色几分,平时偶尔也会涉及到圆圈符号的运用.现在和大家分享利用word打出圆圈和利用输入法打出圆圈的方法. 一.利用word打出圆圈符号 1 ...

  4. 计算机excel还原,3种方法找回电脑上已删除的Excel文档

    Microsoft Office Excel是微软(Microsoft)为Windows及macOS所设计的试算表软件.它的计算.绘图工具.枢纽分析表和一个称作VBA(Visual Basic for ...

  5. 生成excel文档即便没有安装微软Excel

    下载:见http://files.cnblogs.com/happyfish78/Acey.ExcelX.Setup.zip 介绍 我们经常需要创建Excel文档,你会花很多时间,如何才能简单并且快速 ...

  6. Java实战—POI操作Excel文档、读取、写入、合并单元格

    一.POI项目简介 POI全称 Poor Obfuscation Implementation,利用POI接口可以通过JAVA操作Microsoft office 套件工具的读写功能.官网:http: ...

  7. 同时删除多个 Excel 文档前几个工作表

    概要:一个 Excel 文档经常会包含多个工作表,也就是常说的 Sheet,有时候可能文档当中前面几个工作表示我们不想要的,所以我们就需要对这些工作表进行删除.但是怎么样才能够做到同时删除多个 Exc ...

  8. 同时删除多个 Excel 文档最后几个工作表

    概要:在我们工作中 Excel 类型的文件是我们接触的比较多的一种办公文件类型了,可能有时候我们也会遇到一个这样子的场景,那就是某一些 Excel 文件当中的最后一个或者几个工作表是重复的,或者说是我 ...

  9. Python实现谷歌翻译爬虫,翻译PDF,翻译Excel,支持excel文档打开翻译,支持xlsx,xlsm等格式。

    前言: 这两个Python脚本是我在实习期间完成的,具体来自于小组主管的两个小需求.做完之后感觉还是挺有收获的. 实现谷歌翻译,首先需要将我们写的Python脚本还有需要翻译的文件放到谷歌浏览器的安装 ...

最新文章

  1. 科学世界的人文关怀:开源科学与人工智能
  2. 用一维数组统计五个人的成绩中的最大值最小值平均值_昨天为了整理这份教程,我放弃了参加一个几亿人的大项目。...
  3. ABAP制作密码输入框
  4. matlab句柄函数@和C++ 中的引用 很像
  5. mysql写入监控_zabbix监控mysql操作
  6. sql-C#-类型对应
  7. SpringSecurity使用SpringBoot简单使用
  8. 【计算机网络】IPv4 NAT
  9. Unity3D之NGUI基础1:NGUI插件介绍
  10. JAVA从零开始做微信公众号开发(三)[微信公众平台返回码说明]
  11. margin-top的兼容问题
  12. Windows server 2003 ××× 配置实例(Site to Site)
  13. QTP下载地址及破解方法
  14. 一张图看懂Resnet50与Resnet101算法
  15. Java poi ppt图片置于底层_POI之PPT图片插入简单实例
  16. 第四届蓝桥杯真题决赛java本科组
  17. 2022年全球智能盆栽行业分析报告
  18. 咏南linux中间件状态查看,咏南跨平台中间件
  19. ApplePay对接java后台详细代码
  20. [NLP]预处理--使用re正则化进行文本清理

热门文章

  1. GARFIELD@01-31-2005
  2. Table 表格导出功能
  3. Python 标准类库-Windows特殊服务之msvcrt
  4. Gym 100090D Insomnia
  5. IOS第七天(2:UiTableView 加上数据分离)
  6. 菜鸟做HTML5小游戏 - 刮刮乐
  7. 解决Lync2010错误:无法同步通讯簿信息
  8. 使用VS2005进行负载测试
  9. .NET3.0已经Pre-release了
  10. async / await对异步的处理