次の方法で共有

ピボットテーブルにおける並べ替え動作について

Anonymous
2014-11-13T04:46:32+00:00

OSはWindows7 Pro 32ビット/Windows 8.1 32ビットの2環境で確認しています。

Excelは2013 です。

下の図のような表があります。

この表をこのまま、発生月の昇順にならべると、まさに図のとおりに

並ぶのですが、この範囲を選択してピボットテーブルを作成し、

行ラベルとなった発生月で昇順に並べると

このような結果になってしまいます。

・1文字目のは0>1 と判断されているのに、2文字目は0<1になっていると思われる。

 (12月 < 01 月 10月<11月)

・元の表の各々のデータから、"月”という文字を削除すると、ピボットテーブルにおいても 

 01・02・03・04・05・06・07・08・09・10・11・12

 の順番に並ぶ。

・ソート時の詳細設定でふりがなを考慮しないとしても状況は変わらない。

・00月という行を追加すると、元表では1番上に来るが、ピボット上は12月と01月の間に来る。

元表の発生月行は表示形式で月を表示するのではなく'01月 のように

先頭にシングルクォートを含む文字列として入力しています。

もともと表のような並びをピボット側にも期待していて、実際表そのものは並べ替えを行って

上図のような結果になるのですが、ピボット側の並び順がなぜ、この状態で昇順なのかが

わかりません。

原因がお分かりになる方いらっしゃいますでしょうか?

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2014-11-15T09:14:23+00:00

>1.ピボットにおける値の種類は、元になっているセルの値の種類にかかわらず、自動的に(勝手に)判断される。

少し違うように思います。

元のセルの値が1月から12月のような表記の場合は、セルの書式が文字列であろうと、「月」と判断されます。13月や01月は明らかに月の表示ではないので、単純に文字コード順に並べ替えられることになるわけです。

一方、2014/11/15のような日付を入力すると、ピボットテーブルでの並べ替えでは最後に来ますが、そのセルの表示形式を標準にすると、数字として表示されますが、その場合は先頭に配置されます。

>2.頭に0を補完した、2桁の月表記は、日付とはみなされない。

0の付く「月」はないので、これ(通常の文字列と判断される)は合理的なことだと思います。

>3.0を補完しない、1月~9月の表記およびもともと2桁の10月~12月については、日付と認識される。

正確には日付と認識しているのではなく、月を単純な文字列として並べ替えると、1月の次に12月が来ることになり不都合が発生するので(特にグループ化などで月ごとの集計は多用される)、単純に1月から12月までの並べ替え時のユーザー設定リストが有効になっているためです(きわめて合理的な仕様です)。

すなわちエクセルが気を利かせて、文字列の種類を判断するためで、ユーザー設定リストの日、月、火・・・や、甲、乙、丙、丁・・・と並べ替えられるのと同じことです。

>4.通常の並び替えと同様に数値(日付を含む)と文字列を比較した場合、数値が小さいと判断される。

これも少し違うような気がします。

ピボットテーブルでは、たとえば数値が最初にまとめて表示され、そのあとにユーザー設定リスト、通常の文字列、日付シリアル値の順に配置されるのであって、ピボットテーブルでは表としてまとめる観点から通常の並べ替えの基準とは一致しないように思います。

>ピボット側の並び順がなぜ、この状態で昇順なのかがわかりません。

上記の回答をまとめると、ピボットテーブルにおいて集計に多用する「月」などの文字列(ユーザー設定リストに登録されている項目)は、通常の文字列よりも優先して(一塊にして)並べ替えられるため、月と判断されない01月のような文字列がその後に配置されるため(1月の次に12月が並ばないようにした合理的な仕様だと思われます)、ご質問のような状況が発生することになります。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

