【Excel】フィルターの日付が年・月でまとまらないときの原因と対処法

【Excel】フィルターの日付が年・月でまとまらないときの原因と対処法 Excel

日付が入った表にフィルターをかけて、先月分だけをサッと見たい。そう思って列の矢印を押したのに、一覧が「2026年」「11月」のようにまとまらず、日付が1つずつズラッと並んでしまう。。これではチェックを何十個も付けることになり、かえって時間がかかります。

逆に「1日ずつ選びたいのに、勝手に年と月でまとめられてしまう」という反対向きの悩みもあります。どちらも、原因と設定の場所が分かればすぐに切り替えられます。

・フィルターの一覧に「2026年」などの階層が出ず、日付が全部並んでしまう
・メニューに「日付フィルター」ではなく「テキスト フィルター」と表示される
・年・月でまとめられるのが邪魔で、1日ずつ選びたい
・表にあるはずの日付が、フィルターの一覧に出てこない

結論からお伝えすると、確認するのは「日付が文字列として入っていないか」「Excelのオプションのグループ化の設定」「フィルターの一覧に表示できる項目数の上限」の3つです。年・月でまとめる表示と日付を1つずつ並べる表示の切り替えも、Excelのオプションの1項目でできます。本記事では、ふだんのフィルターの日付がどう並ぶのかを押さえたうえで、この3つを順番に確認していきます!

フィルターの日付は「年→月→日」の階層で並ぶ

まず、正しく日付として認識されている列の場合、フィルターの一覧はどう見えるのかを確認しておきましょう。フィルターは次の手順で付けられます。

  1. 表の中の任意のセルを選択する
  2. 「データ」タブ →「フィルター」を選択する
  3. 日付が入っている列の見出しに付いた矢印を選択する

このとき、メニューの中身は列に入っているデータの種類で変わります。公式ヘルプでは「数値をフィルターする場合は 数値フィルター、日付の場合は 日付フィルター、テキストの場合は テキスト フィルターがあります」と説明されています。日付として認識されている列なら「日付フィルター」が表示され、その下のチェックボックスの一覧が年→月→日の階層になります。

日付の列のフィルターを開き、チェックボックスの一覧が「2026年」→「11月」→「2日」の階層で表示されている様子
日付の列のフィルターを開き、チェックボックスの一覧が「2026年」→「11月」→「2日」の階層で表示されている様子

つまりこの階層が出ないときは、「日付として扱われていない」か「階層にまとめる設定がオフになっている」のどちらかということになります。フィルターの操作そのものは、Microsoftの公式ヘルプ「Excel で範囲またはテーブル内のデータをフィルター処理する」で画像付きで確認できます。

原因1:日付が「文字列」として入っている

他のシステムから書き出したCSVを開いたときや、日付を手入力した列では、見た目は日付なのに中身は「ただの文字」になっていることがあります。Excelは文字として扱っているので、年や月でまとめることができません。

見分け方は3つあります。

  • セルの中での位置:公式ヘルプに「文字列として書式設定された日付は、セル内で (右揃えではなく) 左揃えになります」と説明されています。何も設定していないのに日付が左に寄っていたら文字列の可能性があります
  • 緑の三角:同じく「セルの左上隅に小さな緑色の三角形が表示される場合があります」と説明されています
  • フィルターのメニュー:「日付フィルター」ではなく「テキスト フィルター」と表示される
日付が文字列として入った列で、セルの値が左揃えになり、フィルターのメニューに「テキスト フィルター」と表示されている様子
日付が文字列として入った列で、セルの値が左揃えになり、フィルターのメニューに「テキスト フィルター」と表示されている様子

数式で確かめる方法もあります。空いているセルに次の式を入れて、日付が入ったセルを指定します。日付はExcelの内部では、通し番号(シリアル値)という数値として扱われています。そのため「TRUE」なら日付として認識されており、「FALSE」なら文字列です。

=ISNUMBER([日付のセル])

