- ベストアンサー
Excel2010 データの並び替え
「3:58:28PM」「10:20:26AM」というように入力されているデータを時間順で並び替えたいのですが、方法が分かりません。一度、他のフォーマット「hh:mm:ss」などに変換する方法でもかまいません。よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
まず、その時刻のデータが入力されているセル範囲をまとめて選択した上で、Excelの置換機能を利用されて、「AM」や「PM」を、それぞれ「 AM」や「 PM」の様に、、「AM」や「PM」の前に半角スペースを追加した文字列に置換する事で、文字列データとなっていたものを、本当の時刻データに変換されては如何でしょうか? 念のために、如何にそのための操作方法を掲載しておきます。 データ形式が文字列データとなってしまっている時刻データが入力されているセル範囲をまとめて選択 ↓ [ホーム]タブをクリック ↓ 現れた「編集」グループの中にある[検索と選択]ボタンをクリック ↓ 現れた選択肢の中にある[置換]をクリック ↓ 現れた「検索と置換」ダイアログボックスの[置換]タブをクリック ↓ 「検索する文字列」欄に「AM」(鉤括弧は不要)と入力 ↓ 「置換後の文字列」欄に「 AM」(鉤括弧は不要)という具合に、「AM」の前に半角スペースを追加した文字列を入力 ↓ 「検索と置換」ダイアログボックスの[すべて置換]ボタンをクリック ↓ 「検索する文字列」欄に「PM」(鉤括弧は不要)と入力 ↓ 「置換後の文字列」欄に「 PM」(鉤括弧は不要)という具合に、「PM」の前に半角スペースを追加した文字列を入力 ↓ 「検索と置換」ダイアログボックスの[すべて置換]ボタンをクリック ↓ 「検索と置換」ダイアログボックスの[閉じる]ボタンをクリック
その他の回答 (3)
- MackyNo1
- ベストアンサー率53% (1521/2850)
例示の時刻の表示形式は、AMやPMの前にスペースが無いため、文字列として認識されています。 並べ替えを実行できるようにシリアル値に変換するなら以下のような式が簡単です。 =REPLACE(A1,LEN(A1)-1,0," ")*1 最後にセルの書式を、ご希望の表示形式にしてください。
お礼
なるほど!空白をAM/PMの前に挿入して、Excelが時刻データとして認識できるようにするわけですね。ありがとうございます。
- bunjii
- ベストアンサー率43% (3589/8249)
>「3:58:28PM」「10:20:26AM」というように入力されているデータを時間順で並び替えたいのですが 「時間」と「時刻」は異なります。 提示の情報は「時刻」と判断します。 Excelで時刻のデータをキー入力すると自動的に表示形式が変更され表示と異なるシリアル値がセルに収納されます。 3:58:28 PMと入力すると数式バーには15:58:28と表示されます。 セルの書式で表示を標準に変更すると0.665601851851852のように小数で表示されるはずです。 ソートで扱われる値は小数で表示されたシリアル値であることを念頭にソートの条件を指定すれば良いだけです。 ソートの対象は選択された範囲で行われることをご存知と思いますが念のため申し添えます。 尚、時間とは時刻と時刻の間ですから大きい方の時刻から小さい方の時刻を引いた差で求められます。 値の扱いは時刻と同じ形態のシリアル値です。
お礼
ありがとうございます。レポーティングツールで出力した結果が文字列で入力されていたので、時刻データとして変換する必要がありました。中のクエリを自分で書き換えられれば良いのですが。。。。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 元データはA列の1行目からあるとします。 データ内には必ず「AM」または「PM」が最後に入っているという前提です。 B1セルに =IF(ISNUMBER(FIND("A",A1)),LEFT(A1,FIND("A",A1)-1)*1,0.5+LEFT(A1,FIND("P",A1)-1)*1) という数式を入れフィルハンドルでダブルクリック! B列の昇順で並び替えてみてください。 ※ B列以降を使っている場合はB列を挿入して数式を入れてください。 並び替えが終わるとB列を削除して完了です。m(_ _)m
お礼
ありがとうございます。参考になります。
お礼
ありがとうございます!一番シンプルですね。なんで気づかなかったんだろう。。。私以外がデータを扱うこともあるので、数式を使わないやり方が非常に助かりました!