- ベストアンサー
エクセルと日付の関数と並び替え
エクセル初心者です。 日付の勉強をしているのですが 今、下の画像のようなデータを作成しました。 一番左の列が、別のデータベースから転記した日付を シリアル値に変換したものです。 それを真ん中の列にコピーして、日付に変換しました。 そのデータの中から、YEAR関数とMONTH関数を使って 年と月のみの日付にしたものが、3列目です。 ここで、疑問なのですが、3列目を昇順に並び替えたときに きちんと昇順に並び替えができませんでした。 9月、10月、11月ときれいに順番に並べるには何か 複雑なセル設定が必要なのでしょうか。 教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
YEAR関数とMONTH関数で求めた文字列が昇順に並ばないのは、 月の文字列が1~9月は1桁なのでこれを01~09にする必要があります 例えば C2=TEXT(A2,"yyyymm") とすると月が2桁の文字列になります。
その他の回答 (3)
- misawajp
- ベストアンサー率24% (918/3743)
3列目はtext関数の合成ですか? 表示の状態では、2月よりも10月以降のほうが先になってしまいす なぜそうなるかを しっかり考えてください 全ての月を2桁で表さないからです 1~9月を01~09月とすればよいだけです text関数ならば 表示フォーマットを00にします コンピュータ処理の ごくごく基本のことです
- keithin
- ベストアンサー率66% (5278/7941)
今のやり方では,綺麗に「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)
>そのデータの中から、YEAR関数とMONTH関数を使って >年と月のみの日付にしたものが、3列目です。 を =text(A2,"yyyymm") してみては如何でしょうか?