一個excel文檔里復制黏貼另外表單跟著變動_利用Excel連接Power BI,實現PPT報告自動輸出...

?文/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服務端口:

9d02d7461879e8d642ad3c7a4a1216ba.png

然后,打開Excel,新建一個文件。點擊data>from other sources>fromanalysis services:

cb64a1659142c0165dec4d05753be1bd.png

把pbix的分析服務端口黏貼到里面:

2b05494c7725ddb51434f81314dd0f79.png

然后下一步,下一步,結束。注意,這一步我們建立了一個鏈接文件,它的存放位置在這里:鏈接文件是以端口號為開頭的,容易區分。

7293ad2f36591ebafb40a652e4dbd6f9.png

然后Excel會提示你打算把用什么方式調用外部ssas服務的數據。當然PivotTable Report了:

7fab4880892a6d1e882e84a6d5626a7a.png

注意看下右側的可選數據表和所有列,看看是不是都在了?

9430441e3b5c7ba8f7bd7ab1d4cf3a18.png

這里有個技巧。你會發現一些數字列不能被拖入value。怎么辦呢?查閱了微軟的官方文檔,方法是在PowerBI里面給每個數字列做一個度量值。然后你會看到這些度量值(帶西格瑪∑符號)如下圖:然后他們就可以被拖入value合并計算了。

c89d8be652d5da167a193fc4ebbfddad.png

然后根據需要做各種透視表吧。

這里建議大家再單獨建立一個新的Excel文件,該文件專門用來制作最終的圖表(管理層喜歡的那種各種定制圖表,包含貴公司的各種文化和領導喜好)。

下一步是把OLAP文件里的數據鏈接黏貼到最終圖表文件里面。(其實業務順序可能是根據業務需要先做最終圖表Excel文件,然后根據圖表文件的數據需求再做OLAP pivot數據文件),最后把最終圖表黏貼鏈接到PPT。

這里提醒一句,一定要在同時打開PowerBI和OLAP文件的情況下才能修改PowerBI文件里面數據表和列的名稱。否則,OLAP文件找不到變更后的列和表名稱。最好留一個專門做報告的PowerBI文件,不要隨便修改。我做過實驗,調整列的位置或增加列不會影響OLAP文件,所以可以隨后增加分組等工作,不需要一開始都分好。

最后,還有個問題,每月數據更新。當pbix文檔關閉并重新打開后數據端口會發生變化,怎么辦呢?

用DAX studio查詢新端口。然后打開一個新Excel嘗試鏈接ssas端口。然后關閉Excel文件。下一步是關鍵,打開我們保留了很多透視表的OLAP Excel文檔,選擇pivot tools>connection properties:

4b971b87c7e6626180df66e92894ca6f.png

選擇definition選項卡,選擇connection file,Browse然后選擇新端口號開頭的鏈接文件。

e1179d552228b532016754b96d5b39e3.png

然后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
36880e73b56af86442b9bf9742d74f26.png
采悟:Power BI應用實戰:批量爬取網頁數據?zhuanlan.zhihu.com
0ffa8403111bd0ed57da33ef7144cd62.png
采悟:如何使用Power BI進行回流客戶分析??zhuanlan.zhihu.com
6144e36a09dfdbd69c64f2ac1e7ef9cd.png

喜歡了別忘了點贊哦~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/258759.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/258759.shtml
英文地址,請注明出處:http://en.pswp.cn/news/258759.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

出現23.97幀率的原因

http://raytao.lofter.com/post/3d177_185a386 關于那些“格(Frame)”不得不說的事 今天早上,鄙人在社交網絡發了這一系列的問題:請解釋以下名詞之間的關系或差異。幀,格,幀率,時基,…

8-3建立蒙版

http://www.missyuan.com/thread-527018-1-1.html 在實際操作中,99.9%的蒙版都是通過選區建立的 所以選區要選好 點擊圖層調板下方的按鈕直接建立蒙版(下左圖紅色箭頭處),效果等同于【圖層_圖層蒙版_顯示選區】 圖層中有了兩個對象:一是圖層&…

今天試了一下iscroll

