1

目標は、Excel セルを SQL Analysis Server 2008 にリンクすることです。

ユーザーは、データに対して計算を行う必要があるため、キューブに接続するために Excel のピボット テーブルを使用したくありません。#Ref'sこれにより、ピボット テーブル階層を展開したり折りたたんだりするときに、主に参照されるセルがさまざまな問題を引き起こします。+/- をオフにして読み取り専用にする方法を示しましたが、理想的ではありません。

次に、ピボット テーブル生成ツールが好きではありません。SQL 2005、2008 の Cube Browser を好みます。OWCで作成された sql2012 で減価償却され、Excel 2007 以降でも減価償却されます。

だから私は少しピクルスにいます。私は、MDX を生成するためのツールの山を研究してきました。Mosha Pasumanskyの素晴らしい MDX Studiohttp://silverlight.galantis.comRanet Olap Library Componentsが際立っていました。

私が今達成しようとしているのは、MDX で Excel セルを設定することです。方法は次のとおりです。

  1. Excel > [データ] タブ > [接続] > [キューブに接続]
  2. ピボット テーブル、既存の接続を使用
  3. ピボット テーブルにデータを追加する
  4. ピボット テーブルの値をダブルクリックしてドリルダウンすると、データの 2D 表現で新しいシートが作成されます。
  5. [データ] タブ > [接続] > ドリル ダウンのために Excel によって作成された接続を選択します。
  6. [プロパティ] > [定義] をクリックし、[コマンド テキスト] フィールドに MDX クエリを貼り付け > [OK]

これにより、セルにキューブ データが入力されますが、1 行しかありません。複数の行と階層を作成する方法がわかりません。ダイアログの背後にある 1 行のデータのみを確認してください。

ここに画像の説明を入力

MDX クエリを生成するツールでは、複数行です。

ここに画像の説明を入力

これを機能させようとするのは長い道のりであることはわかっていますが、それが可能であるとは思えませんが、アイデアが不足しています。

PowerPivotツールを試してみましたが、ひどいものでした。そのキューブ ブラウザーは、SQL キューブ ブラウザーと同じようには機能しません。列しか追加できません。標準のピボットテーブルに戻るようなものです。

この時点で、組み込みの Excel で素敵なピボット テーブルの「ブラウザ」を見つけようとしています。市場には何もないように見えますか? そのため、サードパーティのツールを使用して MDX を取得し、Excel に (プログラムで VSTO を介して) 挿入しています。

運が悪かったが、言及したいと思ったもう1つのことは、Excel 2007 PivotTableのMDXクエリを表示することです。

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

残念ながら、pvt.MDX プロパティは ReadOnly です。

ここまで読んでくれてありがとう。どんなアイデアでも大歓迎です:)

4

2 に答える 2

0

Excelアドインを作成できます(この他の投稿を参照してください)。

このアドインは、キューブを接続し、独自のMDXクエリでクエリするためのADOMD.NETに基づいている場合があります。

CellSetを指定すると、指定したセルを抽出して、Excelシートの必要な場所に挿入できます。

于 2012-06-22T22:08:23.293 に答える
0

Ranet PivotGrid は、階層内でグループ化されていないデータを表示できます (メンバー グループ モード)。MDX クエリの結果は、Excel にエクスポートできます。ただし、データ式には関連付けられません。Mdx クエリを処理し、Excel ファイルを生成するコードが含まれている場合があります。

于 2013-03-17T17:09:32.570 に答える