• 公開日:

エクセルで色フィルターを複数かける方法

この記事では、エクセルで色フィルターを複数かける方法をご紹介します。

セルに色を付けると、重要なデータを見分ける時などに便利な目印となります。

以下では、データを並べ替えて抽出する方法やユーザー定義関数を用いてフィルターでの抽出を行う方法をご紹介しています。

エクセルで色フィルターを複数かけることはできる?

色フィルターとは、セルの塗りつぶしの色などをフィルターにしてデータを絞り込む機能を指します。

ただし、色フィルターで抽出できるのは一色までなので複数の色で絞り込むことはできません。

試しに、以下で複数の色が含まれる列で色フィルターをかけてみます。

色のついた表のフィルターを開く

上記の画像では、名前の列に黄色と青色の塗りつぶしが含まれています。

A1セル右下のフィルターボタンを押します。

色フィルターをかける

色フィルター、②黄色の順に選択します。

色フィルターが適用された

色フィルターで条件を選択すると、自動的にフィルターメニューが閉じられ、黄色のセルのみが抽出されました。

このように、色フィルターで複数の色を抽出しようとしても一色のみしか選択することができません。

ただし、並べ替え機能やユーザー定義関数を使えば複数の色を条件にしてデータを絞り込むことができます。

以下で詳しい方法をご紹介しています。

エクセルで色フィルターを複数かける方法 

エクセルで複数の色がついたセルを抽出する方法をご紹介します。

今回の方法ではデータの並べ替えを行います。並べ替えた後のデータを元の状態に戻すためには、表に連番を事前に振っておきましょう。まずは表に連番を入力するための列を追加します。①表の左上のセル(例:A1セル)、②ホームタブ、③挿入の順に選択します。④シートの列を挿入を選択します。

表の左側に列が追加されました。次に、連番を入力します。①追加された列の見出し行の下のセル(例:A2セル)に1と入力し、②1と入力したセル(例:A2セル)右下にあるフィルハンドルを下に向かってドラッグします。

追加された列のすべてのセルに1と入力されました。A列右下にある「オートフィル オプション」を選択します。

オートフィルオプションが開かれました。連続データを選択します。

連番が入力されました。次に、色のついたセルを抽出するために並べ替えを行っていきます。①抽出したいセルの見出し(例:B1セル)、②ホームタブ、③並べ替えとフィルターの順に選択します。④ユーザー設定の並べ替えを選択します。

「並べ替え」ダイアログボックスが表示されました。抽出したい色を選択します。①列に「名前」、②並べ替えキーに「セルの色」、③順序に「黄色」の順にそれぞれ選択します。④レベルの追加を選択します。

残りの色も選択します。①列に「名前」、②並べ替えキーに「セルの色」、③順序に「青色」の順にそれぞれ選択します。④OKボタンを押します。

並べ替えが適用され、選択した条件の色のセルが上部に表示されました。次に、必要のないデータを非表示にします。①必要のないデータ(例:A4セルからA9セル)、②ホームタブ、③書式の順に選択します。④非表示/再表示、⑤行を表示しないの順に選択します。

選択した行が非表示になり、色のついたセル抽出されている状態になりました。

複数かけた色フィルターを元に戻す方法

複数かけた色フィルターを元に戻す方法をご紹介します。

行の再表示を選択する

まず、すべてのデータを表示させます。

ホームタブ、②書式、③非表示/再表示の順に選択します。

行の再表示を選択します。

並び替える

すべてのデータが表示されました。

次に、事前に入力しておいた連番を使って元の順番に並べ替えます。

表の左上のセル(例:A1セル)、②ホームタブ、③並べ替えとフィルターの順に選択します。

昇順を選択します。

元の状態に戻った

連番が昇順に並び変わり、抽出する前のデータの状態に戻りました。

VBAを使って色フィルターを複数かける方法

VBAを使って色フィルターを複数かけると、並べ替えやセルを非表示にする手間が減って便利です。

今回は、ユーザー定義関数であるCellColor関数を使いセルの「カラーインデックス」を抽出してフィルターをかける方法をご紹介します。

CellColor関数はセルに設定された色の「カラーインデックス」を抽出できる関数です。カラーインデックスとは、セルの塗りつぶしやフォントの色として使用する「色」につけられた番号を指します。

セルに設定された色の番号でフィルターをかけることで、色フィルターを使わずに複数の色でフィルターをかけることができます。

今回はVBAを使用するので、「開発」タブを表示させる必要があります。

開発タブが表示されている

上記の画像のような「開発」タブが表示されていない場合は、以下の記事を参考にして表示させましょう。

エクセルの開発タブを表示する方法

VBAを選択する

まずは、「CellColor関数」を設定するためのVBAコードを入力します。

開発タブ、②Visual Basicの順に選択します。

標準モジュールを選択する

「Microsoft Visual Basic for Applications」が開きました。

挿入タブ、②標準モジュールの順に選択します。

コードを入力する

標準モジュールが開きました。

以下のコードをコピーしてモジュールに貼り付けます。

Function CellColor(cell As Range) As Integer
    CellColor = cell.Interior.ColorIndex
End Function
上書き保存を選択する

作成したマクロを保存します。

ファイルタブ、②上書き保存の順に選択します。

その際に、「次の機能はマクロなしのブックには保存できません」というダイアログボックスが表示された場合は、「いいえ」を選択してください。

マクロ有効ブックで保存する

「名前を付けて保存」ダイアログボックスが表示されました。

保存先(例:デスクトップ)を選択し、②ファイル名(例:色フィルター)を入力します。③ファイルの種類でExcel マクロ有効ブックを選択し、④保存ボタンを押します。

空白のセルに関数を入力する

「CellColor関数」を設定することができました。

次に、「CellColor関数」を使ってカラーインデックスを入力していきます。

空白のセル(例:D2セル)に「=CellColor(B2)」と入力し、Enterを押します。

関数をドラッグする

「Cellcolor」関数が指定したセル(例:B2セル)に対応するカラーインデックスに変換されました。

カラーインデックスが入力されているセル(例:D2セル)右下のフィルハンドルを下に向かってドラッグします。

表にフィルターをかける

ドラッグした列(例:D列)に指定した列(例:B列)のセルに対応するカラーインデックスが入力されました。

次に、表をフィルターで絞り込んでいきます。

カラーインデックスを入力した列も含めた表、②データタブ、③フィルターの順に選択します。

フィルターボタンを押す

フィルターが設定されました。

カラーインデックスを入力した列のフィルターボタンを押します。

条件を絞り込む

抽出したいカラーインデックス(例:6)、②抽出したい残りのカラーインデックス(例:33)にチェックマークを入れ、③OKボタンを押します。

色フィルターで複数の色を絞り込めた

設定した条件でデータが表示され、複数の色のセルを抽出できました。