• ベストアンサー

エクセルと日付の関数と並び替え

エクセル初心者です。 日付の勉強をしているのですが 今、下の画像のようなデータを作成しました。 一番左の列が、別のデータベースから転記した日付を シリアル値に変換したものです。 それを真ん中の列にコピーして、日付に変換しました。 そのデータの中から、YEAR関数とMONTH関数を使って 年と月のみの日付にしたものが、3列目です。 ここで、疑問なのですが、3列目を昇順に並び替えたときに きちんと昇順に並び替えができませんでした。 9月、10月、11月ときれいに順番に並べるには何か 複雑なセル設定が必要なのでしょうか。 教えてください。

この投稿のマルチメディアは削除されているためご覧いただけません。

質問者が選んだベストアンサー

  • ベストアンサー
  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.4

YEAR関数とMONTH関数で求めた文字列が昇順に並ばないのは、 月の文字列が1~9月は1桁なのでこれを01~09にする必要があります 例えば C2=TEXT(A2,"yyyymm") とすると月が2桁の文字列になります。

その他の回答 (3)

  • misawajp
  • ベストアンサー率24% (918/3743)
回答No.3

3列目はtext関数の合成ですか? 表示の状態では、2月よりも10月以降のほうが先になってしまいす なぜそうなるかを しっかり考えてください 全ての月を2桁で表さないからです  1~9月を01~09月とすればよいだけです text関数ならば 表示フォーマットを00にします コンピュータ処理の ごくごく基本のことです

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

今のやり方では,綺麗に「9月10月11月」と並べ替えることは出来ても,「正しく」並べ替える事は出来ません。 今のデータに,例えば2011年1月などのデータを交えて結果を確認するようにしてください。 方法1:綺麗だけど正しくない 今の数式は結果が文字列になっているので,そのような並べ替え結果になります。 数式を =VALUE(YEAR(A1)&MONTH(A1)) のようにして,「数値」に変えて計算させた結果を並べ替えると綺麗に並びます。 方法2:正しいけど綺麗? 数式を =TEXT(A2,"yyyymm") とします。この結果は「文字列」のままであることに注意してください。 =TEXT(A2,"yyyymm")*1 とかで数値に変えてもOKです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

>そのデータの中から、YEAR関数とMONTH関数を使って >年と月のみの日付にしたものが、3列目です。 を =text(A2,"yyyymm") してみては如何でしょうか?