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

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

Excelで複数の色でデータをフィルタするにはどうすればよいですか?

Author Xiaoyang Last modified

通常のExcel使用では、セルの色に基づいてフィルタを適用するのは、単一の色を扱う場合であれば簡単です。しかし、複数の特定の色が同時に含まれる行をフィルタする必要がある場合はどうすればよいでしょうか?例えば、いくつかのカテゴリが異なる塗りつぶし色で強調表示されたデータリストがあり、選択した2色以上を含む行のみを表示したいとします。このシナリオは、組み込みのフィルタが一度に1つの色しか選択できないため、Excelの標準的なフィルタ機能では直接処理できません。この記事では、この問題を解決するための効率的な方法を紹介し、それぞれの実用的な価値や、ある方法を他の方法よりも好む状況についても説明します。

以下に、元々提示されたVBAコードのソリューションに加え、最高の結果を得るための追加のヒントや注意点を示します。さらに、利便性のために、ヘルパーカラムを使用する方法と「Kutools for Excel」アドインを使用する2つの代替方法へのリンクも提供されています:

VBAコードで複数の色でデータをフィルタリング

Excelで手動でデータを複数の色で分類しフィルタリング


arrow blue right bubble VBAコードで複数の色でデータをフィルタリング

現在、Excelには複数のセル背景色に基づいて行をフィルタリングするネイティブな方法はありません。複数の特定の色に一致する行のみを表示する必要がある場合、カスタマイズされたVBAソリューションを利用できます。以下のアプローチでは、ユーザー定義関数を使用して隣接するヘルパーカラムにカラーコード番号を抽出する方法を示しています。このように色を識別した後、Excelの組み込みフィルタツールを使用して必要なフィルタを適用できます。この方法は小規模から中程度のデータセットに最適であり、特にマクロの使用に慣れている場合に役立ちます。

1. ALT + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。将来再利用するためにコードをワークブックに保存したい場合は、ファイルをマクロ有効ワークブック(.xlsm)またはマクロをサポートする別の形式で保存してください。通常のExcelファイル(.xlsx)にはVBAコードを保存できません。

2. 「挿入」>「モジュール」をクリックし、次のコードを開いているモジュールウィンドウに貼り付けます。

VBAコード:カラーコード番号の抽出:

Function GetColor(x As Range) As Integer
GetColor = x.Interior.ColorIndex
End Function

続ける前に、作業内容を保存したことを確認してください。VBAを使用するとセキュリティ警告が表示される場合がありますので、プロンプトが出た場合はマクロを有効にしてください。

3. ワークシートに戻ります。データの横にある空白セルを選択し(例えば、カラーセルがA列にあり、最初のデータ行が2行目の場合、B2を使用)、次のように数式を入力します:=Getcolor(A2)。ここで、A2は分析対象の最初のカラーセルを指します。この関数により、カラーコード番号がヘルパーカラムに返されます。スクリーンショットをご覧ください:

apply a formula to get the color index

4. 塗りつぶしハンドルを使用して、この数式をデータ範囲全体にコピーします。これで各列にその行のカラーコード番号が表示されます。テーブルが大きい場合は、塗りつぶしハンドルをダブルクリックして列を自動的にデータに合わせて埋めることができます。すべての行にカラーコード番号が表示されます(下図参照):

drag the formula to other cells

ヒント:セルに背景色がない場合、この関数は-4142を返します。これは色なしの行を除外したい場合の参考になります。

5. これで各行に関連するカラーコード番号が設定できたので、目的の色を持つ行だけを表示するようにデータをフィルタできます。そのためには、ヘルパーカラムを選択し、「データ」タブに移動して「フィルタ」をクリックし、その後ヘルパーカラムの上部にある矢印をクリックします。フィルタのドロップダウンリストで、表示したい色に対応するカラーコード番号のチェックボックスをオンにします(下図参照):

click Data > Filter, select the color index number that to filter

6. 「OK」をクリックしてフィルタを適用します。これで、選択した背景色を持つ行のみがデータ範囲に表示されます。さらに分析したり結果をコピーしたい場合は、フィルタリングされた行を選択できます。スクリーンショットをご覧ください:

the selected colors are filtered out

7. 最後に、ヘルパーカラムが不要になった場合は、それを非表示または削除できます。ただし、フィルタリング後にカラムを削除すると、再度フィルタをかけようとした際に色の参照が失われることに注意してください。完全に分析が終わっていない場合は、非表示にするのがベストです。

数式入力後に「#NAME?」エラーが表示される場合、VBAコードが正しく挿入されていないか、マクロが有効になっていない可能性があります。VBAモジュールとマクロのセキュリティ設定をもう一度確認してください。

このソリューションの利点の1つは、Excelのネイティブフィルタコントロールを使用して、色ベースのフィルタリングをテキストや値のフィルタなど他の種類の条件と組み合わせられることです。ただし、新しいテーマを適用したり、他のソースからデータをコピーしたりすると、セルのカラーコードが変更される可能性があり、その場合はVBA関数を更新または再適用する必要があります。


Excelで手動でデータを複数の色で分類してフィルタリング

VBAを使用することが、ワークブックのセキュリティポリシーやユーザーの好みにより適さない場合、実用的な回避策としては、ヘルパーカラムに手動で色のカテゴリをコーディングし、そのカテゴリに基づいてフィルタリングを行う方法があります。このソリューションは、異なる色の数が管理可能で、色コードの調整が頻繁に行われない場合に適しています。

データの隣にヘルパーカラム(例:「色カテゴリ」)を作成し、各行に塗りつぶし色(例:「赤」「緑」「黄色」)に基づいて手動でラベルを割り当てることができます。その後、フィルタ機能を使用して、表示したいカテゴリのみを表示します。

ステップ:ヘルパーカラムに、色に基づいたシンプルなテキスト識別子を入力します(例:青い塗りつぶしの行には「青」、塗りつぶしがない行には「なし」)。完了したら、ヘルパーカラムを選択し、「データ」>「フィルタ」を使用して、表示したい色付き行の任意の組み合わせを選択します。

この方法は自動化の度合いが低いものの、データセットが小さい場合や、色の定義が頻繁に変わる場合に柔軟性が高まります。データが動的に変化している場合や、異なるユーザーによって使用されている場合、手動でのメンテナンスは効率が落ちることがあります。

大規模なデータセットや頻繁な更新が必要な場合は、以下の方法で紹介するVBAによる自動化や、専門的なExcelアドインの使用を検討してください。


a screenshot of kutools for excel ai

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

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

関連記事:

Excelでカンマ区切りのデータをフィルタするにはどうすればよいですか?

Excelで正確なテキストをフィルタするにはどうすればよいですか?

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

🤖 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日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得