一回も披露したことのない豆知識

ひとつのセルに日付と時間が混在している下記の様なセルがあったとして
加工しやすいように日付と時間に列を分けたいのですがどのようにすれば
よいでしょうか。

変更前例:8/8/2011 14:00(A2のセルに日にちと時間が混在)
変更後例:8/8/2011(B2のセル)、14:00(C2のセル)

A列が入力されていてそのデータをB列、C列にわけたいです。
宜しくお願い致します。

A 回答 (6件)

たぶんEXCELの質問だと思い、回答します。



色々と方法はありますが、簡単な方法を紹介します。
データには触らず、表示を変更する方法です。

まず、B2とC2にA2と同じデータをコピーします。
  B2のセルに"=A2" C2のセルに"=A2"

次にB2セルの書式設定で、表示形式を「日付」にします
C2も同様に、「時刻」に設定します


試してみてください
    • good
    • 7
この回答へのお礼

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

お礼日時:2011/08/18 04:42

A1セルに年月日時刻がふつーに記入されているとすると


=INT(A1)
として日付の書式を付け,
=MOD(A1,1)
として時刻の書式を付けてみてください。
    • good
    • 12
この回答へのお礼

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

お礼日時:2011/08/09 09:17

日付や時間はシリアル値として認識されなければ計算などに使うことができません。


お示しの日付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はここでは月/日/年の形で入力されたものと解釈しています。
    • good
    • 9
この回答へのお礼

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

お礼日時:2011/08/09 09:16

変更後のデータをコピーして使いたい場合は、


先ほどのでは使えないので、マクロ(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にそれぞれ値が入ります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/08/09 04:19

どういう使い方をするかにもよりますが……



B2のセルに「=A2」
C2のセルに「=A2」
と、入力し、セルの書式設定で、表示形式をそれぞれ
B2「m/d/yyyy」
C2「h:mm」

と変更すれば、見た目は変更例のようになります。
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/08/09 04:19

値をコピーしてから表示形式を変更してもできますが、


=A1 と入力するならば、関数にした方が楽であり、
応用もできると思います。

B1=text(A1,"m/d/yyyy")
C1=text(A1,"hh:mm")
    • good
    • 6
この回答へのお礼

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

お礼日時:2011/08/09 04:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A