• 検索結果がありません。

属性メンバの並べ替えの設定

char や varchar などの文字データ(商品名や区分名、仕入先名、社員名など)の属性メンバは、

デフォルトでは名前の順に並べ替えられます。しかし、名前順ではなく、コード順で並べ替えたい 場合が多くあります(商品名なら商品コード、区分名なら区分コードで並べ替えるなど)。

また、ピボットテーブルでは、名前だけでなくコードも併せて表示したい場合があります。しかし、

デフォルトでは、次のように 1 対 1 の関係のあるデータでも階層的に表示されてしまいます。

これを階層的ではなく、並列(横並び)で表示するには、次のように Excel ピボットテーブルの

[デザイン]タブで[レポートのレイアウト]を「表形式で表示」をクリックします。

この例では、区分名を左へ配置しているので、区分名の順にメンバが並んでいて、区分コード順で はないことを確認できます。このような場合にも、属性(区分名)のプロパテゖを変更することで、

区分名と区分コード が階層的に表示され

てしまう

1

2

区分コード順に並べ替えることができるようになります。

KeyColumns、NameColumn、OrderBy プロパティ

属性の並べ替えに関わるプロパテゖには、KeyColumns、NameColumn、OrderBy の 3 つがあ り、KeyColumns はキーとなる列、NameColumn は表示用の列、OrderBy は並べ替えで利 用する列を指定することができます。デフォルトでは、KeyColumns と NameColumn は該当列

(区分名なら区分名)が設定され、OrderBy には「Name」が設定されているので、NameColumn に設定された列で並べ替えるようになっています。

したがって、KeyColumns に名前が設定されている場合は、同じ名前のデータが同一視されてし まうという問題も抱えています(商品名などで、商品コードが違うのに、同じ名前の商品があった 場合は、同じ商品の売上げとして認識されてしまう)。これを回避するには(名前ではなく、コー ドでデータを識別したい場合には)、KeyColumns へコードを設定し、NameColumn へ名前を設 定するようにします。

Let's Try

それでは、これを試してみましょう。ここでは「区分名」属性の KeyColumns を「区分コード」

へ変更して、OrderBy へ「区分コード」を設定するようにしてみましょう。

1. まず、「区分名」属性が含まれている「商品」デゖメンションをダブルクリックして開きます。

属性の一覧から「区分名」を選択し、右下の[プロパティ]ウ゗ンドウを開きます。プロパテ ゖの一覧から「KeyColumns」を探し、これを展開して[商品区分.区分名(WChar)]の「...」

1 2

3 4

ボタンをクリックします。[キー列]ダ゗ゕログが表示されたら、[基となる列]から「区分コ ード」列を選択して[OK]ボタンをクリックします。これで KeyColumns プロパテゖを「区 分コード」へ変更できました。

2. 次に、NameColumn プロパテゖが「区分名」へ設定されていることを確認するために、プ ロパテゖの一覧から「NameColumn」を探し、「...」ボタンをクリックします。

[基になる列]で「区分名」を選択されていることを確認して、[OK]ボタンをクリックしま す。これで NameColumn プロパテゖが「区分名」へ設定されています。

OrderBy プロパティで並べ替えの設定

3. 次に、OrderBy プロパテゖを変更して、並べ替えを「区分コード」で行うようにしてみまし ょう。プロパテゖの一覧から「OrderBy」を探し、「Key」を選択します。

これで並べ替えを KeyColumns へ変更することができます。KeyColumns は、前の手順で

「区分コード」へ変更しているので、これで並べ替えができるようになります。

4. 設定が完了したら、ここまでの変更をキューブへ反映させるために、キューブを右クリックし 1

2

1

て[処理]をクリックし、処理を実行します。

ディメンション ブラウザで結果の確認

5. 属性に対するプロパテゖ変更は、次のようにデゖメンション エデゖタの[ブラウザ]タブ(デ ゖメンション ブラウザ)で確認できます。

階層で「区分名」属性を選択し、区分名のメンバが一覧され、これらが区分コードの順に並べ 変わっていることを確認できます。Excel ピボットテーブルからも次のように確認できます。

1

1 2

区分コード順に 並んでいることを確認

3

コード+名前へ表示名を変更

前の手順のように名前(区分名や商品名など)をコード(区分コードや商品コード)で並べ替える 場合は、名前にコードを付加して、「コード:名前」(1:飲料、2:調味料、…)のように表示し たい場合があります。このように複数の列データから表示名を作るには、データソース ビューを 利用して「名前付き計算」を追加します。

それでは、これを試してみましょう。ここでは、商品区分を「区分コード:区分名」で表示するよ うにしてみましょう。

1. まずは、ソリューション エクスプローラで[データソース ビュー]フォルダの「Northwind J」をダブルクリックして開きます。

次に、「商品区分」テーブルを右クリックして「新しい名前付き計算」をクリックします。[名 前付き計算の作成]ダ゗ゕログでは、[列名]へ「区分コードと名前」と入力し、[式]へは次 のように入力して、[OK]ボタンをクリックします。

CONVERT(varchar, 区分コード) + ': ' + 区分名

int 型の「区分コード」列を CONVERT 関数で varhcar 型へ変換して、文字列「: 」と「区 分名」列と文字列連結させています。

2. 続いて、次のように「商品」デゖメンションを開き、名前付き計算として追加した「区分コー ドと名前」を「属性」エリゕへドラッグ&ドロップして属性として追加します。

1

2

3

4

3. 次に、属性として追加した「区分コードと名前」をクリックし、右下の[プロパティ]ウ゗ン ドウを開きます。

プロパテゖの一覧から「KeyColumns」を展開して[商品区分.区分コードと名前]の「...」

ボタンをクリックします。[キー列]ダ゗ゕログでは、[基となる列]から「区分コード」列を 選択して[OK]ボタンをクリックします。これで KeyColumns プロパテゖを「区分コード」

へ変更できます。

4. 次に、プロパテゖの一覧から「NameColumn」を探し、「...」ボタンをクリックします。

2

1

1

2 3

[名前列]ダ゗ゕログでは、[基となる列]から「区分コードと名前」列を選択して[OK]ボ タンをクリックします。これで表示名を作成した名前付き計算へ設定できます。

5. 次に、プロパテゖの一覧から「OrderBy」を探し、「Key」を選択します。

これで並べ替えを区分コードで行えるようになります。

6. 最後に、ここまでの設定をキューブへ反映されるために、キューブを右クリックして[処理]

をクリックし、処理を実行します。

1

2

1

1

7. 以上の結果を確認すると、次のようになります。

Note: データソース ビューでの FriendlyName

データソース ビューでは、実際の列名とは異なる名前(別名)を設定できる FriendlyName というプロパテゖもあり ます。たとえば、次のように「受注明細」テーブルの「数量」列に対して、FriendlyName プロパテゖを「受注数量」

と設定したとします。

このように設定した状態でキューブ ウゖザードを実行してキューブを作成すると、Name プロパテゖが「受注数量」

へ設定されたメジャーが作成されるようになります。

1

2

ここを設定しておくと、キューブ ウゖザード でキューブを作ったときに、次のスラ゗ドの

Name を自動設定してくれる

3 1

2

関連したドキュメント