エラーの内容
ピボットテーブルの日付または数値フィールドを右クリックしてグループ化を選択すると、Excelが即座に次のエラーを表示します:
Cannot group that selection
スタックトレースも行番号もありません。ただ何も教えてくれない行き詰まりのダイアログが表示されるだけです。原因はほぼ必ずデータの品質にあります——空白セル、テキストとして保存された日付、またはソース列のどこかに潜む混在した型がその犯人です。
なぜこのエラーが発生するのか
ピボットテーブルのグループ化は厳格です。対象列のすべてのセルが同一の有効なデータ型でなければなりません。例外が1つでもあると操作全体が失敗します。グループ化が壊れる原因は以下の通りです:
- 空白セルが日付・数値列のどこかに存在する——50,000行のうちたった1つの空セルでも十分です
- テキストとして保存された日付——セルは日付のように見えますが、Excelは文字列として扱っています
- 混在した型——同じ列に正しい日付形式のセルと、テキストや数値のセルが混在している
#N/Aや#VALUE!などのエラー値がフィールド内に存在する
最もよくある原因は空白セルです。10,000行の列に空白セルが1つあるだけで、毎回このエラーが発生します。
素早い診断方法
修正に取り掛かる前に、実際にどの問題が発生しているかを特定しましょう。
空白セルを確認する
ソースデータの日付・数値列を選択し、Ctrl+G → セル選択 → 空白セル → OK を押します。ハイライトされたセルがあれば空白が存在します。
テキスト形式の日付を確認する
日付のように見えるセルをクリックして、2点を確認します:
- 配置——テキストは左揃え、正しい日付は右揃えになります
- 補助列で
=ISNUMBER(A2)を実行します。日付セルで結果がFALSEの場合、実際の日付シリアル番号ではなくテキストとして保存されています。
エラー値を確認する
Ctrl+Fを押して、列内の#N/Aや#VALUE!を検索します。数式エラーは大きなデータセットでは見つけにくいので注意が必要です。
修正1:空白セルを削除または埋める
十中八九、これだけで解決します。
方法A——空白にプレースホルダーを入力する:
- ソースデータの日付・数値列全体を選択する
- Ctrl+G → セル選択 → 空白セル → OK を押す
- 値を入力し(例:数値なら
0、番兵日付として1/1/1900など)、Ctrl+Enterを押す
方法B——日付が空白の行を削除する:
- 列を空白でフィルタリングする
- フィルタリングされた行をすべて選択する
- 右クリック → 行の削除
- フィルターをクリアする
空白を埋めるか削除した後、ピボットテーブルを右クリックして更新を押し、再度グループ化を試みてください。
修正2:テキスト日付を正しい日付に変換する
空白が問題ではない場合は日付を確認してください。テキストとして保存されている場合、列がきれいでもグループ化は失敗します。
方法A——DATEVALUE関数を使う
補助列を追加して、テキストを正しい日付シリアル番号に変換します:
=DATEVALUE(A2)
補助列をコピーし、元の列に値のみ貼り付けを行い、列を日付形式にフォーマットします。
方法B——区切り位置を使う
- テキスト形式の日付列を選択する
- データ → 区切り位置に進む
- ステップ3まで進み、列のデータ形式で日付を選択し、日付の順序(DMY / MDY / YMD)を選ぶ
- 完了をクリックする
Excelが補助列不要で、テキスト文字列を正しい日付シリアル番号に直接変換します。
方法C——Power Query(定期インポートに最適)
// Power Query M の場合:
= Table.TransformColumnTypes(Source, {"OrderDate", type date})
毎週CSVやデータベースからインポートしていますか?Power Queryで列の型を一度Dateに設定すれば、この問題は再発しません。
修正3:補助列で混在データ型を処理する
列が本当に雑然としている場合——一部の行には日付があり、他の行には「N/A」や「Pending」などのテキストラベルがある——直接グループ化することはできません。代わりに、クリーンな補助列を作成します:
=IF(ISNUMBER(A2), A2, "")
日付列の場合は特に以下を使用します:
=IFERROR(DATEVALUE(TEXT(A2,"YYYY-MM-DD")), "")
元の列の代わりに補助列をピボットテーブルのソースにします。空白が制御され、型が統一され、グループ化が機能します。
修正4:IFERRORで数式エラーをラップする
#N/Aや#VALUE!などのエラー値がグループ化フィールドにあると、空白と同様に問題を引き起こします。ソースの数式を見つけてラップします:
// 修正前
=VLOOKUP(B2, LookupTable, 3, 0)
// 修正後
=IFERROR(VLOOKUP(B2, LookupTable, 3, 0), "")
エラーを空文字列または0に置き換えてから、ピボットテーブルを更新します。
修正5:ピボットテーブルのソースにExcelテーブルを使用する
まだ解決しない場合、ソースデータがExcelテーブルになっていなければCtrl+Tで変換してください。テーブルは行を追加すると自動的に拡張され、各列のフィルタードロップダウンでデータ型の不整合が一目でわかります。
A1:D500のような固定範囲ではなく、テーブル名をソースとして使用してピボットテーブルを再作成してください。これにより「ピボットテーブルがデータの増加を認識しない」という問題も解消されます。
確認方法
修正を適用したら、実際に解決されたか確認します:
- ピボットテーブルの任意の場所を右クリック → 更新
- ピボットテーブルの日付・数値フィールドラベルを右クリックする
- グループ化をクリック——グループ化ダイアログが開くはずです(日付の場合は日/月/四半期/年、数値の場合は数値間隔)
- グループ化を設定してOKをクリックする
まだ失敗する場合は、空のセルで以下を実行します:
=COUNTA(A:A) - COUNT(A:A)
結果が0より大きい場合、数値や日付以外の値がまだ列に潜んでいます。引き続き調査してください。
予防策
不良データを入口で防ぎましょう。外部インポートの場合は、明示的な型変換を設定したPower Queryを通して処理してください——シートに届く前に型の不一致を検出できます。手動入力の場合は、列にデータの入力規則を設定して日付または整数のみを許可します。Excelが入力時にそれ以外を拒否するため、ピボットテーブルのグループ化がデフォルトでクリーンな状態を保てます。

