チュートリアル:マトリックス レポートの作成 (Report Builder)

このチュートリアルでは、入れ子になった行および列グループ内のサンプル売上データのマトリックスを使用して、Reporting Services のページ分割されたレポートを作成する方法について説明します。

また、隣接する列グループの作成、列の書式設定、およびテキストの回転も行います。 次の図に、このチュートリアルで作成するレポートと同様のレポートを示します。

Screenshot of a Report Builder matrix report.

このチュートリアルの推定所要時間:20 分

必要条件

要件については、「 チュートリアルの前提条件」を参照してください。

1. テーブルまたはマトリックスの新規作成ウィザードを使用してマトリックスレポートとデータセットを作成する

このセクションでは、共有データ ソースを選択し、埋め込みデータセットを作成して、データをマトリックスに表示します。

Note

このチュートリアルのクエリには既にデータ値が含まれているため、外部のデータ ソースを必要としません。 このため、クエリが非常に長くなっています。 ビジネス環境でクエリにデータを含めることはありません。 これは、学習に使用することのみを目的としています。

マトリックスを作成する

  1. コンピューター、Web ポータル、SharePoint 統合モードのいずれかから レポート ビルダーを起動します Reporting Services 。

    [新しいレポートまたはデータセット] ダイアログ ボックスが開きます。

    [新しいレポートまたはデータセット] ダイアログ ボックスが表示されない場合、[ファイル] メニュー >[新規作成] を選択します。

  2. 左ペインで、 [新しいレポート] が選択されていることを確認します。

  3. 右ペインで、 [テーブルまたはマトリックス ウィザード] をクリックします。

  4. [データセットの選択] ページで、[データセットの作成] を選択します。

  5. [次へ] を選択します。

  6. [データ ソースへの接続の選択] ページで、既存のデータ ソースを選択するか、レポート サーバーを参照してデータ ソースを選択します。 使用できるデータ ソースがなく、レポート サーバーにもアクセスできない場合は、代わりに埋め込みデータ ソースを使用できます。 埋め込みデータ ソースの作成については、「チュートリアル: 基本的な表レポートの作成 (Report Builder)」を参照してください。

  7. [次へ] を選択します。

  8. [クエリのデザイン] ページで、[テキストとして編集] を選びます。

  9. 次のクエリをコピーし、クエリ ペインに貼り付けます。

    SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(16996.60 AS money) AS Sales, 68 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13747.25 AS money) AS Sales, 55 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Carrying Case' as Product, CAST(9248.15 AS money) As Sales, 37 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1350.00 AS money) AS Sales, 18 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1800.00 AS money) AS Sales, 24 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1125.00 AS money) AS Sales, 15 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1147.50 AS money) AS Sales, 17 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory,  'Lens Adapter' as Product, CAST(742.50 AS money) AS Sales, 11 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1417.50 AS money) AS Sales, 21 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(13497.30 AS money) AS Sales, 54 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(11997.60 AS money) AS Sales, 48 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory, 'Carrying Case' as Product, CAST(10247.95 AS money) As Sales, 41 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory, 'Tripod' as Product, CAST(1200.00 AS money) AS Sales, 16 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(2025.00 AS money) AS Sales, 27 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Tripod' as Product, CAST(1425.00 AS money) AS Sales, 19 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(887.50 AS money) AS Sales, 13 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Accessories' as Subcategory, 'Lens Adapter' as Product, CAST(607.50 AS money) AS Sales, 9 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Accessories' as Subcategory,'Lens Adapter' as Product, CAST(1215.00 AS money) AS Sales, 18 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate,  'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(10191.00 AS money) AS Sales, 79 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate,  'North' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8772.00 AS money) AS Sales, 68 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate,  'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(10578.00 AS money) AS Sales, 82 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'Central' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(7218.10 AS money) AS Sales, 38 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'North' as Territory,'Digital' as Subcategory, 'Slim Digital' as Product, CAST(8357.80 AS money) AS Sales, 44 as Quantity  
    UNION SELECT CAST('2015-01-05' AS date) as SalesDate, 'South' as Territory,'Digital' as Subcategory,'Slim Digital' as Product, CAST(9307.55 AS money) AS Sales, 49 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate,  'Central' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(3870.00 AS money) AS Sales, 30 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate,  'North' as Territory, 'Digital' as Subcategory,'Compact Digital' as Product, CAST(5805.00 AS money) AS Sales, 45 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate,  'South' as Territory, 'Digital' as Subcategory, 'Compact Digital' as Product, CAST(8643.00 AS money) AS Sales, 67 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'Central' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(9877.40 AS money) AS Sales, 52 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'North' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(12536.70 AS money) AS Sales, 66 as Quantity  
    UNION SELECT CAST('2015-01-06' AS date) as SalesDate, 'South' as Territory, 'Digital' as Subcategory, 'Slim Digital' as Product, CAST(6648.25 AS money) AS Sales, 35 as Quantity  
    
  10. (オプション) [実行] アイコン (!) を選択してクエリを実行し、データを表示します。

  11. [次へ] を選択します。

