ピボットテーブル及びKPIに文字列を表示したい

ピボットテーブル、KPIに文字列を表示するにはどうしたらよいでしょうか?
添付資料を参照ください。

@kobayashi
ご質問いただきありがとうございます。

下記の3案のうち、最適なものをご選択いただければと思います。


前提(公式仕様の確認)

Amazon QuickSight の KPI ビジュアルは「値(Value)」フィールドウェルにメジャー(数値集計)のみを受け付けます。ディメンション(文字列)を配置した場合は自動的に Count 集計が適用され、文字列そのものは表示されません。

参照: Using KPIs - Amazon Quick
参照: KPI to populate strings - QuickSight Community

以下に、KPI 風の文字列表示を実現する 3 つの方法 を推奨順に説明します。


方法比較まとめ(推奨順)

方法 動的更新 難易度 見た目の再現性 推奨理由
フリーフォーム + テーブル(1行1列) ★☆☆ 設定が最もシンプル。計算フィールド不要、フィルター連動で動的更新、文字列をそのまま表示可能
Insight カスタムナラティブ ★★☆ フィールド値を動的に参照でき柔軟性が高い。ナラティブ式エディターの習熟が必要
テキストボックス + パラメーター ★☆☆ 見た目の自由度は高いが、パラメーター値は静的テキストのためフィルター連動の動的更新に追加工夫が必要

方法①:フリーフォームレイアウト + テーブルビジュアル(1行1列)

テーブルビジュアルを 1 セルだけ表示する形で KPI 風に見せる方法です。設定がシンプルで確実に動作します。

再現手順

# 操作
1 分析(Analysis)を開き、対象シートのレイアウトをフリーフォームに変更する。
メニュー: Format → Layout → Free-form
参照: Types of layout
2 パラメーターを作成する。
① 左ペイン「Parameters」→「+ Create one」
② 名前: pYearMonth、データ型: String、デフォルト値: 202601
3 パラメーター用コントロールを追加する。
① 作成したパラメーター横の「▼」→「Add control」
② スタイル: ドロップダウン(値リストを年月のリストで設定)
③ ユーザーがここで年月を切り替える
4 フィルターを作成する。
① 左ペイン「Filters」→「+」→「年月」フィールドを選択
② フィルタータイプ: Custom filter → 条件: Equal to → 値: パラメーター pYearMonth を選択
③ スコープ: All visuals of this sheet(デフォルト)
5 テーブルビジュアルを追加する。
① ツールバー「+ Add」→「Add visual」
② Visual types ペインから 「Table」 を選択(Pivot table ではなく通常の Table)
6 テーブルのフィールド設定をする。
Value フィールドウェルにのみ レーティング をドラッグ&ドロップ
Group by は空のままにする
③ Value にディメンション(文字列)のみを配置すると、非集計ビュー(Unaggregated view)となり、文字列がそのまま表示される
参照: Using tables as visuals — “To create a nonaggregated view of the data, add fields only to the Value field well.”
7 ビジュアル固有フィルターを設定する。
① テーブルビジュアルを選択した状態で、左ペイン「Filters」→「+」→「組織」フィールド
② フィルタータイプ: Filter list1課 のみチェック
③ フィルターのスコープを変更: フィルター名横の「…」メニュー → 「Apply to」→「Only this visual」 を選択
8 テーブルのヘッダーを目立たなくする。
① ビジュアル右上のフォーマットアイコン(筆マーク)をクリック → Properties ペインが開く
「Headers」 セクションを開く
③ Row height: 8(最小値・単位: px)に設定
④ TEXT セクション → Font size: 8(最小)に設定
⑤ TEXT セクション → Text styling の色: 白色(背景と同色)に設定
⑥ Background: 白色に設定
⑦ Borders: 「なし(No borders)」アイコンを選択
※ テーブルのヘッダーを完全に非表示にするトグルは現時点で存在しないため、上記設定で実質的に見えなくする
参照: Headers
9 テーブルのセル(ボディ)を大きく表示する。
① Properties ペイン → 「Cells」 セクションを開く
② Row height: 80〜120(カードの高さに合わせて調整・単位: px)
③ TEXT セクション → Font size: 28〜36pt に設定
④ TEXT セクション → 水平アラインメント: Center alignment アイコンを選択
⑤ TEXT セクション → 垂直アラインメント: Middle alignment アイコンを選択
参照: Cell formatting
10 テーブルビジュアルのタイトルを「1課」に変更する。
① ビジュアル上部のタイトルテキストをダブルクリック
1課 と入力
③ タイトルのフォントサイズ: 12pt 程度
11 ビジュアルをリサイズし、カード型に整形する。
ビジュアルの枠をドラッグして幅 200〜250px、高さ 150〜180px 程度に調整。
12 同様の手順(手順5〜11)を「2課」「3課」用にも繰り返す
各テーブルのビジュアル固有フィルター(手順7)で対応する組織名を指定する。
13 3つのテーブルを横に並べて配置し完成。
パラメーターコントロールで年月を切り替えると、各カードのレイティングが動的に更新される。