なお、列の中に日付と文字列が混ざっている場合は、どちらが多いかで表示が変わります。公式ヘルプでは、メニューに「表示されるコマンドは、最も多く存在するデータ型です。たとえば、列に、3 つの値が数値として含まれ、4 つの値がテキストとして含まれている場合、テキスト フィルターコマンドが表示されます」と説明されています。つまり文字列の方が多い列では「テキスト フィルター」になって階層が出ず、文字列が少数の列では階層は出るものの、その値だけが階層の外に並びます。「一部の行だけ日付の並びから外れている」ときは、その行が文字列になっていないか確認してみてください。

ちなみに、入力したつもりのない形に日付の見た目が変わってしまうのは、文字列とは逆に「日付として認識されたうえで表示形式が付いた」状態です。こちらは日付の表示形式が勝手に変わるときの対処法で扱っています。

文字列の日付を日付に直す3つの方法

文字列だった場合は、日付に変換すれば階層表示に戻ります。公式ヘルプ「文字列形式の日付を日付形式に変換する」で案内されているのはエラーチェックとDATEVALUE関数の2つですが、列ごとまとめて直せる「区切り位置」も便利なので、3通り紹介します。

方法A:エラーチェックのボタンから変換する

セルの左上に緑の三角(エラー インジケーター)が出ている場合に使えます。この三角は、「ファイル」→「オプション」→「数式」にある「バックグラウンド エラー チェックを有効にする」と、「エラー チェック ルール」の「2 桁で表された年を含むセル」がオンのときに表示されます。三角が出ていないときは、この設定を確認するか、次の方法Bに進んでください。

  1. 緑の三角が表示されているセル、または隣り合ったセルの範囲を選択する
  2. 選択したセルの近くに表示される「エラー」ボタン(ビックリマークのアイコン)を選択する
  3. メニューから「XX を 20XX に変換」または「XX を 19XX に変換」を選択する

公式ヘルプのとおり、この変換は年が2桁で入っている日付の文字列に対して用意されたメニューです。メニューが出てこない場合は、次の方法Bに進んでください。

方法B:「区切り位置」で列ごと変換する

列にまとめて効かせたいときの方法です。名前は「区切り位置」ですが、ウィザードの最後で「日付」を指定することで、文字列の日付を日付に変換できます。

  1. 日付が入っている列を、列ごと選択する
  2. 「データ」タブ →「データ ツール」グループ →「区切り位置」を選択する
  3. 表示された「区切り位置指定ウィザード」の1/3で「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選び、「次へ」を選択する
  4. 2/3は何も変更せず「次へ」を選択する(日付の文字列には区切り文字が含まれないため、列は分割されません)
  5. 3/3の「列のデータ形式」で「日付」を選び、右側のボックスで並び順を選ぶ(「2026/11/02」のように年・月・日の順なら「YMD」)
  6. 「完了」を選択する

公式ヘルプ「テキスト ファイル ウィザード」でも「年、月、日の順で各日付をすべて保存した列を Excel の日付形式に変換するには、[日付] を選択し、[日付] ボックスで YMD の日付の種類を選択します」と案内されています。変換後は、配置を変えていなければ値が右揃えになり、フィルターのメニューも「日付フィルター」に変わります。

「区切り位置指定ウィザード」の3/3で「列のデータ形式」の「日付」を選び、右のボックスで「YMD」を選んでいる画面

方法C:DATEVALUE関数で変換する

元の列を残したまま、別の列に日付を作りたいときはDATEVALUE関数が使えます。公式ヘルプでは「文字列として保存されている日付を、Excel が日付として認識するシリアル値に変換」する関数と説明されています。

=DATEVALUE([文字列の日付のセル])

入力すると5桁の数値(シリアル値)が返ります。これが日付の正体です。あとは次の手順で、見た目を日付に戻します。

  1. 数式を入れたセルを選び、「ホーム」タブの「数値」グループで表示形式を「短い日付形式」などに変える
  2. 元の文字列の列を置き換える場合は、数式のセルをコピーする
  3. 貼り付け先で「形式を選択して貼り付け」から「値」を選んで貼り付ける
  4. 貼り付けたセルにも、同じように日付の表示形式を設定する

原因2:「日付をグループ化する」設定がオフになっている

