メインコンテンツへスキップ

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

Excelでピボットテーブルのフィルターを特定のセルにリンクするにはどうすればよいですか?

Author Siluvia Last modified

Excelでは、ピボットテーブルのフィルターが特定のセルの値を反映するようなインタラクティブなレポートを作成することがよくあります。これにより、ユーザーは1か所でフィルター値を選択または入力でき、その入力に基づいてピボットテーブルが動的に更新されます。この方法は、ダッシュボードやデータ探索用のカスタムフィルタインターフェースを設計する際に特に便利です。

この記事では、VBAベースのアプローチや他の組み込みExcelメソッドなど、いくつかの実用的な解決策を提供し、ピボットテーブルのフィルターをセルの値にリンクしたり、同様の動的レポート効果を達成するのに役立ちます。


VBAコードを使用してピボットテーブルのフィルターを特定のセルにリンクする

セルとピボットテーブルフィルター間の最も直接的なリンクが必要な場合、つまりセルの値を変更するとピボットテーブルフィルターが自動的に更新されるようにするには、VBAがこれを実現するための実用的な方法を提供します。このアプローチは、ユーザーが単一のセルからデータスライスを迅速に制御したいインタラクティブなダッシュボードやレポートに適しています。

このテクニックが機能するためには、ピボットテーブルにフィルターフィールドが含まれている必要があります。フィルターフィールドの名前は、VBAコードを正しく設定するために重要です。

次の例を考えてみましょう。ピボットテーブルには「カテゴリ」という名前のフィルターフィールドがあり、「経費」と「売上」の2つのフィルター値があります。セルをピボットテーブルフィルターにリンクすることで、選択したセルに「経費」または「売上」を入力することにより、表示されるデータを制御できます。

link Pivot Table filter to a certain cell

これを実装するには:

  • フィルターコントローラーとして使用するセル(例:セルH6)を選択し、事前にフィルター値のいずれかを入力します。値がピボットテーブルフィルターフィールドで利用可能な値と完全に一致していることを確認してください。
  • ピボットテーブルが含まれるワークシートに移動します。シートタブを右クリックし、メニューから「コードの表示」を選択します。これにより、Visual Basic for Applicationsウィンドウが開きます。

Right click the sheet tab and select View Code

Microsoft Visual Basic for Applicationsウィンドウで、次のVBAコードをコードペインに貼り付けます。

VBAコード: ピボットテーブルフィルターを特定のセルにリンクする

Private Sub Worksheet_Change(ByVal Target As Range)
'Update by Extendoffice 20180702
    Dim xPTable As PivotTable
    Dim xPFile As PivotField
    Dim xStr As String
    On Error Resume Next
    If Intersect(Target, Range("H6")) Is Nothing Then Exit Sub
    Application.ScreenUpdating = False
    Set xPTable = Worksheets("Sheet1").PivotTables("PivotTable2")
    Set xPFile = xPTable.PivotFields("Category")
    xStr = Target.Text
    xPFile.ClearAllFilters
    xPFile.CurrentPage = xStr
    Application.ScreenUpdating = True
End Sub

注意:

1) Sheet1はシート名です。必要に応じて変更してください。
2) PivotTable2はピボットテーブルの名前です。実際のテーブルに合わせて調整してください。
3) 「カテゴリ」はフィルタリングされるフィールドです。スペルがテーブルフィールドと一致していることを確認してください。
4) H6はフィルターにリンクされた参照セルです。必要に応じてセルアドレスを変更できます。セルには常にデータセット内に存在する有効なフィルター値が含まれていることを確認してください。

コードを貼り付けた後、Alt + Qを押してVBAエディタウィンドウを閉じ、Excelに戻ります。

これで、ピボットテーブルのフィルター状態がセルH6の内容によって制御されます。セルH6の値を(「売上」や「経費」に)変更するだけで、ピボットテーブルの表示が即座に更新されます。問題が発生した場合は、参照セルの値がピボットテーブルのフィルター値と完全に一致していることと、コード内の名前が正しく割り当てられていることを再確認してください。

Refresh the cell, then corresponding data are filtered out based on the existing value

セルの内容を変更するたびに、ピボットテーブルはそれに応じてフィルターされたデータを更新します。

When changing the cell value, the filtered data in the Pivot Table will be changed automatically.

ヒントとトラブルシューティング:セル内のフィルターフィールドの値が利用可能な項目と正確に一致しない場合(大文字小文字やスペースを含む)、コードが期待通りにフィルターを適用しないことがあります。VBAコード内のフィールド名とテーブル名が正しいスペルであることを常に確認してください。この設定を複数のピボットテーブルで使用したい場合は、さらなるコードの適応またはループを使用して拡張することができます。

a screenshot of kutools for excel ai

Kutools AIでExcelの魔法を解き放つ

  • スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
  • カスタム数式: ワークフローを合理化するための独自の数式を生成します。
  • VBAコーディング: 簡単にVBAコードを作成し実装します。
  • 数式の解釈: 複雑な数式を簡単に理解できます。
  • テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
AI搭載ツールでExcelの機能を強化しましょう。今すぐダウンロードして、かつてないほどの効率を体験してください!

Excelの数式 - スライサーやレポートフィルターの参照と組み合わせて数式(例:GETPIVOTDATA)を使用する

Excelにはピボットテーブルのフィルターを直接セルにバインドする純粋なネイティブ数式方法はありませんが、スライサーやレポートフィルターと組み合わせてGETPIVOTDATAのような数式を使用することで、動的なレポートを作成し、関連する値を表示することができます。この解決策は、フィルター選択や別のセルの入力に基づいて要約値が瞬時に更新されるダッシュボードを作成する場合に便利で、データ分析をよりインタラクティブにします。