2. テーブルまたはマトリックスの新規作成ウィザードを使用してデータを整理し、レイアウトを選択する

ウィザードを使用して、データを表示する最初のデザインを作成します。 ウィザードのプレビュー ペインでは、マトリックスのデザインを完了する前にデータのグループ化の結果を表示できます。

  1. [フィールドの配置] ページで、 [使用できるフィールド] から Territory を [行グループ] にドラッグします。

  2. SalesDate を [行グループ] にドラッグして Territory の後に配置します。

    [行グループ] 内でフィールドが表示される順序によって、グループの階層が決まります。 手順 1. および 2. で、フィールドの値がまず販売区域でまとめられ、次に販売日でまとめられます。

  3. Subcategory を [列グループ] にドラッグします。

  4. Product を [列グループ] にドラッグして Subcategory の後に配置します。

    ここでも、 [列グループ] 内でフィールドが表示される順序によって、グループの階層が決まります。 手順 3. および 4. で、フィールドの値がまずサブカテゴリでまとめられ、次に製品でまとめられます。

  5. Sales を [値] にドラッグします。

    Sales は Sum 関数 (数値フィールドを集計するための既定の関数) を使用して集計されます。

  6. Quantity を [値] にドラッグします。

    Quantity は Sum 関数を使用して集計されます。

    手順 5. および 6. で、マトリックスのデータ セルに表示するデータが指定されます。

    Screenshot that shows the Report Builder arrange fields Report Wizard.

  7. [次へ] を選択します。

  8. [レイアウトの選択] ページの [オプション] で、 [小計と総計を表示] が選択されていることを確認します。

  9. [ブロック、小計は下] が選択されていることを確認します。

  10. [グループの展開/折りたたみ] チェック ボックスがオンであることを確認します。

  11. [次へ] を選択します。

  12. [完了] を選択します。

    マトリックスがデザイン画面に追加されます。 [行グループ] ペインには 2 つの行グループが表示されます。Territory と SalesDate です。 [列グループ] ペインには 2 つの列グループが表示されます。Subcategory と Product です。 詳細データは、データセットクエリによって取得されるすべてのデータです。

    Screenshot that shows the Report Builder Row Groups and Column Groups.

  13. [実行] を選択してレポートをプレビューします。

    マトリックスには、特定の日付に販売された製品ごとに、製品のサブカテゴリと販売区域が表示されます。

  14. サブカテゴリを展開します。 レポートの幅は、すぐに広くなります。

Screenshot that shows an expanded Report Builder matrix report.

3. データの書式を設定する

既定では Sales フィールドの概要データでは通常の数値が、SalesDate フィールドには日付と時刻の両方の情報が表示されます。 このセクションでは、書式を設定して Sales フィールドでは数値が通貨として表示されるようにし、SalesDate フィールドでは日付のみが表示されるようにします。 書式設定したテキスト ボックスおよびプレースホルダー テキストのサンプル値を表示するには、 [プレースホルダーのスタイル] の設定を切り替えます。

フィールドの書式設定

  1. デザイン ビューに切り替えるには、[デザイン] を選択します。

  2. Ctrl</localizedText> キーを押しながら、 [Sum(Sales)]が格納されている 9 つのセルを選択します。

  3. [ホーム] タブ >[数値]>[通貨] の順に選択します。 書式設定された通貨を表示するようにセルが変化します。

    地域設定が英語 (米国) の場合、既定のサンプル テキストは [$12,345.00] です。 通貨値の例が表示されない場合は、[数値] グループで、[プレースホルダーのスタイル]>[サンプルの値] の順に選択します。

    Screenshot of the Report Builder Sample Values option.

  4. [SalesDate]が格納されたセルを選択します。

  5. [数値] グループで [日付] に移動します。

    セルに、日付の例として [2000/1/31] と表示されます。 日付の例が表示されない場合は、[数値] グループの [プレースホルダーのスタイル] を選択し、[サンプルの値] を選択します。

  6. [実行] を選択してレポートをプレビューします。

日付値には日付のみが表示され、売上の値は通貨として表示されます。

4. 隣接する列グループを追加する

行グループと列グループは親子リレーションシップを使用して入れ子にしたり、兄弟リレーションシップを使用して隣接させたりすることができます。

このセクションでは、[Subcategory] 列グループに隣接する列グループを追加し、セルをコピーして新しい列グループに値を設定し、式を使用して列グループ ヘッダーの値を作成します。