注意事項

  • 年月×組織でデータが1レコードになるよう、フィルターが正しく設定されていることを確認してください。複数レコードが返される場合、テーブルに複数行が表示されます。
  • テーブルビジュアルのヘッダーを完全に非表示にする専用トグルは現時点で提供されていません。上記手順8の方法(最小サイズ+テキスト色・背景色を白に統一+ボーダーなし)で実質的に非表示にします。
  • Value フィールドウェルに文字列ディメンションのみを配置し、Group by を空にすることで非集計ビューとなり、文字列がそのまま表示されます。

参考URL


方法②:Insight ビジュアル(カスタムナラティブ)

Insight(オートナラティブ)ビジュアルを使えば、データセットのフィールド値を動的テキストとして表示できます。

再現手順

# 操作
1 分析(Analysis)を開き、対象シートのレイアウトをフリーフォームに変更する。
メニュー: Format → Layout → Free-form
2 パラメーター年月フィルターを方法①の手順 2〜4 と同様に作成する。
3 Insight ビジュアルを追加する。
① ツールバーの 「+ Add」→「Add insight」 をクリック
② テンプレート選択画面が表示される
テンプレートを選択せずに画面を閉じる(×ボタンまたは画面外をクリック)
④ 空の Insight コンテナがシートに追加される(「Customize insight」ボタンが表示される場合もある)
参照: Adding custom insights to your analysis — “Exit this screen and customize the insight manually.”
4 Insight のフィールドウェルに配置する。
Categories フィールドウェル: レーティング をドラッグ&ドロップ
Values フィールドウェル: スコア(メジャー)をドラッグ&ドロップ
※ Top ranked computation には少なくとも Categories に1つのディメンションが必要
5 ビジュアル固有フィルターを設定する。
① Insight ビジュアルを選択した状態で「Filters」→「+」→「組織」フィールド
② Filter list → 1課 のみチェック
③ スコープ: フィルター名横の「…」→ 「Apply to」→「Only this visual」
6 カスタムナラティブを編集する。
① Insight ビジュアル内の 「Customize insight」ボタンをクリック(または右上メニュー(▼)→「Customize narrative」を選択)
② ナラティブ式エディターが開く
7 Computation を追加する。
① エディター右側の「Computations」パネル下部 → 「Add computation」 をクリック
② 一覧から 「Top ranked」 を選択し 「Next」 をクリック
③ Number of results: 1 に設定
「Add」 をクリック
⑤ Computations パネルに「TopRanked」が追加される
8 ナラティブの式を記述する。
① エディター本文(左側)のデフォルトテンプレートをすべて削除
② 右側「Computations」→「TopRanked」を展開
items[0]categoryFieldformattedValue1回だけクリックして挿入
④ エディター本文に TopRanked.items[0].categoryField.formattedValue が挿入される
⑤ これにより「レーティング」フィールドの値(例: B, BBB, A)が動的に表示される
※ 2回クリックすると同じ式が重複挿入されるため注意
9 フォーマットを調整する。
① エディター本文に挿入された式テキストを全選択
② エディター上部のツールバーでフォントサイズを 28〜36pt に設定
③ 太字に設定(任意)
「Save」 をクリック
10 Insight ビジュアルのタイトルを「1課」に変更する。
① ビジュアル上部のタイトルをダブルクリック
1課 と入力
11 ビジュアルをリサイズし、KPI カード風の外観に整える。
幅 200〜250px、高さ 150〜180px 程度に調整。
12 同様の手順(手順3〜11)を「2課」「3課」用にも繰り返す
各 Insight のビジュアル固有フィルター(手順5)で対応する組織名を指定する。