適用可能なシナリオには、動的なレポートパネル、ダッシュボード、または比較要約が含まれます。ここで、表示される結果がスライサーの選択に従うか、セルの内容に関連するデータを反映することを望みます。主な利点は、この方法が更新された要約データの表示に適していることです。ただし、ピボットテーブルの実際のフィルター状態は、セルの数式だけではプログラム的に設定できません。

例: セル値に基づいたピボットテーブルの要約の表示

カテゴリ」(例:「売上」「経費」)別に売上を要約するピボットテーブルがあるとします。GETPIVOTDATAを使用して、セルで指定されたカテゴリに関連する値を抽出できます。

1. 仮にセルH6に表示したいカテゴリ(例:「売上」)が含まれているとします。以下の数式を要約セル(例:I6)に入力します。

=GETPIVOTDATA("Sum of Amount",$B$4,"Category",H6)

2. I6に数式を入力したら、Enterキーを押します。これで、H6を有効なカテゴリ(例:「経費」や「売上」)に変更するたびに、I6は現在のピボットテーブルに基づいてそのカテゴリの合計を即座に更新します。

注意:
  • 最初の引数「金額の合計」は、ピボットテーブルの値フィールドの実際の名前(例:「総売上」や値が使用しているラベル)に置き換える必要があります。同様に、$B$4はピボットテーブル内の任意の特定セルへの参照に置き換える必要があります。Excelはこの参照を自動的に認識し、GETPIVOTDATA関数が正しく動作するように関連付けます。
  • 正確なGETPIVOTDATA構文を取得するには、ピボットテーブルのセルをクリックして値を参照してみてください。Excelは正しい構文を自動生成します。正確な結果を得るには、H6がテーブル内で利用可能なカテゴリのいずれかと一致していることを確認してください。

ヒント:この方法はピボットテーブル自体のフィルターを変更しませんが、目的のセルの入力にリンクされた動的な表示を効果的に提供し、あたかもフィルターされたかのように結果データを表示します。この方法を使用して、チャート、要約表、またはダッシュボードに電力を供給することもできます。

トラブルシューティング:数式が#REF!#VALUE!エラーを返す場合は、セル参照が正しいこと、入力したカテゴリがピボットテーブルに存在すること、およびフィールド/合計名が正確に一致していることを確認してください。


その他の組み込みExcelメソッド - ピボットテーブルスライサーとダッシュボードを接続してインタラクティブなフィルタリングを実現

Excelのスライサーとレポートフィルターツールは、VBAコードを書くことなくユーザーフレンドリーで組み込みのインタラクティブフィルタリングオプションを提供します。これらの方法を使用して、複数のピボットテーブルや表示を1つ以上のスライサーに接続し、ダッシュボードのような効果を達成することができます。

一般的なアプローチの1つは、ピボットテーブルフィールド(例:「カテゴリ」)にリンクされたスライサーを挿入することです。ユーザーは単にスライサー内の目的の項目をクリックし、ピボットテーブルがそれに応じて更新されます。同じデータソースに基づいて複数のピボットテーブルがある場合、すべてのテーブルに対して1つのスライサーを同期フィルタリングに接続できるため、レポートインターフェースがより直感的かつ一貫したものになります。

スライサーを作成してリンクするには:

  • ピボットテーブルをクリックし、PivotTableツールの「分析」(またはExcelのバージョンによっては「オプション」タブ)>「スライサーの挿入」に移動します。
  • 目的のフィールド(例:カテゴリ)を選択し、OKをクリックします。スライサーがシート上に表示され、ユーザーは視覚的にフィルタリングできます。
  • 1つのスライサーを複数のピボットテーブルにリンクするには、スライサーを右クリックし、 レポート接続 (または ピボットテーブル接続)を選択し、同期させたいすべてのピボットテーブルにチェックを入れます。
    これは、さまざまなビジュアル化がユーザーのフィルターに対応して一緒に反応するダッシュボードシナリオで特に強力です。

利点:ほとんどのインタラクティブフィルタリングニーズに非常に使いやすく、マクロやカスタムコードは不要です。シンプルさと信頼性が重要なダッシュボードや共有レポートに最適です。制限は、セルからフィルターへの完全な自動化(セルからフィルターへのバインド)がネイティブにはサポートされていないことです。直接的な値からフィルターへの割り当てにはVBAや外部ツールが必要です。

トラブルシューティング:スライサーが複数のピボットテーブルに接続しない場合は、すべてのテーブルが同じキャッシュ/データソースから作成されていることを確認してください。「レポート接続」オプションは、テーブルが互換性がある場合にのみ表示されます。

まとめ:ピボットテーブルフィルターをセル値にリンクするか、インタラクティブなダッシュボードを構築するための最適な方法を選ぶ際は、必要な自動化のレベル、Excelのバージョンの制限、そして環境でVBA/マクロが許可されているかどうかを考慮してください。基本的なニーズには、スライサーや数式(GETPIVOTDATA)が迅速で堅牢な結果を提供します。高度な自動化には、VBAソリューションがより大きな制御を提供します。正確な結果を得るために、フィールド名とフィルター項目が一貫して使用されていることを常に確認してください。エラーが発生した場合は、セルの入力値を確認し、コード、数式、データセット間で名前が正確に一致していることを確認してください。


関連記事:

最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...


Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に

  • Word、Excel、PowerPointでタブによる編集・閲覧を実現
  • 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
  • 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得