日付として認識されているのに階層が出ない場合は、Excelのオプションにある設定を確認します。項目名は「オートフィルター メニューで日付をグループ化する」です。

  1. 「ファイル」タブ →「オプション」を選択する
  2. 開いた「Excelのオプション」画面の左側で「詳細設定」を選ぶ
  3. 「次のブックで作業するときの表示設定」の先頭にあるリストボックスで対象のブックが選ばれていることを確かめ、その中の「オートフィルター メニューで日付をグループ化する」のチェックを確認する
  4. チェックを入れて(または外して)「OK」を選択する
「Excelのオプション」画面の「詳細設定」にある「次のブックで作業するときの表示設定」の「オートフィルター メニューで日付をグループ化する」チェックボックス

チェックが入っている状態が、年→月→日の階層表示です。公式ヘルプでは、この項目について「日付フィルターのオートフィルター メニューの下部にある日付のリストで、日付の階層グループを非階層的な日付リストに変更します」と説明されています。チェックを外すと階層がなくなり、日付が1つずつ並ぶ一覧になります。

つまり、この記事の冒頭に挙げた2つの悩みは同じ設定の裏表です。

やりたいこと「オートフィルター メニューで日付をグループ化する」
年・月でまとめて選びたいチェックを入れる
日付を1つずつ選びたいチェックを外す

なお、この項目が置かれているセクションの名前は「次のブックで作業するときの表示設定」です。その名のとおり、ブックごとの設定です。別のファイルを開いたときに表示が違っていても不思議ではないので、ファイルごとに確認してみてください。設定項目の一覧は公式ヘルプ「詳細オプション」にまとまっています。

原因3:フィルターの一覧に出せる項目数を超えている

ここまでとは少し違う症状ですが、同じフィルターの一覧の話なのであわせて紹介します。「階層は出ているが、表にあるはずの日付が一覧に見つからない」というときは、件数の多さが関係していることがあります。Microsoftの「Excel の仕様と制限」には、「フィルターのドロップダウンの一覧に表示されるアイテム」は10,000と記載されています。これを超えた分はチェックボックスの一覧に載りません。

この場合は、チェックボックスで選ぶのではなく、条件で絞り込みます。公式ヘルプでは「オートフィルターを使用すると、リスト値または条件の 2 種類のフィルターを作成できます。これらのフィルターの種類はそれぞれ、セルまたは列テーブルの各範囲に対して互いに排他的です」と説明されています。日付の列なら「日付フィルター」から期間を指定する形です。

  1. 日付の列の矢印を選択する
  2. 「日付フィルター」を選び、絞り込みたい条件を選択する
  3. 表示された画面で日付や期間を指定して「OK」を選択する

チェックボックスの一覧から目的の日付を探すのではなく、条件で期間を指定する方法に切り替えるのがポイントです。

目的別・最初に見るところ

症状最初に見るところ
メニューが「テキスト フィルター」になっている日付が文字列。「区切り位置」やDATEVALUE関数で日付に変換する(原因1)
「日付フィルター」は出るが階層にならない「ファイル」→「オプション」→「詳細設定」の「オートフィルター メニューで日付をグループ化する」にチェックを入れる(原因2)
年・月でまとめられるのをやめたい同じ設定のチェックを外す(原因2)
表にある日付が一覧に出てこない一覧に表示できるのは10,000項目まで。「日付フィルター」の条件で絞り込む(原因3)
一部の行だけ階層から外れて並んでいるその行だけ日付が文字列になっている可能性。ISNUMBER関数で確認する(原因1)

まとめ

フィルターの日付が年・月でまとまらないときは、まず列の中身が本当に日付になっているかを確認します。左揃えになっている、緑の三角が付いている、メニューが「テキスト フィルター」になっている、のどれかに当てはまれば文字列です。「区切り位置」で列ごと日付に変換するのが手早い直し方です。

日付として認識されているのに階層が出ないときは、「ファイル」→「オプション」→「詳細設定」の「オートフィルター メニューで日付をグループ化する」を確認します。この1か所で、年・月でまとめる表示と日付を1つずつ並べる表示を切り替えられます。表示がブック単位の設定であることも覚えておくと、ファイルによって見え方が違う理由に迷わなくなります。

タイトルとURLをコピーしました