隣接する列グループを追加する

  1. [デザイン] を選択してデザイン ビューに戻ります。

  2. [Subcategory] を格納しているセルを右クリックし、[グループの追加] をポイントして [右に隣接] を選択します。

    [Tablix のグループ] ダイアログ ボックスが表示されます。

  3. [グループ化] ボックスの一覧で [SalesDate] を選択し、[OK] を選択します。

    Subcategory 列グループの右側に新しい列グループが追加されます。

  4. 新しい列グループで [SalesDate], を格納しているセルを右クリックして、[式] を選択します。

  5. 式ボックスに次の式をコピーします。

    =WeekdayName(DatePart("w",Fields!SalesDate.Value))  
    

    この式により、販売日から曜日が抽出されます。 詳しくは、「ページ分割されたレポート内の式 (Report Builder)」をご覧ください。

  6. [Subcategory] 列グループで Total を格納しているセルを右クリックして、[コピー] を選択します。

  7. 手順 5. で作成した式が格納されているセルの直下のセルを右クリックして、[貼り付け] を選択します。

  8. Ctrl</localizedText> キーを押します。

  9. [Subcategory] グループで [Sales] 列ヘッダーとその下の 3 つのセルを選択して右クリックし、[コピー] を選択します。

  10. この 4 つのセルを新しい列グループの 4 つの空のセルに貼り付けます。

  11. [実行] を選択してレポートをプレビューします。

レポートには、月曜日と火曜日という名前の列が表示されます。 データセットには、この 2 つの曜日のデータのみが含まれています。

Screenshot that shows weekdays displayed in the Report Builder matrix report.

Note

他の曜日のデータが含まれている場合は、レポートにそれらの曜日の列も表示されます。 各列には Salesという列ヘッダーと、販売区域ごとの売上合計が表示されます。

5. 列幅を変更する

通常、マトリックスを含むレポートは、実行すると、水平方向と垂直方向に拡張されます。 水平方向の拡張の制御は、印刷レポートに使用される Microsoft Word や Adobe PDF などの形式にレポートをエクスポートする場合に重要です。 レポートが複数のページにまたがって水平方向に拡張される場合、印刷レポートは理解しにくくなります。 水平方向の拡張を最小限に抑えるには、列のサイズを変更して、折り返しをしないでデータを表示できるだけの幅にします。 また、列の名前を変更して、タイトルがデータの表示に必要な幅に収まるようにすることもできます。

列の名前とサイズを変更する

  1. [デザイン] を選択してデザイン ビューに戻ります。

  2. 一番左にある [Quantity] 列のテキストを選択して「QTY」と入力します。

    列のタイトルが、QTY になります。

  3. 他の 2 つの Quantity 列についても、手順 2 を実行します。

  4. マトリックスを選択し、列ハンドルおよび行ハンドルをマトリックスの上部および横に表示します。

    テーブルの上と横のグレーのバーは、列および行ハンドルです。

    Screenshot for the column and row handles in the Report Builder matrix report.

  5. マトリックスの一番左にある QTY 列のサイズを変更するには、列ハンドルの間の罫線をポイントします。カーソルが 2 方向の矢印の形状に変化します。 列を左にドラッグして、幅を 0.5 インチにします。

    幅が 0.5 インチの列であれば、数量を表示できます。

  6. その他の QTY 列についても、手順 5. を実行します。

  7. [実行] を選択してレポートをプレビューします。

数量を含む列は幅が狭くなり、名前が QTY になりました。

6. マトリックスセルを結合する

コーナー領域は、マトリックスの左上隅にあります。 マトリックス内の行グループと列グループの数に応じて、コーナー領域にセル数は変わります。 このチュートリアルで作成するマトリックスには、コーナー領域に 4 つのセルがあります。 これらのセルは、行グループと列グループの階層の深さに対応して、2 行 2 列で表示されています。 これらの 4 つのセルはこのレポートでは使用されないので、結合して 1 つのセルにします。

マトリックス セルを結合する

  1. [デザイン] を選択してデザイン ビューに戻ります。

  2. マトリックスを選択し、列ハンドルおよび行ハンドルをマトリックスの上部および横に表示します。

  3. Ctrl キーを押しながら、4 つのコーナー セルを選択します。

  4. セルを右クリックし、[セルの結合] を選択します。

  5. 新たに結合されたセルを右クリックして、[テキスト ボックスのプロパティ] を選択します。

  6. [罫線] タブ >[プリセット]>[なし] の順に選択します。

  7. [OK] を選択します。

  8. [実行] を選択してレポートをプレビューします。

マトリックスの上隅のセルは表示されなくなりました。

7. レポートヘッダーおよびレポートタイトルを追加する

