Excel - ピボット テーブルで日付がグループ化されない

Excel - ピボット テーブルで日付がグループ化されない

ピボット テーブルの日付を月と年にグループ化しようとしています。元の日付データは、埋め込まれた SQL スクリプトによって更新されるテーブル内の mm/dd/yyyy 形式です。

何らかの理由で、この生のテーブルからピボット テーブルを作成すると、「この選択をグループ化できません」というエラー メッセージが表示されます。空白のデータがないこと、列が日付形式であることを確認しました。すべて試し、テスト列から日付に変換しようとしましたが、今度はエラーが発生します。本当に何かが間違っているのですが、何が間違っているのかわかりません。

誰か助けてくれませんか?

さらに詳しく説明します:

  1. 私の生データは、日付の列 (列 A とします) を持つ埋め込み SQL スクリプトを通じて更新可能なテーブルです。
  2. SQL から入力されたこの列 A には、01/20/2016 形式の日付があり、空白もあります。数式を使用していくつかの手順を実行し、別の列 (列 B) を作成しています。特定の日付の日曜日を返す必要があるため、たとえば日付が 9/20/2016 の場合、列 B は 09/18/2016 を返します。基本的に、列 B には列 A の日付と同じ日付があり、列 A で空白になっているものは列 B では #N/A になります。
  3. 列 C を作成して、列 B から日付を次の方法で取得します: 列 C=IFERROR(COLUMN B,"01/01/2018")。したがって、列 BI の #N/A が何であれ、それを "01/01/2018" と等しくします。
  4. この生データ テーブルからピボット テーブルを作成し、列 C を mu 日付列としてドラッグしています。次に、これらの日付を月と年にもグループ化したいと思います。ただし、「この選択をグループ化できません」というエラーが表示されるか、グループ化されている場合は、グループ 1 という別の列が作成されますが、これは私が探しているものではありません。月または年に変換できるかどうかはわかりません。ホーム タブには、グレー表示されている [グループ選択] セクションがあります。グレー表示されていない場合は、月と年の階層を選択するオプションが提供されると思います。

列 c (日付列) を確認しましたが、空白はありません。形式は 1/2/2016 ですが、グループ化されない理由がわかりません。

ピボットテーブル内で[テキストを列に変換]を試しましたが、エラーが発生しました。生データテーブルで[テキストを列に変換]を試したところ、列Cが実際の数式に変換されました: Iferror

答え1

ロケールの問題がある可能性があります。日付がテキストとして保存されている場合、日付が 1/1/2016 であれば日付への変換は正常に機能しますが、ロケールで DMY が使用され、テキスト日付で MDY が使用されている場合 (またはその逆)、すべての日付が適切に変換されません。データ ソースで日付の値が 12 より大きいセルをテストし、適切な日付として返されることを確認します。

確認後、Ctrl + T または [挿入] > [表] を使用して、データ ソースを Excel 表オブジェクトに変換します。次に、日付列のフィルター ドロップダウンを使用します。列に日付のみが含まれている場合は、個々のエントリではなく、年/月/日の展開可能なツリーが表示されます。

また、空白がないか再度確認してください。ピボット データ ソースには、ソース データの最後に空白行が含まれている可能性があります。

編集: テキストを列に日付に変換するときにエラーが発生した場合、それはテキストを日付として解釈できないことを明確に示しています。テキストを列に変換するウィザードで、ソースと同じ日、月、年の順序が正しく設定されていることを確認してください。スクリーンショットでは、日付が MDY の順序になっていることがわかります。私のロケールではデフォルトで DMY が使用されるため、テキストを列に変換するウィザードに、ソース データが MDY の順序になっていることを知らせる必要があります。

ここに画像の説明を入力してください

編集2: コメントから、日付を作成するために数式を使用しているようです。数式はテキストから列への処理では処理できません (一体なぜそんなことをするのでしょうか????)。

日付を作成するために使用する数式が、日付のように見えるテキストではなく、実際の日付を返すことを確認してください。質問を編集し、検査のために数式の詳細を提供してください。また、コメントは控えてください。これは雑談のフォーラムではありません。

答え2

ピボットテーブルは「01/01/2018」を日付ではなくテキストとして解釈しています。

の代わりに
IFERROR(COLUMN B,"01/01/2018")を使用してください
IFERROR(COLUMN B,DATE(2018,1,1))

関連情報