我們的目標是到Excel單元格鏈接到SQL分析服務器2008通過MDX生成數據透視表
用戶不想使用Excel數據透視表的連接到立方體,因爲他們需要做的數據計算。這會導致大量問題,在擴展和摺疊數據透視表分層結構時,主要引用的單元格將變爲#Ref's
。我向他們展示瞭如何關閉+/-以使其只能讀取,但並不理想。
其次,我們不喜歡數據透視表生成工具,我們都傾向於使用OWC製作的SQL 2005,2008 depreciated in sql2012中的多維數據集瀏覽器,它也是depriciated in Excel 2007 onwards。
所以我有點醃製。我一直在研究生成MDX的工具堆。幾個突出是Mosha Pasumansky's awesome MDX Studio和http://silverlight.galantis.com的Ranet Olap Library Components
我現在想實現的是設置Excel單元格與MDX的。具體方法如下:
- 的Excel>數據標籤>連接>連接到一個立方體
- 透視表,使用現有的連接
- 將數據添加到數據透視表中的數據透視表
- 雙擊某個值向下鑽取,會創建一個新的工作表,其中包含數據的二維表示。
- 數據選項卡>連接>選擇由深度鑽取創建的連接。
- 單擊屬性>定義,並粘貼在命令文本字段中的MDX查詢> OK
該填充細胞與多維數據集的數據,但它只有一排,我無法弄清楚如何使多行和層次,看到對話框其唯一的一行數據背後:
在生成MDX查詢的工具,它是多行:
我知道這是一個很長的嘗試,試圖獲得這個工作,我懷疑它甚至可能,但我已經沒有想法了。
我試過PowerPivot工具,它很糟糕,它的多維數據集瀏覽器不能像SQL立方體瀏覽器那樣工作,只能添加列!它就像一個倒退到標準數據透視表的步驟。
所以在這一點上,我試圖在Excel中建立一個漂亮的數據透視表「瀏覽器」 - 它似乎沒有市場上的任何東西?這就是爲什麼我訴諸第三方工具來獲得MDX並插入Excel(通過VSTO編程)。
一個我試過,沒有運氣,但認爲我會提到另一件事是Display the MDX query of an Excel 2007 PivotTable:
Private Sub Workbook_Open()
Dim ptcon As CommandBar
'See the following for list of menus in excel
'http://support.microsoft.com/support/kb/articles/Q213/5/52.ASP
'Title: XL2000: List of ID Numbers for Built-In CommandBar Controls
Set ptcon = Application.CommandBars("PivotTable context menu")
insertDisplayMDX:
Dim cmdMdx As CommandBarControl
For Each btn In ptcon.Controls
If btn.Caption = "MDX Query" Then GoTo doneDisplayMDX
Next btn
' Add an item to the PivotTable context menu.
Set cmdMdx = ptcon.Controls.Add(Type:=msoControlButton, temporary:=True)
' Set the properties of the menu item.
cmdMdx.Caption = "MDX Query"
cmdMdx.OnAction = "DisplayMDX"
doneDisplayMDX:
End Sub
'And this is the DisplayMDX subroutine, that you can insert in a separate module.
Sub DisplayMDX()
Dim mdxQuery As String
Dim pvt As PivotTable
Dim ws As Worksheet
Set pvt = ActiveCell.PivotTable
mdxQuery = pvt.MDX
' Add a new worksheet.
Set ws = Worksheets.Add
ws.Range("A1") = mdxQuery
End Sub
Unfortunaly的pvt.MDX屬性爲只讀!
如果你有到這裏感謝您的閱讀,任何想法最歡迎:)
您是否發現了一種從MDX生成數據透視表的新方法? –