上篇《自助式微軟BI工具PowerPivot簡介!》已對PowerPivot插件作了簡單介紹,本文將進一步介紹PowerPivot插件的基本情況,以便各位童鞋初步掌握此工具的條件,本文以SQL Server 2008 R2 PowerPivot為例進行介紹,PowerPivot 支持最大為 2GB 的文件,最多允許在內存中處理 4GB 的數據。PowerPivot 還包括數據分析表達式 (DAX)。DAX 是一種新的公式語言,它對於 Excel 的數據操作功能進行了擴展,從而可以實現更高級和更復雜的分組、計算和分析。DAX 公式的語法非常類似於 Excel 公式的語法,都使用函數、運算符和值的組合。
Excel 與 PowerPivot 工作簿之間的差異
在 PowerPivot 窗口和 Excel 窗口中處理數據的方式不同。下面是我們要特別指出的一些其他重要區別: • PowerPivot 數據可以在具有以下文件類型的工作簿中保存:Excel 工作簿 (*.xlsx)、啟用 Excel 宏的工作簿 (*.xlsm) 和 Excel 二進制工作簿 (*.xlsb)。在具有其他格式的工作簿中不支持 PowerPivot 數據。
• PowerPivot 窗口不支持 Visual Basic for Applications (VBA)。您可以在 PowerPivot 工作簿的 Excel 窗口中使用 VBA。
• 在 Excel 數據透視表中,可以通過右鍵單擊列標題然后選擇“組”來將數據分組。此功能通常用於按日期將數據分組。在基於 PowerPivot 數據的數據透視表中,可以使用計算列來實現類似功能。有關詳細信息,請參閱 Grouping Dates(分組日期)。
將數據發布到 SharePoint
創建一個 PowerPivot 工作簿之后,可以按通常共享文件的各種方式與他人共享它。不過,通過將文件發布到安裝了 PowerPivot for SharePoint 和 Excel Services 的 SharePoint 服務器或場中,可以獲得許多好處。在 SharePoint 服務器上,這些服務一起用來處理該工作簿:PowerPivot for SharePoint 組件處理數據,Excel Services 在瀏覽器窗口中呈現它,而其他用戶在該窗口中可繼續分析數據。
SharePoint 上的 PowerPivot 服務增加了對您發布到 SharePoint 中的 PowerPivot 工作簿的協作和文檔管理支持。PowerPivot for SharePoint 提供一種新的文檔庫類型,借助於該文檔庫,可以在 PowerPivot 工作簿中呈現報表的豐富預覽,能夠根據發布的 PowerPivot 工作簿中的數據創建 Reporting Services 報表,而且能夠計划自動刷新外部數據源中的 PowerPivot 數據。
下表指定了 PowerPivot 組件中定義的各種對象的最大大小和最大數量。
對象 |
規范/限制 |
---|---|
對象名稱長度 |
100 個字符 |
名稱中的無效字符 |
., ; ' ` : / \ * | ?" & % $ ! + = () [] {} < > |
每個 PowerPivot 數據庫的表數 |
(2^31) - 1 = 2,147,483,647 |
每個表的列數和計算列數 |
(2^31) - 1 = 2,147,483,647 |
表中的計算度量值數 |
(2^31) - 1 = 2,147,483,647 |
用於保存工作簿的 PowerPivot 內存大小 |
4GB = 4,294,967,296 字節 |
每個工作簿的並發請求數 |
6 |
本地多維數據集連接數 |
5 |
列中的非重復值數目 |
1,999,999,997 |
表中的行數 |
1,999,999,997 |
字符串長度 |
536,870,912 字節 (512 MB),相當於 268,435,456 個 Unicode 字符(2 億 5 千 6 百萬個字符) |
注意 |
---|
此字符串限制不適用於以下函數,這些函數中的字符串不能超過 2,097,152 個 Unicode 字符: |
-
CONCATENATE 和嵌入連接運算符
-
DATEVALUE
-
EXACT
-
FIND
-
FORMAT
-
LEFT
-
LEN
-
LOWER
-
MID
-
REPLACE
-
REPT,限制適用於輸入參數和結果
-
RIGHT
-
SEARCH
-
SUBSTITUTE,限制適用於輸入參數和結果
-
TIMEVALUE
-
TRIM
-
UPPER
安裝PowerPivot的軟硬件要求如下:
硬件和軟件要求
用於創建 PowerPivot 工作簿的計算機必須滿足針對 Office 2010 的最低硬件和軟件要求。
硬件要求
組件 |
最低要求 |
---|---|
處理器 |
500 MHz 32 位或 64 位處理器 |
RAM |
2 到 4 GB RAM。外接程序使用大約 25 MB 的 RAM。在第一個數據透視表添加到工作表時,將使用另外 33 MB。PowerPivot 工作簿需要額外的 RAM。所需的 RAM 量視您創建的工作簿而異。 PowerPivot 最多支持 2GB 大小的文件。使用 PowerPivot 的 64 位版本,您可以在內存中處理最多 4GB 的數據;而使用 32 位版本的數據, 您可以在內存中處理最多 2GB 的數據。 |
磁盤空間 |
程序文件需要 100 MB 磁盤空間。存儲數據文件需要附加磁盤空間。盡管文件包含壓縮數據,但是如果創建許多包含超大量數據的工作簿,您可能需要大量的磁盤空間。沒有辦法事先知道您的磁盤空間要求將是多少。在創建和保存文件時,請確保監視磁盤空間使用情況,以確保有足夠的空間。 |
軟件要求
PowerPivot for Excel 可安裝在具有 32 位或 64 位 Excel 2010 的計算機上。如果您安裝了 32 位版的 Excel,則必須安裝 32 位版的 PowerPivot for Excel。同樣,如果您安裝了 64 位版的 Excel,則必須安裝 64 位版的 PowerPivot for Excel。
最低要求 |
|
---|---|
操作系統 |
Windows XP SP3(僅限 32 位)、Windows Vista SP2、Windows 7、Windows Server 2003 R2 with MSXML 6.0(僅限 32 位)、Windows Server 2008 SP2 或 Windows Server 2008(僅限 64 位)。 如果使用的是 Windows Vista 或 Windows Server 2008,還必須安裝 http://support.microsoft.com/default.aspx/kb/971644 上提供的平台更新。 |
Windows 功能 |
Microsoft .NET Framework 3.5 SP1(在安裝 Office 之前安裝) |
Excel 版本要求 |
安裝 PowerPivot for Excel 需要 Excel 2010(32 位或 64 位)。 |
Office 功能 |
必須隨 Excel 2010 一起安裝 Office 共享功能。 還必須安裝 Microsoft Excel 中的 .NET 可編程支持。 |
![]() |
---|
在工作簿中創建和使用 PowerPivot 數據時,需要 Excel 2010 和 PowerPivot for Excel 外接程序。Excel 2007 可用於打開 PowerPivot 工作簿以及更改樣式和格式(例如,應用其他顏色或字體),但不能使用 Excel 2007 與基於 PowerPivot 數據的數據透視表或數據透視圖進行交互或更改基礎數據。 |
建議
SQL Server PowerPivot for Excel 可以與 Excel 2010 的 32 位或 64 位版本一起使用。但是,64 位版本的 Excel 和 PowerPivot for Excel 所支持的數據遠遠多於 32 位版本。特別是,如果您要導入超過一百萬行或列的數據,則必須使用 64 位版本。否則,如果數據集不是特別大,使用 32 位版本可獲得可接受的性能。請注意,如果您打算對 Excel 使用數據挖掘外接程序,則必須使用 32 位版本的 Excel。
組件 |
建議 |
---|---|
平台和操作系統 |
Windows 7(64 位)或帶有 SP1 的 Windows Vista(64 位)Business Edition 或 Ultimate Edition。 |
Excel 版本要求 |
Excel 2010(64 位) |
PowerPivot 工作簿中支持的數據源
可以從下表所列出的數據源中導入數據。PowerPivot for Excel 不安裝對每種數據源列出的訪問接口。某些訪問接口可能已隨其他應用程序安裝在您的計算機上;否則您需要下載並安裝這些訪問接口。
還可以鏈接到 Excel 中的表以及從對剪貼板使用 HTML 格式的應用程序(如 Excel 和 Word)復制並粘貼數據。有關詳細信息,請參閱通過使用 Excel 鏈接表添加數據和將數據復制並粘貼到 PowerPivot。
源 |
版本 |
文件類型 |
訪問接口 1 |
Access 數據庫 |
Microsoft Access 2003、2007 和 2010。 |
.accdb 或 .mdb |
ACE 14 OLE DB 訪問接口 |
SQL Server 關系數據庫 |
Microsoft SQL Server2005、2008、2008 R2;Microsoft SQL Azure 數據庫 2 |
(不適用) |
OLE DB Provider for SQL Server SQL Server Native Client OLE DB 訪問接口 SQL Server Native 10.0 Client OLE DB 訪問接口 用於 SQL 客戶端的 .NET Framework 數據訪問接口 |
SQL Server Parallel Data Warehouse (PDW) 3 |
2008 R2 |
(不適用) |
OLE DB provider for SQL Server PDW |
Oracle 關系數據庫 |
Oracle 9i、10g、11g。 |
(不適用) |
Oracle OLE DB 訪問接口 用於 Oracle 客戶端的 .NET Framework 數據訪問接口 用於 SQL Server 的 .NET Framework 數據訪問接口 MSDAORA OLE DB 訪問接口 4 OraOLEDB MSDASQL |
Teradata 關系數據庫 |
Teradata V2R6、V12 |
(不適用) |
TDOLEDB OLE DB 訪問接口 Teradata 的 .NET 數據訪問接口 |
Informix 關系數據庫 |
|
(不適用) |
Informix OLE DB 訪問接口 |
IBM DB2 關系數據庫 |
8.1 |
(不適用) |
DB2OLEDB |
Sybase 關系數據庫 |
|
(不適用) |
Sybase OLE DB 訪問接口 |
其他關系數據庫 |
(不適用) |
(不適用) |
OLE DB 訪問接口或 ODBC 驅動程序 |
文本文件 |
(不適用) |
.txt、.tab、.csv |
用於 Microsoft Access 的 ACE 14 OLE DB 訪問接口 |
Microsoft Excel 文件 |
Excel 97-2003、2007、2010 |
.xlsx、xlsm、.xlsb、.xltx、.xltm |
ACE 14 OLE DB 訪問接口 |
PowerPivot 工作簿 |
Microsoft SQL Server 2008 R2 Analysis Services |
xlsx、xlsm、.xlsb、.xltx、.xltm |
ASOLEDB 10.5 (只能與發布到已安裝 PowerPivot for SharePoint 的 SharePoint 場的 PowerPivot 工作簿一起使用) |
Analysis Services 多維數據集 |
Microsoft SQL Server 2005、2008、2008 R2 Analysis Services |
(不適用) |
ASOLEDB 10 |
數據饋送 (用於從 Reporting Services 報表、Atom 服務文檔和單個數據饋送導入數據) |
Atom 1.0 格式 公開為 ADO.Net Data Services Framework 服務的任何數據庫,如 Microsoft SQL Server 2005、2008、2008、2008 R2 Reporting Services 報表 |
服務文檔的可定義一個或多個饋送的 .atomsvc Atom Web 饋送文檔的 .atom |
Microsoft Data Feed Provider for PowerPivot 用於 PowerPivot 的 .NET Framework 數據饋送數據訪問接口 |
Office 數據庫連接文件 |
|
.odc |
|
1 還可以使用用於 ODBC 的 OLE DB 訪問接口。
2 有關 SQL Azure 的詳細信息,請參閱網站 SQL Azure。
3 有關 SQL Server PDW 的詳細信息,請參閱網站 SQL Server 2008 R2 Parallel Data Warehouse(SQL Server 2008 R2 並行數據倉庫)。
4 在某些情況下,使用 MSDAORA OLE DB 訪問接口可能會導致連接錯誤,特別是對於 Oracle 的較新版本時。如果您遇到任何錯誤,我們建議您使用為 Oracle 列出的其他訪問接口之一。
-
從關系數據庫導入表可以省去一些操作步驟,因為在導入過程中將使用外鍵關系在 PowerPivot 窗口中的工作表之間創建關系。
-
導入多個表,然后刪除不需要的表,這樣也可以省去一些操作步驟。如果一次導入一個表,則仍可能需要手動創建表之間的關系。
-
不同數據源中包含類似數據的列是在 PowerPivot 窗口中創建關系的基礎。在使用異類數據源時,應選擇包含這樣的列的表:這些列可以映射到其他數據源中包含相同或類似數據的表。
-
若要支持針對發布到 SharePoint 的工作簿的數據刷新,請選擇工作站和服務器可平等訪問的數據源。在發布工作簿后,可以設置數據刷新計划以自動更新工作簿中的信息。使用網絡服務器上可用的數據源可以實現數據刷新。有關詳細信息,請參閱創建用於 SharePoint 的 PowerPivot 工作簿。
-
OLE DB 訪問接口有時可為大型數據提供更快的性能。在為同一數據源選擇不同訪問接口時,應首先嘗試 OLE DB 訪問接口。
PowerPivot 工作簿中支持的數據類型
在 PowerPivot 中支持使用以下數據類型。當您在公式中導入數據或者使用某一值時,即使原始數據源包含不同的數據類型,該數據也轉換為以下數據類型之一。從公式得出的值也使用這些數據類型。
通常,實施這些數據類型以便在計算列中實現精確的計算,並且相同的限制將應用於 PowerPivot 中的其余數據以便保持一致性。
用於數字、貨幣、日期和時間的格式應遵循在打開該工作簿的計算機上指定的區域設置的格式。您可以使用工作表中的格式設置選項控制顯示值的方式。
PowerPivot 用戶界面中的數據類型 |
DAX 中的數據類型 |
說明 |
整數 |
一個 64 位(八字節)整數值 1, 2 |
沒有小數位的數字。整數可以是正數或負數,但必須是介於 -9,223,372,036,854,775,808 (-2^63) 和 9,223,372,036,854,775,807 (2^63-1) 之間的整數。 |
小數 |
一個 64 位(八字節)實數 1, 2 |
實數是可具有小數位的數字。實數涵蓋很廣范圍的值: 從 -1.79E +308 到 -2.23E -308 的負值 零 從 2.23E -308 到 1.79E + 308 的正值 但是,有效位數限制為 17 個小數位。 |
TRUE/FALSE |
布爾值 |
True 或 False 值。 |
文本 |
字符串 |
一個 Unicode 字符數據字符串。可以是字符串,或以文本格式表示的數字或日期。 最大字符串長度為 268,435,456 個 Unicode 字符(2 億 5 千 6 百萬個字符)或 536,870,912 字節。 |
日期 |
日期/時間 |
采用接受的日期-時間表示形式的日期和時間。 有效值是 1900 年 3 月 1 日后的所有日期。 |
貨幣 |
貨幣 |
貨幣數據類型允許值介於 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 之間,並且具有四個小數位的固定精度。 |
不適用 |
空白 |
空白是 DAX 中的一種數據類型,表示並替代 SQL 中的 Null。您可以通過使用 BLANK 函數創建空白,或者通過使用邏輯函數 ISBLANK 測試是否存在空白。 |
1 DAX 公式不支持比表中所列的類型還小的數據類型。
2 如果您嘗試導入具有非常大數值的數據,則導入可能會失敗,並且具有以下錯誤消息:
內存中數據庫錯誤:“<表名>”表的“<列名>”列包含值 "1.7976931348623157e+308",這是不支持的。操作已取消。
此錯誤是因為 PowerPivot 使用該值來表示 Null 導致的。下表中的值是上述 Null 值的同義詞:
值 |
9223372036854775807 |
-9223372036854775808 |
1.7976931348623158e+308 |
2.2250738585072014e-308 |
您應該從數據中刪除該值並且嘗試再次導入。
表數據類型
此外,DAX 使用“表”數據類型。DAX 在許多函數中都使用此數據類型,如在聚合和時間智能計算中。某些函數要求對表的引用;其他函數返回可用作對其他函數的輸入的表。在要求表作為輸入的某些函數中,您可以指定計算結果為表的表達式;對於某些函數,要求對基表的引用。有關特定函數的要求的信息,請參閱針對 PowerPivot 的 DAX 函數參考。
每個 DAX 函數都對用作輸入和輸出的數據類型具有特定的要求。例如,某些函數要求將整數用於某些參數,將日期用於其他參數;其他一些函數則要求文本或表。
如果列中您指定為參數的數據與函數所要求的數據類型不兼容,則在許多情況下 DAX 都會返回錯誤。但是,只要可能,DAX 都會嘗試隱式將數據轉換為所需的數據類型。例如:
-
您可以將日期作為字符串鍵入,並且 DAX 將分析該字符串並嘗試將其轉換為 Windows 日期和時間格式之一。
-
您可以將 TRUE + 1 並且獲取結果 2,因為 TRUE 隱式轉換為數字 1 並且將執行運算 1+1。
-
如果您將兩列中的值相加,並且一個值表示為文本 ("12"),另一個值表示為數字 (12),則 DAX 會隱式將字符串轉換為數字,然后執行加法以得到數值結果。下面的表達式返回 44: = "22" + 22
-
如果您嘗試連接兩個數字,則 PowerPivot 外接程序會將它們顯示為字符串,然后執行連接。 下面的表達式返回 "1234": = 12 & 34
下表總結了在公式中執行的隱式數據類型轉換。通常,PowerPivot 在行為上類似於 Microsoft Excel,在指定操作要求時將盡可能執行隱式轉換。
隱式數據轉換表
執行的轉換類型由運算符確定,運算符在執行請求的運算前轉換它要求的值。這些表列出了運算符,並且在與相交行中的數據類型搭配時指示對列中的每種數據類型執行的轉換。
![]() |
---|
這些表中不包含文本數據類型。在數字表示為文本格式時,在某些情況下,PowerPivot 將嘗試確定數字類型並且將其表示為數字。 |
加 (+)
運算符 (+) |
INTEGER |
CURRENCY |
REAL |
Date/time |
INTEGER |
INTEGER |
CURRENCY |
REAL |
日期/時間 |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
日期/時間 |
REAL |
REAL |
REAL |
REAL |
日期/時間 |
日期/時間 |
日期/時間 |
日期/時間 |
日期/時間 |
Date/time |
例如,如果某一實數在加法運算中與貨幣數據結合使用,則兩個值都轉換為 REAL,並且結果返回為 REAL。
減 (-)
在下表中,行標題是被減數(左側),列標題是減數(右側)。
運算符 (-) |
INTEGER |
CURRENCY |
REAL |
日期/時間 |
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
日期/時間 |
日期/時間 |
日期/時間 |
日期/時間 |
日期/時間 |
例如,如果某一日期用於采用任何其他數據類型的減法運算中,則兩個值都轉換為日期,並且返回值也是日期。
![]() |
---|
PowerPivot 還支持一元運算符 -(負號),但此運算符不能更改操作數的數據類型。 |
乘 (*)
運算符 (*) |
INTEGER |
CURRENCY |
REAL |
日期/時間 |
INTEGER |
INTEGER |
CURRENCY |
REAL |
INTEGER |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
CURRENCY |
REAL |
REAL |
CURRENCY |
REAL |
REAL |
例如,如果在乘法運算中某一整數與實數結合使用,則兩個數字都將轉換為實數,並且返回值也是 REAL。
除 (/)
在下表中,行標題是分子,列標題是分母。
運算符 (/) (行/列) |
INTEGER |
CURRENCY |
REAL |
日期/時間 |
INTEGER |
REAL |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
REAL |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
日期/時間 |
REAL |
REAL |
REAL |
REAL |
例如,如果某一整數在除法運算中與某一貨幣值一起使用,則兩個值都轉換為實數,並且結果也是實數。
比較運算符
在比較表達式中,布爾值被視作大於字符串值,字符串值被視作大於數值或者日期/時間值,數值和日期/時間值被視作具有相同排名。對布爾值或字符串值不執行隱式轉換;BLANK 或空白值根據其他比較值的數據類型轉換為 0/""/false。
下面的 DAX 表達式說明此行為:
=IF(FALSE()>"true","Expression is true", "Expression is false")返回"Expression is true"
=IF("12">12,"Expression is true", "Expression is false")返回"Expression is true"
=IF("12"=12,"Expression is true", "Expression is false")返回"Expression is false"
如下表所述,為數字或日期/時間類型執行隱式轉換:
比較運算符 |
INTEGER |
CURRENCY |
REAL |
日期/時間 |
INTEGER |
INTEGER |
CURRENCY |
REAL |
REAL |
CURRENCY |
CURRENCY |
CURRENCY |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
REAL |
日期/時間 |
REAL |
REAL |
REAL |
日期/時間 |
DAX 處理零值、Null 和空字符串的方式不同於 Microsoft Excel 和 SQL Server。本節描述這些差異,並描述如何處理這些數據類型。
務必要記住的是,在 PowerPivot 中,空白值、空單元格或缺失值全都由同一新的值類型表示,即 BLANK。在運算(例如加法或連接)中處理空白的方式取決於各個函數。您也可以通過使用 BLANK 函數生成空白,或者通過使用 ISBLANK 函數測試是否有空白。在 PowerPivot 工作簿內並不支持數據庫 Null,並且在 DAX 公式中引用包含 Null 值的列時,Null 將隱式轉換為空白。
定義空白、Null 和空字符串
下表匯總了 DAX 和 Microsoft Excel 之間在處理空白的方式上的差異。
表達式 |
DAX |
Excel |
BLANK + BLANK |
BLANK |
0(零) |
BLANK +5 |
5 |
5 |
BLANK * 5 |
BLANK |
0(零) |
5/BLANK |
無窮 |
錯誤 |
0/BLANK |
NaN |
錯誤 |
BLANK/BLANK |
BLANK |
錯誤 |
FALSE OR BLANK |
FALSE |
FALSE |
FALSE AND BLANK |
FALSE |
FALSE |
TRUE OR BLANK |
TRUE |
TRUE |
TRUE AND BLANK |
FALSE |
TRUE |
BLANK OR BLANK |
BLANK |
錯誤 |
BLANK AND BLANK |
BLANK |
錯誤 |
有關特定函數或運算符如何處理空白的詳細信息,請參閱針對 PowerPivot 的 DAX 函數參考一節中關於各 DAX 函數的單獨主題。