• 締切済み

同一セルに日時があるものを日付と時間に分ける方法

ひとつのセルに日付と時間が混在している下記の様なセルがあったとして 加工しやすいように日付と時間に列を分けたいのですがどのようにすれば よいでしょうか。 変更前例:8/8/2011 14:00(A2のセルに日にちと時間が混在) 変更後例:8/8/2011(B2のセル)、14:00(C2のセル) A列が入力されていてそのデータをB列、C列にわけたいです。 宜しくお願い致します。

みんなの回答

  • hitoshi38
  • ベストアンサー率50% (5/10)
回答No.6

たぶんEXCELの質問だと思い、回答します。 色々と方法はありますが、簡単な方法を紹介します。 データには触らず、表示を変更する方法です。 まず、B2とC2にA2と同じデータをコピーします。   B2のセルに"=A2" C2のセルに"=A2" 次にB2セルの書式設定で、表示形式を「日付」にします C2も同様に、「時刻」に設定します 試してみてください

OKmoc
質問者

お礼

ご回答有難う御座いました。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.5

A1セルに年月日時刻がふつーに記入されているとすると =INT(A1) として日付の書式を付け, =MOD(A1,1) として時刻の書式を付けてみてください。

OKmoc
質問者

お礼

ご回答有難う御座いました。書式付けの活用という面で勉強になりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

日付や時間はシリアル値として認識されなければ計算などに使うことができません。 お示しの日付8/8/2011 14:00とのデータはシリアル値としては認識されずに単なる文字列としての認識です。 文字列をシリアル値に変換する必要があるわけですが関数を使う場合にはやや複雑な式になってしまいますね。 B2セルへは次の式を入力します。 =DATE(MID(SUBSTITUTE(SUBSTITUTE(A2," ",REPT(" ",100)),"/",REPT(" ",100)),200,100),MID(SUBSTITUTE(SUBSTITUTE(A2," ",REPT(" ",100)),"/",REPT(" ",100)),1,100),MID(SUBSTITUTE(SUBSTITUTE(A2," ",REPT(" ",100)),"/",REPT(" ",100)),100,100)) C2セルには次の式を入力してセルの「書式設定」から「表示形式」で時刻を選択します。 =TIMEVALUE(MID(SUBSTITUTE(SUBSTITUTE(A2," ",REPT(" ",100)),"/",REPT(" ",100)),300,100)) あるいは次の式でもよいですね。 =TEXT(TIMEVALUE(MID(SUBSTITUTE(SUBSTITUTE(A2," ",REPT(" ",100)),"/",REPT(" ",100)),300,100)),"h:mm") 関数を使わない全く別の方法はA2セルを選択してから「データ」タブの「区切り位置」をクリックします。 表示される最初の画面では「次へ」 次の画面の「区切り位置」では「スペース」にチェックをして「次へ」 次の画面では「列のデータ形式」で「日付」にチェックをして右側の窓では「MDY」を選択します。また、同じ画面の「表示先」では$B$2に変更してから「完了」をクリックします。 B2及びC2セルにはお望みのデータが表示されます。 なお8/8/2011はここでは月/日/年の形で入力されたものと解釈しています。

OKmoc
質問者

お礼

ご回答有難う御座いました。関数は#VALUE!になってしまいましたのでもう少し関数を勉強してみます。関数を使わない方式では正常に動作しました。

回答No.3

変更後のデータをコピーして使いたい場合は、 先ほどのでは使えないので、マクロ(VBA)を使います。 ツール→マクロ→Visual Basic Editerをクリックし、 エディターを開きます。 次に以下のソースを書き込みます。 Sub test() Range("B2").Value = Application.WorksheetFunction.Text(Range("A2"), "m/d/yyyy") Range("C2").Value = Application.WorksheetFunction.Text(Range("A2"), "h:mm") End Sub そして、マクロの実行で、Sheet1.testのマクロを実行すると、 B2,C2にそれぞれ値が入ります。

OKmoc
質問者

お礼

ご回答有難う御座いました。とても丁寧な手順を書いて頂き助かりました。

回答No.2

どういう使い方をするかにもよりますが…… B2のセルに「=A2」 C2のセルに「=A2」 と、入力し、セルの書式設定で、表示形式をそれぞれ B2「m/d/yyyy」 C2「h:mm」 と変更すれば、見た目は変更例のようになります。

OKmoc
質問者

お礼

ご回答有難う御座いました。なるほど参考になりました。

  • Saturn5
  • ベストアンサー率45% (2270/4952)
回答No.1

値をコピーしてから表示形式を変更してもできますが、 =A1 と入力するならば、関数にした方が楽であり、 応用もできると思います。 B1=text(A1,"m/d/yyyy") C1=text(A1,"hh:mm")

OKmoc
質問者

お礼

ご回答有難う御座いました。とてもシンプルですね。

関連するQ&A