感覺5和4差別還是有一點的,雖然不是很多,今天用了一下,感覺還是很不錯。 今天看到有人提問說如果頁面要引入多個iscroll怎么弄的問題,其實很簡單,頁面再多實例化一次就可以了。 如: myScroll new iScroll(…

使用ajax將數據顯示在指定位置_AJAX學習主題之一

學習主題:AJAX刪除用戶功能實現根據視頻中的講解,完成以下內容簡述刪除功能的基本思路流程點擊按鈕獲取當前元素中的用戶uid,向服務器發起請求,將uid提交到服務器刪除指定用戶,瀏覽器獲取瀏覽器響應結果。獨立完成刪除…

matlab 配置mex 識別vs2015

問題:先安裝了matlab,后裝了vs13和vs15,但是mex -setup時卻不能識別vs15,采用了兩種辦法,最終得以識別。解決方案:先采用方法: http://blog.csdn.net/yc461515457/article/details/51635842 ,但…

互聯網企業安全高級指南3.6 需要自己發明安全機制嗎

3.6 需要自己發明安全機制嗎 1. 安全機制的含義 首先解釋一下發明安全機制這句話的意思。安全機制包括:常見的對稱和非對稱加密算法,操作系統自帶的RBAC基于角色的訪問控制,自帶的防火墻Netfilter,Android的基于appid隔離的機制&…

鉤子方法

Class#inherited 類被繼承時調用 Module#included 模塊的生命周期中調用 Module#extend_object 模塊擴展類時調用 Module#method_added Module#method_removed Module#method_undefined轉載于:https://www.cnblogs.com/qinyan20/p/3656156.html

ember啟動報錯

ember[4858] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() > (null) (-21) events.js:85 throw er; // Unhandled ‘error’ event ^ Error: watch EMFILE at exports._errnoException (util.js:746:11) at FSEvent.FS…

js日期比較大小_node.js 內存泄漏的秘密

每日前端夜話第276篇翻譯:瘋狂的技術宅作者:Giovanny Gongora來源:nodesource正文共:3955 字預計閱讀時間:10分鐘一直以來,跟蹤 Node.js 的內存泄漏是一個反復出現的話題,人們始終希望對其復雜性…

win7+vs2015/13+caffe+matlab+python(CPU only)配置

首先聲明本教程可以適用于vs2015 和vs2013 .以vs2015為例。 安裝必備軟件 vs 2015 /vs2013 matlab 2016a(64bit)推薦使用Anaconda 2.7 或者Miniconda 2.7這兩個Python發布版本cmake 3.8.0 以上caffe-window: https://github.com/BVLC/caffe/tree/windows 可選軟件&#xff1…

Performance Co-Pilot

Install Performance Co-Pilot 提前安裝依賴 [rootiZrj97j6t7ih9hgz1me35hZ ~]# cat install.sh yum install -y docker yum install -y git yum install -y yum-utils-1.1.31-40.el7.noarch yum install lex yum install flex yum install -y bison yum install -y perl-ExtUt…

字符串轉換整形數,結構體數組排序

#include <stdio.h> #include<string.h> #include<conio.h> #include <stdlib.h> FILE *p; #define N 3 struct hacker {char name[11];char num[20];char xingbie[3]; }z[N];//輸入模塊 void shuru() {char *s"網名 QQ號碼 性別信息…

如何發布打包并發布自己的Android應用(APP)

第一步&#xff0c;在Eclipse中選擇需要打包的項目&#xff0c;然后右鍵--選擇Export&#xff0c;會彈出一個打包的提示框&#xff0c;如下圖所示。 按Next之后&#xff0c;會繼續出現一個提示框&#xff0c;這里你可以選擇自己需要打包的項目&#xff08;默認是剛才選中的&…

js變量提升_一道JS變量提升題

var a 0;if(true){a 1;function a(){};a 21;console.log(a);}console.log(a);// 21 1 當前上下文代碼執行之前&#xff0c;會將帶var/function的進行聲明/定義。當遇到“{}”時&#xff0c;新版瀏覽器和老版瀏覽器的處理不一致。老版瀏覽器&#xff08;IE10以下&#xff09;…

Adaboost的幾個人臉檢測網站

【1】基礎學習筆記之opencv(1)&#xff1a;opencv中facedetect例子淺析 http://www.cnblogs.com/tornadomeet/archive/2012/03/22/2411318.html【2】OpenCV學習筆記&#xff08;二十七&#xff09;——基于級聯分類器的目標檢測objdect http://blog.csdn.net/yang_xian521/arti…

Caffe訓練過程:test_iter test_interval等概念

轉載自http://blog.csdn.net/iamzhangzhuping/article/details/49993899 先上一張圖&#xff0c;大家很熟悉的一張圖。 首先說明一個概念&#xff1a;在caffe中的一次迭代iteration指的是一個batch&#xff0c;而不是一張圖片。 下面主要說下2個概念&#xff1a; test_ite…

R的獲取和安裝

R的獲取和安裝 一、下載 R可以在CRAN&#xff08;Comprehensive r archive network&#xff09;http://cran.r-project.org上免費下載&#xff0c;可供選擇的有Linux、Mac OS X和windows對應的二進制文件&#xff1b; 我這里選擇的是windows版本。打開如下頁面&#xff1a; bas…

Bitmap recycle()

Bitmap調用recycle? When?Bitmap有一個recycle方法。含義很easy&#xff0c;恢復Bitmap空間。 Q 1: Bitmap有調用recycle方法的必要性&#xff1f; A: 嵌入式系統總是格外注重空間的問題&#xff0c;不小心的話就會有OOM。可是應用層使用java的android平臺有其天然的優勢【ja…

擴展歐幾里得算法求逆元_從輾轉相除法到求逆元,數論算法初體驗

今天是算法和數據結構專題的第22篇文章&#xff0c;我們一起來聊聊輾轉相除法。輾轉相除法又名歐幾里得算法&#xff0c;是求最大公約數的一種算法&#xff0c;英文縮寫是gcd。所以如果你在大牛的代碼或者是書上看到gcd&#xff0c;要注意&#xff0c;這不是某某黨&#xff0c;…

[翻譯] Fast Image Cache

https://github.com/path/FastImageCache Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applications user experience is fast, smooth scrolling, and Fast Image …