スマート体重計からデータを取り出したら、計測日時のデータが上記のフォーマットになっており、Excelでグラフを作ってみても、日時として認識されないのです。
前の方は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))
このセルに表示形式を適用すればいろいろな表示をすることが出来ます。また値のみで他のセルにコピーすることも可能です。
グラフの見出しやデータとしても使用可能です。
試してみてください。
A1にそのデータが入力されているとして
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"時",":"),"分",""),"午前",""),"`午後","")
でこちらで日付と認識されましたのでいったんこのように
式を入力した列でグラフ作成してみてください
ありがとうございました!
こんな感じ。
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 関数でそのまま日付に変換できました。
午前と午後も正しく変換できます。
ありがとうございました!
前の方は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))
このセルに表示形式を適用すればいろいろな表示をすることが出来ます。また値のみで他のセルにコピーすることも可能です。
グラフの見出しやデータとしても使用可能です。
試してみてください。
ありがとうございました!
ありがとうございました!
2017/03/14 02:20:21