レポート タイトルは、レポートの最上部に表示されます。 レポート ヘッダーがあれば、そこにレポート タイトルを配置します。レポート ヘッダーを使用しない場合は、レポート本文の一番上のテキスト ボックスに配置します。 このチュートリアルでは、レポートの一番上に配置されているテキスト ボックスを削除し、ヘッダーにタイトルを追加します。

レポートヘッダーおよびレポートタイトルを追加する

  1. [デザイン] を選択してデザイン ビューに戻ります。

  2. レポート本文の一番上にある "クリックしてタイトルを追加" という文字列が含まれているテキスト ボックスを選択し、Delete キーを押します。

  3. [挿入] タブで [ヘッダー]>[ヘッダーの追加] の順に選択します。

    ヘッダーがレポート本文の先頭に追加されます。

  4. [挿入] タブの [テキスト ボックス] を選択し、テキスト ボックスをレポート ヘッダーの内側にドラッグします。 テキスト ボックスのサイズをおおよそ横 6 インチ、縦 3/4 インチにして、レポート ヘッダーの左側に配置します。

  5. テキスト ボックスに Sales by Territory, Subcategory, and Day と入力します。

  6. 入力したテキストを選択し、[ホーム] タブ >[フォント] を選択します。

    • サイズ: 24 pt
    • 色: 茶色
  7. [実行] を選択してレポートをプレビューします。

レポートのレポート ヘッダーにレポート タイトルが表示されます。

8. レポートを保存する

レポートは、レポート サーバー、SharePoint ライブラリ、またはコンピューターに保存することができます。

このチュートリアルでは、レポートをレポート サーバーに保存します。 レポート サーバーにアクセスできない場合は、レポートをコンピューターに保存してください。

レポート サーバーにレポートを保存する

  1. レポート ビルダー ボタンで、[名前を付けて保存] を選びます。

  2. [最近使ったサイトとサーバー] を選択します。

  3. レポートを保存する権限があるレポート サーバーの名前を入力するか選択します。

    "レポート サーバーに接続しています" というメッセージが表示されます。 接続が完了すると、レポート サーバー管理者がレポートの既定の場所として指定したレポート フォルダーのコンテンツが表示されます。

  4. [名前] に表示されている既定の名前を「 SalesByTerritorySubcategory」に変更します。

  5. [保存] を選択します。

レポートがレポート サーバーに保存されます。 接続しているレポート サーバーの名前がウィンドウ下部のステータス バーに表示されます。

コンピューターにレポートを保存する

  1. レポート ビルダー ボタンで、[名前を付けて保存] を選びます。

  2. [デスクトップ][マイ ドキュメント] 、または [マイ コンピューター] を選択した後、レポートを保存するフォルダーを参照します。

  3. [名前] に表示されている既定の名前を「 SalesByTerritorySubcategory」に変更します。

  4. [保存] を選択します。

9. (オプション) テキスト ボックスを 270 度回転させる

マトリックスを含むレポートは、実行すると、水平方向と垂直方向に拡張されます。 テキストボックスを垂直方向に、つまり 270 度回転させると、水平方向のスペースを節約できます。 表示レポートの幅は狭くなり、Microsoft Word などの形式にエクスポートした場合は、印刷ページ内に収まる可能性が高くなります。

テキスト ボックスでも、テキストを水平方向または垂直方向 (上から下) に表示できます。 詳しくは、「ページ分割されたレポートのテキスト ボックス (Report Builder)」をご覧ください。

テキスト ボックスを 270 度回転させる

  1. [デザイン] を選択してデザイン ビューに戻ります。

  2. 次が格納されたセルを選択します。 [Territory].

    Note

    テキストではなくセルを選択します。 WritingMode プロパティは、セルにのみ使用できます。

    Screenshot that shows the Territory cell in the Report Builder matrix report.

  3. [プロパティ] ペインで [WritingMode] プロパティを探し、 [既定値] から [Rotate270] に変更します。

    [プロパティ] ペインが表示されていない場合は、リボンの [表示] タブの [プロパティ] チェックボックスをオンにします。

  4. CanGrow プロパティが Trueに設定されていることを確認します。

  5. [ホーム] タブ >[段落] セクションで、[中央揃え][中央] を選択して、テキストをセルの垂直方向と水平方向の中央に配置します。

  6. [Territory] 列の幅を 0.5 インチに変更して、列タイトルを削除します。

  7. [実行] を選択してレポートをプレビューします。

販売区域名が垂直方向 (上から下) に表示されます。 Territory 行グループの高さは、販売区域名の長さによって変わります。

次のステップ

マトリックスレポートを作成する方法に関するチュートリアルを修了しました。 マトリックスの詳細については、以下を参照してください。