人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

「2017-01-31 午前3時22分」というフォーマットの日時データを、Excelで「日時」として扱える形式に変換したいのですが、どう書き換えたらいいでしょうか?

スマート体重計からデータを取り出したら、計測日時のデータが上記のフォーマットになっており、Excelでグラフを作ってみても、日時として認識されないのです。

●質問者: sample2
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● degucho
●100ポイント

A1にそのデータが入力されているとして
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"時",":"),"分",""),"午前",""),"`午後","")
でこちらで日付と認識されましたのでいったんこのように
式を入力した列でグラフ作成してみてください


sample2さんのコメント
ありがとうございました!

2 ● a-kuma3
●100ポイント

こんな感じ。

Sub conv_datetime()
 source_col = 1' A列
 dest_col = 2' B列

 last_row = Cells(Rows.Count, source_col).End(xlUp).Row
 For r = 2 To last_row
 Cells(r, dest_col).Value = CDate(Cells(r, source_col))
 Next
End Sub

A列に入った文字列を、日付型にして B列に入れてます。
文字列の加工が必要かなと思ったら、CDate 関数でそのまま日付に変換できました。
午前と午後も正しく変換できます。


sample2さんのコメント
ありがとうございました!

3 ● kimuram
●100ポイント ベストアンサー

前の方はVBAでの回答をされていますが、セル関数だけでやりたいならと、以下のようにしてみました。
ちょっと面倒な姑息な感じでもありますが。

前提として、「2017-01-31 午前3時22分」の形式限定とします。
日付は10文字、スペース1文字おいて、時刻は「午前」または「午後」、時と分の数字は1?2桁)
セルB2に計測日時のデータがあるとして、セルB3への数式が以下です。
=IF(ISERR(FIND("午前",B2)),0.5,0)+DATEVALUE(LEFT(B2,10))+TIMEVALUE(MID(B2,14,LEN(B2)-13))

このセルに表示形式を適用すればいろいろな表示をすることが出来ます。また値のみで他のセルにコピーすることも可能です。
グラフの見出しやデータとしても使用可能です。
試してみてください。


sample2さんのコメント
ありがとうございました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