- 公開日:
エクセルでフィルターの範囲指定ができない場合
エクセルでは、いくつかの条件下でフィルターの範囲指定ができない場合があります。
この記事では、エクセルでフィルターの範囲指定ができない場合の原因と対処法をご紹介します。
以下でご紹介する方法を一つずつ確認して、フィルターの範囲指定ができるか試してみましょう。
エクセルでフィルターの範囲指定ができない場合
エクセルでフィルターの範囲指定ができない場合、いくつかの問題点がある可能性があります。
詳細については以下でご紹介します。
表に空行が含まれている
表に空行が含まれている場合、フィルターの範囲指定ができない場合があります。
![表に空行が含まれている](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue1.png)
上記の画像では、6行目に空行が含まれています。
表に空行が含まれている状態でフィルターメニューを開いてみます。
A1セル右下のフィルターボタンを押します。
![空行以降にフィルターがかかっていない](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue2.png)
フィルターメニューが開かれました。
しかしフィルター正しく機能しておらず、No.5以降のデータの抽出指定ができません。
表に空行が含まれる場合は、改めて正しくフィルターをかける必要があります。
詳しい方法については、以下の記事「エクセルでフィルター時に空白を含む方法」セクションでご紹介しています。
日付フィルターの範囲指定が正確にできていない
日付フィルターを設定した際に、正しく抽出が行われない場合があります。
![表に日付が含まれている](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue16.png)
上記の画像のように表内に日付データが含まれている場合には、日付フィルターを使用することができます。
日付フィルターを設定する際、正しく範囲指定ができていないとフィルターが正常に機能しません。
詳細については、以下の記事「日付を正確に選択できていない」セクションでご紹介しています。
SUBTOTAL関数を使っている
SUBTOTAL関数を使うとフィルターで絞り込んだデータに連番をふることができます。
ただし、関数の不具合でフィルター条件に該当しないデータが絞り込まれることがあります。
![サブトータル関数で連番が振られている](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue19.png)
上記の画像はA列にSUBTOTAL関数を使い、表に連番を振った場合の例です。
SUBTOTAL関数の書式は、「=SUBTOTAL(集計方法,参照1,…)」です。
「=SUBTOTAL(3,$B$2:B2)」は「B列のデータの個数を数えてA列に表示する」という意味になっています。
SUBTOTAL関数の引数の詳細や使い方などについては、以下の記事でご紹介しています。
ExcelのSUBTOTAL関数の使い方|集計方法によって様々な集計をする
フィルターを設定して、「愛知県」のデータだけを抽出してみます。
![抽出が正しく行われていない](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue18.png)
すると、赤矢印で示したように「愛知県」以外のデータも一緒に絞り込まれています。
![最後の行にフィルターがかかっていない](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue11.png)
フィルターメニューを確認しても、No.7までのデータしか範囲指定ができていません。
表内にSUBTOTAL関数を使用したデータがある場合にフィルターをかけると、エクセルにエラーが発生し、最後の行だけがフィルターの範囲外になってしまうことがあります。エラーの原因は明らかになっていません。
SUBTOTAL関数を使って連番を振った表にフィルターをかける場合には、数式を工夫する必要があります。
方法の詳細は以下の通りです。
![機能する数式を入力する](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue12.png)
SUBTOTAL関数を使ってもフィルターが正常に機能するように、数式を置き換えます。
A2セルに「=SUBTOTAL(3,$B$:B2)-1」と入力し、Enterを押します。
余分に数えてしまっている見出し行分の個数を引くために「-1」を設定します。
![数式をドラッグする](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue13.png)
A2セルの数式が置き換わりました。
他のセルの数式も置き換えます。
A2セル右下のフィルハンドルを下にドラッグします。
![フィルターボタンを押す](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue14.png)
A列のすべてのセルの数式が置き換わりました。
フィルターメニューを開きます。
A1セル右下のフィルターボタンを押します。
![正しくフィルターがかかった](https://office-hack.com/wp-content/uploads/excel-cannot-set-filter-range-issue15.png)
フィルターメニューが開かれました。
No.8までのデータが正しく範囲指定されていることが確認できます。