補足: Top ranked computation の出力パラメーター

公式ドキュメント(Top ranked computation)によると、出力は以下のとおりです:

  • categoryField.name — カテゴリフィールドの表示名
  • metricField.name — メトリクスフィールドの表示名
  • metricField.aggregationFunction — メトリクスの集計関数(SUM、AVG 等)
  • itemsCount — 返されるアイテム数
  • items[n].categoryField.value — カテゴリフィールドの値
  • items[n].categoryField.formattedValue — カテゴリフィールドのフォーマット済み値(NULL の場合 ‘NULL’、空の場合 ‘(empty)’ と表示)
  • items[n].metricValue.value — メトリクスの生値
  • items[n].metricValue.formattedValue — メトリクスのフォーマット済み値
  • items[n].metricValue.formattedAbsoluteValue — メトリクスの絶対値フォーマット済み

1組織×1年月でデータが1レコードなら、items[0].categoryField.formattedValue はそのレイティング文字列そのものになります。

注意事項

  • items[] の添え字にはリテラル値のみ使用可能です。itemsCount - 1 のような計算式は使用できません(QuickSight Community 確認済み)。
  • Insight ビジュアルにはビジュアル固有フィルターを適用できるため、組織ごとに個別の Insight を作成してフィルターで表示データを切り替えます。

参考URL


方法③:フリーフォームレイアウト + テキストボックス + パラメーター

パラメーターの動的テキスト挿入機能を使い、KPI 風のカードを作成します。

再現手順

# 操作
1 分析(Analysis)を開き、対象シートのレイアウトをフリーフォームに変更する。
メニュー: Format → Layout → Free-form
2 パラメーターを作成する。
① 左ペイン「Parameters」→「+ Create one」
② 名前: pYearMonth、データ型: String、デフォルト値: 202601
3 パラメーター用コントロールを追加する。
① 作成したパラメーター横の「▼」→「Add control」
② スタイル: ドロップダウン(値リストを年月のリストで設定)
③ ユーザーがここで年月を切り替える
4 フィルターを作成する。
① 左ペイン「Filters」→「+」→「年月」フィールドを選択
② フィルタータイプ: Custom filter → 条件: Equal to → 値: パラメーター pYearMonth を選択
③ スコープ: All visuals of this sheet
5 テキストボックスを追加する。
① ツールバーの 「+ Add」→「Add text box」 をクリック
② テキストボックスが空の状態でシートに配置される
6 テキストボックスにパラメーターの動的値を挿入する。
① テキストボックス内をクリックし編集モードに入る
② ツールバーの パラメーターアイコン(<> マーク) をクリック
③ 一覧から pYearMonth パラメーターを選択して挿入
④ テキストボックス内にパラメーター値のプレースホルダーが表示される
7 テキストボックスを KPI カード風にスタイリングする。
① パラメーター値テキストを選択し、フォントサイズを 36pt 以上に設定
② テキスト配置を中央揃え
③ テキストボックスの書式設定で背景色: 白、ボーダー: 有効(色: ダークブルーなど)
④ ボックスをリサイズしてカード型に整形
8 「1課」「2課」「3課」のラベル用テキストボックスを別途作成し、各カードの上部に配置する。
フォントサイズ 12pt 程度、テキスト: 各組織名。
9 必要に応じてカードを横に並べて配置し完成。

制限事項

  • テキストボックスで参照できるのはパラメーター値およびシステムパラメーター(日付 AWS:printTime、ページ番号 AWS:pageNumber 等)のみ。データセットのフィールド値を直接表示することはできない。
  • この方法で表示されるのはパラメーター(コントロール)に設定した固定値であり、データから動的に取得した「レーティング」フィールドの値ではない。そのため、年月を切り替えてもレイティング値が自動更新されない
  • データセットのフィールド値を動的に表示する必要がある場合は、方法①または方法②を使用すること。

参考URL


参考URL一覧

回答ありがとうございます。上記パターンで試してみます。

@kobayashi その後いかがでしょうか? oyachiya さんの返答で解決しておりますでしょうか?もし解決しているようでしたら、返答の下にあるチェックボックスをクリックし、Solutionを選択いただけると助かります