3 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2014-11-15T11:30:00+00:00

    こんにちは。返信ありがとうございます。

    >>1.ピボットにおける値の種類は、元になっているセルの値の種類にかかわらず、自動的に(勝手に)判断される。

    >少し違うように思います。

    すみません。表現がおかしかったかもしれませんが、これは単に。セルで明示的に文字列を

    指定したとしても、ピボットでの並べ替えはコントロールできないといいたかっただけです。

    >>3.0を補完しない、1月~9月の表記およびもともと2桁の10月~12月については、日付と認識される。

    >正確には日付と認識しているのではなく、

    そのようですね。リストとしての1月・2月・・・と判断されているのですね。

    >>4.通常の並び替えと同様に数値(日付を含む)と文字列を比較した場合、数値が小さいと判断される。

    >これも少し違うような気がします。

    数値と文字列の比較ではなく、リストと文字列の表示の優先順位ということですね。

    >0の付く「月」はないので、これ(通常の文字列と判断される)は合理的なことだと思います。

    >(1月の次に12月が並ばないようにした合理的な仕様だと思われます)

    書式の定義でExcel自身も1~9月を2桁で表現できますし、セル上では日付入力時に

    月を必ず2桁で入力しても、きちんと日付と判断されますし、少なくとも04月という

    表現を4月のことと認識しない人にこれまでは会ったことがなかったので、

    これが合理的といわれると、そうかな?と思います。

    また、セルでは昇順/降順/ユーザー定義、とリストを元に並び替える基準は

    明示的に指定するのに、ピボットでは自動判断というのも、合理的なのかなぁ、と正直

    思います。ひょっとしてピボットでもリストを使用しないオプションがあるのでしょうか?

    今のところ見つけられていません。

    (少なくと既に整列されたシートからピボットを作成したら、元のシートと同じ順番で

     項目を出現させたいと思う人は私以外にもいると思います。そのときは手動で、は

     ちょっとどうかと・・・)

    が、そこは私が合理的に思えるかどうかとは全く関係無しに、Excelのピボットの

    仕様でそのようになっているということで、納得して使うしかないようですね。

    ちなみに

    例えば 乙/木/甲/際/他/丙 (セル上で昇順はこの順番)を

    ピボットにすると、

    甲/木/乙/丙/際/他 

    と並ぶようです。

    甲・乙・丙 はリストに入っている

    木 も 日・月・火・・・のリストに入っている

    ので、リストのない際や他よりは先で、

    乙・丙 は甲の後、まではまだわかりますが、

    甲の後ろに木が割り込んで入ってくるのは

    私には意味不明です。

    リストになりそうな項目と同じ内容が、たまたま含まれるような

    表があれば、ピボット使用時は要注意・・・と理解しておきます。

    ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2014-11-14T07:45:30+00:00

    大沢様

     返信ありがとうございます。

    ピボットのときの並び順の規則性がよくわからなかったのですが、

    その後いろいろと検証してみた結果、どうやら下のような挙動を

    しているように思えます。

    1.ピボットにおける値の種類は、元になっているセルの値の種類に

      かかわらず、自動的に(勝手に)判断される。

    2.頭に0を補完した、2桁の月表記は、日付とはみなされない。

    3.0を補完しない、1月~9月の表記およびもともと2桁の

      10月~12月については、日付と認識される。

    4.通常の並び替えと同様に数値(日付を含む)と

      文字列を比較した場合、数値が小さいと判断される。

    前述のように元表の入力時は先頭にシングルクォートを付けていますので

    セル上は完全に文字なのですが、ピボットでラベルとして

    評価されるときには文字列であるということは考慮されないようです。

    ピボットテーブルにおけるラベルデータの種類を元セルから

    判定してくれるとよいのですが、現状では、シングルクォートを入れた

    '12月もシングルクォートを入力しない12月も同じラベルとして

    取り扱うようですので、仕様と割り切って回避するしかなさそうですね。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2014-11-14T02:28:36+00:00

    ​BEAdv. さん、こんにちは。

    マイクロソフト コミュニティをご利用いただき、ありがとうございます。

    ピボットテーブルの並べ替えの動作についての質問ですね。

    画像とまったく同じ表を作成し、通常の並べ替えと、ピボットテーブルを作成した後の並べ替えを試してみると BEAdv. さんが書いていただいた結果とまったく同じになりました。

    "月" を外しても正しい順に並びましたし、 1月 ・・・ 12月 という書き方でも問題なく並べ替えができますね。

    書き方で並び替えたときの動作が異なる理由について調べてみたのですが、情報がなく詳しい原因については解りませんでした。

    参考となるような情報の紹介ができなくてすみません。。

    もし、この並べ替えの動作について何か情報をお持ちの方がいらっしゃいましたら、こちらのスレッドに書き込みをお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません