SQL Server から直接取得したピボット テーブルで日付が日付として認識されない

SQL Server から直接取得したピボット テーブルで日付が日付として認識されない

私のピボットは、日付列のある外部データ ソースからデータを取得します。Excel はこの列を日付として認識せず、[セルの書式設定] オプション パネルでは日付の表示方法を変更できません。セル データは左揃えで、日付ではなく文字列を示しています。ベース テーブルで、cast(myvar as date)、convert(varchar, myvar, 101)、convert(varchar, myvar, 1) を試しましたが、いずれも Excel によって日付として取得されませんでした。

列が日付として認識された場合は、週と月でグループ化できます。これを修正できない場合、次のステップは各日付の週と月の列をテーブルに追加することだと理解していますが、それを行う前に列の書式設定をもう一度試してみたいと思います。

答え1

日付を datetime にキャストしてみてください。

SQL Server の日付は内部的に 3 バイトの整数として表されますが、datetime は 8 バイトで、おそらく浮動小数点です。Excel は日付/時刻を表すために double を使用するため、SQL Server の datetime 形式は date よりも適切にマッピングされる可能性があります。

答え2

SQL Server にあるテーブルやクエリではなく、SQL コードをピボット テーブルのソースとして使用してみてください。その方が Cast() ステートメントがより効果的になるかもしれません。

  1. ピボットテーブルをクリック
  2. ピボットテーブルツール>オプション>データソースの変更(矢印)>接続プロパティをクリックします。
  3. 定義をクリック
  4. コマンドタイプを「SQLクエリ」に変更します
  5. コマンド テキスト領域に SQL ステートメントを貼り付けるか入力します。

Excel 2007 を使用していると想定しています。Excel 2003 でも同様のアプローチになりますが、アクセス方法が異なります。

答え3

スタイルを指定した変換関数を使用します120。これは ISO 日付形式であり、Excel はこれを認識します。

関連情報