このチュートリアルでは、サンプル売上データに基づいて基本的なマトリックス レポートを作成する方法について説明します。 マトリックスには、入れ子になった行グループと列グループ、および隣接する列グループがあります。 また、列の書式設定とテキストの回転方法についても説明します。 次の図は、作成するレポートと同様のレポートを示しています。
このチュートリアルで作成するレポートの拡張バージョンは、サンプルの SQL Server 2014 レポート ビルダー レポートとして使用できます。 このサンプルレポートやその他のサンプルレポートのダウンロード方法については、レポートビルダーのサンプルレポートを参照してください。
学習する内容
このチュートリアルでは、次の方法について説明します。
その他の省略可能な手順
このチュートリアルの推定所要時間:20 分
要求事項
要件の詳細については、「 チュートリアルの前提条件 (レポート ビルダー)」を参照してください。
1. 新しいテーブルまたはマトリックス ウィザードからマトリックス レポートとデータセットを作成する
レポート ビルダーの [ はじめ に] ダイアログ ボックスで、共有データ ソースを選択し、埋め込みデータセットを作成して、マトリックスにデータを表示します。
注
このチュートリアルのクエリには既にデータ値が含まれているため、外部のデータ ソースを必要としません。 このため、クエリが非常に長くなっています。 ビジネス環境でクエリにデータを含めることはありません。 これは、学習に使用することのみを目的としています。
新しいマトリックスを作成するには
[ スタート] をクリックし、[ プログラム] をポイントし、 Microsoft SQL Server 2012 レポート ビルダーをポイントして、[ レポート ビルダー] をクリックします。
注
[ 作業の開始 ] ダイアログ ボックスが表示されます。 そうでない場合は、[レポート ビルダー] ボタンから [ 新規] をクリックします。
左ペインで、 [新しいレポート] が選択されていることを確認します。
右側のウィンドウで、[ テーブル] または [マトリックス ウィザード] をクリックします。
[ データセットの選択 ] ページで、[ データセットの作成] をクリックします。
[次へ] をクリックします。
[ データ ソースへの接続の選択 ] ページで、既存のデータ ソースを選択するか、レポート サーバーを参照して、データ ソースを選択します。 使用できるデータ ソースがない場合、またはレポート サーバーにアクセスできない場合は、代わりに埋め込みデータ ソースを使用できます。 埋め込みデータ ソースの作成の詳細については、「 チュートリアル: 基本的なテーブル レポートの作成 (レポート ビルダー)」を参照してください。
[次へ] をクリックします。
[ クエリのデザイン ] ページで、[ テキストとして編集] をクリックします。
次のクエリをコピーし、クエリ ペインに貼り付けます。
SELECT CAST('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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('2009-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[次へ] をクリックします。
2. 新しいテーブルまたはマトリックス ウィザードからデータを整理し、レイアウトとスタイルを選択する
ウィザードを使用して、データを表示する最初のデザインを作成します。 ウィザードのプレビュー ペインでは、マトリックスのデザインを完了する前にデータのグループ化の結果を表示できます。
データをグループに整理し、レイアウトとスタイルを選択するには
[フィールドの配置] ページで、 [使用できるフィールド] から Territory を [行グループ] にドラッグします。
SalesDate を 行グループ にドラッグし、Territory の下に配置します。
[行グループ] 内でフィールドが表示される順序によって、グループの階層が決まります。 手順 1. および 2. で、フィールドの値がまず販売区域でまとめられ、次に販売日でまとめられます。
Subcategory を [列グループ] にドラッグします。
Product を 列グループ にドラッグし、サブカテゴリの下に配置します。
列グループにフィールドが表示される順序によって、グループ階層が定義されます。
手順 3. および 4. で、フィールドの値がまずサブカテゴリでまとめられ、次に製品でまとめられます。
Sales を [値] にドラッグします。
Sales は Sum 関数 (数値フィールドを集計するための既定の関数) を使用して集計されます。
Quantity を [値] にドラッグします。
Quantity は Sum 関数を使用して集計されます。
手順 5. および 6. で、マトリックスのデータ セルに表示するデータが指定されます。
[次へ] をクリックします。
[レイアウトの選択] ページの [オプション] で、 [小計と総計を表示] が選択されていることを確認します。
[ブロック、小計は下] が選択されていることを確認します。
[グループの展開/折りたたみ] チェック ボックスがオンであることを確認します。
[次へ] をクリックします。
[スタイルの選択] ページの [スタイル] ウィンドウで、[ スレート] を選択します。
[完了] をクリックします。
マトリックスがデザイン画面に追加されます。 [行グループ] ペインには 2 つの行グループが表示されます。Territory と SalesDate です。 [列グループ] ペインには 2 つの列グループが表示されます。Subcategory と Product です。 詳細データは、データセット クエリによって取得されるすべてのデータです。
[実行] をクリックして、レポートをプレビューします。
マトリックスには、特定の日付に販売された製品ごとに、製品のサブカテゴリと販売区域が表示されます。
3. データの書式設定
既定では Sales フィールドの概要データでは通常の数値が、SalesDate フィールドには日付と時刻の両方の情報が表示されます。 数値を通貨として表示するように Sales フィールドを書式設定し、日付のみを表示する SalesDate フィールドを書式設定します。 書式設定したテキスト ボックスおよびプレースホルダー テキストのサンプル値を表示するには、 [プレースホルダーのスタイル] の設定を切り替えます。
フィールドの書式を設定するには
デザイン ビューに切り替えるには、[デザイン] をクリックします。
Ctrl</localizedText> キーを押しながら、
[Sum(Sales)]が格納されている 9 つのセルを選択します。[ホーム] タブの [数値] グループで、 [通貨] をクリックします。 セルが変更され、書式設定された通貨が表示されます。
地域設定が英語 (米国) の場合、既定のサンプル テキストは [$12,345.00] です。 通貨値の例が表示されない場合は、[数値] グループの [プレースホルダー スタイル] をクリックし、[サンプル値] をクリックします。
[SalesDate]を含むセルをクリックします。[ 数値 ] グループのドロップダウン リストから [日付] を選択 します。
セルに、日付の例として [2000/1/31] と表示されます。 日付の例が表示されない場合は、[数値] グループの [プレースホルダー スタイル] をクリックし、[サンプル値] をクリックします。
[実行] をクリックして、レポートをプレビューします。
日付値には日付のみが表示され、売上の値は通貨として表示されます。
4. 隣接する列グループを追加する
行グループと列グループは、親子関係としてネストさせることも、兄弟関係で隣接させることもできます。
Subcategory 列グループに隣接する列グループを追加し、セルをコピーして新しい列グループを入力し、次に式を使用してその列グループ ヘッダーの値を作成します。
隣接する列グループを追加するには
[ デザイン ] をクリックしてデザイン ビューに戻ります。
[Subcategory]を含むセルを右クリックし、[グループの追加]をポイントして、[右隣に追加]をクリックします。[Tablix のグループ] ダイアログ ボックスが表示されます。
[ グループ化 ] ボックスの一覧で [SalesDate] を選択し、[OK] をクリックします。
サブカテゴリ列グループの左側に新しい列グループが追加されます。
[SalesDate],を含む新しい列グループのセルを右クリックし、[式] をクリックします。次の式を式ボックスにコピーします。
=WeekdayName(DatePart("w",Fields!SalesDate.Value))この式により、販売日から曜日が抽出されます。 詳細については、「式 (レポート ビルダーおよび SSRS)」を参照してください。
Total を含む Subcategory 列グループ内のセルを右クリックし、[ コピー] をクリックします。
手順 5 で作成した式を含むセルのすぐ下にあるセルを右クリックし、[ 貼り付け] をクリックします。
Ctrl</localizedText> キーを押します。
[サブカテゴリ] グループで、[Sales] 列ヘッダーとその下にある 3 つのセルをクリックし、右クリックして [ コピー] をクリックします。
この 4 つのセルを新しい列グループの 4 つの空のセルに貼り付けます。
[実行] をクリックして、レポートをプレビューします。
レポートには、月曜日と火曜日という名前の列が表示されます。 データセットには、この 2 つの曜日のデータのみが含まれています。
注
他の曜日のデータが含まれている場合は、レポートにそれらの曜日の列も表示されます。 各列には、担当地域別の列ヘッダー、 Sales、および売上合計があります。
5. 列の幅を変更する
マトリックスを含むレポートは、通常、実行時に水平方向と垂直方向に展開されます。 水平展開の制御は、印刷されたレポートに使用される Microsoft Word や Adobe PDF などの形式にレポートをエクスポートする場合に特に重要です。 レポートが複数のページにまたがって水平方向に拡張される場合、印刷レポートは理解しにくくなります。 水平方向の拡張を最小限に抑えるには、列のサイズを変更して、折り返しをしないでデータを表示できるだけの幅にします。 また、列の名前を変更して、タイトルがデータの表示に必要な幅に収まるようにすることもできます。
列の名前とサイズを変更するには
[ デザイン ] をクリックしてデザイン ビューに戻ります。
左側の最も遠い Quantity 列のテキストを選択し、「 QTY」と入力します。
列のタイトルが、QTY になります。
Quantity という名前の他の列に対して手順 2 を繰り返します。 そのうちの 2 つがあります。
行列の上と横に列ハンドルと行ハンドルが表示されるように、マトリックスをクリックします。
テーブルの上と横のグレーのバーは、列および行ハンドルです。
最も遠い QTY 列のサイズを左に変更するには、カーソルが二重矢印に変わるように、列ハンドル間の線をポイントします。 幅が 1/2 インチになるまで、列を左にドラッグします。
1/2 インチの列幅は、数量を表示するのに十分です。
その他の QTY 列についても、手順 5. を実行します。
[実行] をクリックして、レポートをプレビューします。
数量を含むレポートの列に QTY という名前が付けられ、列の幅が狭くなりました。
6. マトリックス セルの結合
コーナー領域は、マトリックスの左上隅にあります。 マトリックス内の行グループと列グループの数に応じて、コーナー領域にセル数は変わります。 このチュートリアルで作成するマトリックスには、コーナー領域に 4 つのセルがあります。 これらのセルは、行グループと列グループの階層の深さに対応して、2 行 2 列で表示されています。 このレポートでは 4 つのセルは使用されず、1 つに結合されます。
マトリックス セルを結合するには
[ デザイン ] をクリックしてデザイン ビューに戻ります。
行列の上と横に列ハンドルと行ハンドルが表示されるように、マトリックスをクリックします。
Ctrl キーを押し、4 つのコーナー セルを選択します。
セルを右クリックし、[セルの 結合] をクリックします。
コーナー セルを右クリックし、[ テキスト ボックスのプロパティ] をクリックします。
[ 塗りつぶし ] タブをクリックします。
(fx)ボタンをクリックして塗りつぶしの色を設定します。
次の式をコピーして式ボックスに貼り付けます。
#96a4b2これは、スレート スタイルで使用される灰色の青の色の RGB 16 進値です。
OK をクリックします。
[実行] をクリックして、レポートをプレビューします。
上隅のマトリックスは単一のセルであり、行グループおよび列グループのセルと同じ色を持っています。
7. レポート ヘッダーとレポート タイトルを追加する
レポート タイトルは、レポートの最上部に表示されます。 レポート タイトルは、レポート ヘッダーに配置することも、レポートが使用しない場合は、レポート本文の上部にあるテキスト ボックスに配置することもできます。 このチュートリアルでは、レポートの上部にあるテキスト ボックスを削除し、ヘッダーにタイトルを追加します。
レポート ヘッダーとレポート タイトルを追加するには
[ デザイン ] をクリックしてデザイン ビューに戻ります。
[ クリックしてタイトルを追加する] を含むレポート本文の上部にあるテキスト ボックスをクリックし、Delete キーを押します。
リボンの [ 挿入 ] タブで、[ ヘッダー ] をクリックし、[ ヘッダーの追加] をクリックします。
ヘッダーがレポート本文の先頭に追加されます。
[ 挿入 ] タブで、[ テキスト ボックス] をクリックし、レポート ヘッダー内のテキスト ボックスをドラッグします。 テキスト ボックスのサイズをおおよそ横 6 インチ、縦 3/4 インチにして、レポート ヘッダーの左側に配置します。
テキスト ボックスに、「 Sales by Territory、Subcategory、Day」と入力します。
入力したテキストを選択して右クリックし、[ テキストのプロパティ] をクリックします。
注
文字を同時に書式設定するには、連続している必要があります。
[ テキストのプロパティ ] ダイアログ ボックスで、[ フォント] をクリックします。
[フォント] ボックスの一覧で [Times New Roman] を選択します。[サイズ] で [24 pt] を選択し、[色] で [マルーン] を選択し、[スタイル] で [斜体] を選択します。
OK をクリックします。
[実行] をクリックして、レポートをプレビューします。
レポートのレポート ヘッダーにレポート タイトルが表示されます。
8. レポートを保存する
レポートは、レポート サーバー、SharePoint ライブラリ、またはコンピューターに保存することができます。
このチュートリアルでは、レポートをレポート サーバーに保存します。 レポート サーバーにアクセスできない場合は、レポートをコンピューターに保存します。
レポート サーバーにレポートを保存するには
[レポート ビルダー] ボタンで、[名前を付けて保存] をクリックします。
[ 最近使用したサイトとサーバー] をクリックします。
レポートを保存する権限があるレポート サーバーの名前を選択または入力します。
"レポート サーバーに接続しています" というメッセージが表示されます。 接続が完了すると、レポート サーバー管理者が既定のレポートの場所として指定したレポート フォルダーの内容が表示されます。
[名前] に表示されている既定の名前を「 SalesByTerritorySubcategory」に変更します。
[保存] をクリックします。
レポートがレポート サーバーに保存されます。 接続するレポート サーバーの名前が、ウィンドウの下部にあるステータス バーに表示されます。
コンピューターにレポートを保存するには
[レポート ビルダー] ボタンで、[名前を付けて保存] をクリックします。
[ デスクトップ]、[ マイ ドキュメント]、または [マイ コンピューター] をクリックし、レポートを保存するフォルダーを参照します。
[名前] に表示されている既定の名前を「 SalesByTerritorySubcategory」に変更します。
[保存] をクリックします。
9. (省略可能) テキスト ボックスを 270 度回転する
マトリックスを含むレポートは、実行すると、水平方向と垂直方向に拡張されます。 テキストボックスを垂直方向に、つまり 270 度回転させると、水平方向のスペースを節約できます。 表示されるレポートは狭くなり、Microsoft Word などの形式にエクスポートされた場合、印刷ページに収まる可能性が高くなります。
テキスト ボックスでも、テキストを水平方向または垂直方向 (上から下) に表示できます。 詳細については、「 テキスト ボックス (レポート ビルダーおよび SSRS)」を参照してください。
テキスト ボックスを 270 度回転するには
[ デザイン ] をクリックしてデザイン ビューに戻ります。
を含むセルをクリックします。
[Territory].[プロパティ] ウィンドウで WritingMode プロパティを見つけ、ドロップダウン リストで [Rotate270] を選択します。
[プロパティ] ウィンドウが開かない場合は、リボンの [ 表示 ] タブをクリックし、[ プロパティ] を選択します。
CanGrow プロパティが
Trueに設定されていることを確認します。Territory 列の幅を 1/2 インチに変更し、列のタイトルを削除します。
[実行] をクリックして、レポートをプレビューします。
販売区域名が垂直方向 (上から下) に表示されます。 Territory 行グループの高さは、販売区域名の長さによって変わります。
次のステップ
これで、マトリックス レポートを作成する方法に関するチュートリアルは終了です。 マトリックスの詳細については、「テーブル、マトリックス、およびリスト (レポート ビルダーおよび SSRS)、マトリックス (レポート ビルダーおよび SSRS)、Tablix データ領域領域 (レポート ビルダーおよび SSRS)、Tablix データ領域のセル、行、および列 (レポート ビルダー) および SSRS」を参照してください。