• ベストアンサー

文字列の日付を並べ替えするには?

エクセル データーベースを作成していて、項目の中に日付データがあるのですが、 日付データの入れ方が 平成15年10月(日付なし) ならば 15.10(文字列) となっています。 レコードを日付の昇順に並べ替えたいと思っているのですが、文字列でデータが入っているためレコードを正確な順番で並べ替えることができません。 どのようにしたら日付順で並べ替えができるのか、教えてください。 お願いします。 | 日付 | 氏名  | |15.10  |中川   | |15.11  |山本   | |15.2  |坂下   | |15.3  |中畑   | 上のようなデータです。 又、できない場合、以降の入力にだけでもユーザー定義を設定しようかとも考えています。 どのようなユーザー定義を設定すると、簡単にデータを入力できるかご助言もお待ちしております。

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

  • ベストアンサー
回答No.3

ちょっと面倒ですが 日付がA列、氏名がB列、C列以降は未使用と仮定 1.C1に ="H"&A1&".1" と入力し、A列のデータがある行までコピー 2.C列データ入力セル全体を選択し、コピー 形式を選択して貼り付けの値複写 これで、 H.yy.mm.1の形式になります (日は、ついたちで固定です) 3.D1に0(ゼロ)を入力し、コピー 4.C列データ入力セル全体を選択し、 形式を選択して貼り付けの 演算加算を選択し、OK セルの書式設定は、日付形式にした方がいいかもね。 これで、日付形式になるので、 D列を削除し、C列でソートできます。 ユーザー定義より、しっかりと日付で入力した方がいいですよ。 または、 yy.mm 形式。(17年1月なら17.01) これならそのままソートできるでしょ。

その他の回答 (5)

  • SL-Blue
  • ベストアンサー率35% (41/114)
回答No.6

日付が文字列になっていると言うことなので、文字を置き換えてはどうでしょう? 「置換」で検索する文字列に「15.」を入力します。置換する文字列に「2003/」と入力します。     そうすると、 15.10 →  Oct-10 15.11 →  Nov-11 15.2  →  Nov-02 15.3  →  Nov-03  こうなりますので、(私のパソコンの場合)     これを「セルの書式設定の表示形式」で「1997年3月」を選びます。 2003年10月 (データは2003/10/1になっています) 2003年11月 2003年2月 2003年3月 となります。       平成の表示にしたいなら、表示形式を[ユーザー定義にし」「ge.m」にすれば H15.10 H15.11 H15.12 H16.1   となります 次からの入力は「2004/11」(データは2004/11/1)または 日付で「11/10」(データは2004/11/10)と言う風に「/」を使うといいと思います。 原則的に日付モードで処理したいなら日付で入力したほうが後で楽ではないでしょうか

awane
質問者

お礼

ありがとうございました

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.5

#1 です >今後のデータ入力についても何かよい助言がありましたら、 会社でお使いなら 一番多く使われて方法が一番だと思います ここでは 2004/10 片方では H17.10 とかバラバラになるのが 使う方としては 困ります awaneさんの周りでどのような入れ方をされているか調査された方が 良いおもいます。

回答No.4

No3の補足です 1.C1に ="H"&A1&".1" と入力し、A列のデータがある行までコピー だと、平成のみになってしまうので =IF(VALUE(LEFT(A1,FIND(".",A1)))>17,"S","H")&A1&".1" に変更してください。 平成16年まで対応していますが、もし来年以降のデータも入力してあるようなら、 数式の 17のところを 20とか30とか、 昭和のデータが無い年まで引き上げてください。 50くらいまで大丈夫かなぁ。 昭和のデータが無いなら、 No3で大丈夫ですよ。

awane
質問者

お礼

昭和までの出し方教えていただいて、ありがとうございました。 この方法は、簡単で出しやすいですね。使ってみます。

回答No.2

文字列になっている日付をまず数値として扱えるようにしましょう。 +++++++++++++++++++++++++++++++++++++++++ セルA2に日付が入っているとします。 作業用のためのセルが必要です。A列の隣などに1列挿入して下さい。 その挿入した列に下の計算式を入力してください。 =DATE(MID(A2,1,2)+1988,MID(A2,4,2),1) うまくいくようでしたら下のセルへコピーしてください。 +++++++++++++++++++++++++++++++++++++++++ DATE関数は、数字を日付にしてくれます。 =DATE(年、月、日)です 「日」は何か入れないといけないので、「1」を指定しました。 「+1988」は和暦を西暦に直すために入れています。平成のみの対応です。 MID関数は、文字列から指定の文字を取り出してくれます。 =MID(文字列、開始位置、文字数)です。 お試しください。

awane
質問者

補足

とてもいい方法なのですが、平成9年など1桁の場合は、どうしたらいいのでしょうか

  • deecyan
  • ベストアンサー率38% (89/233)
回答No.1

日付がA列 氏名がB列として C列に日付に直す関数をいれ そこをソートする C2 に =DATE(MID(A2,1,FIND(".",A2)),MID(A2,FIND(".",A2)+1,2),1) をいれて コピー それ以下のセルにペースト 1915年になっちゃいますが フォントの色を白にするなどしてください

awane
質問者

補足

もしかして、 =DATE(MID(A2,1,FIND(".",A2))+88,MID(A2,FIND(".",A2)+1,2),1) とすれば、西暦もあってきますよね。なるほど!! 今後のデータ入力についても何かよい助言がありましたら、お願いします。

関連するQ&A

専門家に質問してみよう