プロが教えるわが家の防犯対策術!

エクセルである列に日付のデータがあります。
どういうわけか、単に2008/5/5 というデータもあれば、
2008/5/5 1:30:00  と、時間まで入ったデータもあります。

この時間を簡単に削除する方法はありますか?

作業列に=INT(A1)として、2008/5/5 0:00:00 とし、表示形式を日付に直してからコピー&値貼り付けすれば消えますが、もっと簡単な方法はないかと思い質問させていただきました。
よろしくお願いします。

A 回答 (6件)

現時点で【2008/5/5 1:30:00】のような表示になっているのであれば、



 1." *"(半角スペース以降)を空白に置換
 2.表示形式を日付に

で同様の結果が得られます。Excel2000,2003で挙動確認。

最短かどうかわかりませんし、元データの表示形式に依存しますが…。

シリアル値について見た目の表示で置換が効くというのは、
個人的には少し意外(?)な挙動ですね。

以上ご参考まで。
--------------------------------------------------------
 INTを使った処理について言及しておられますし、
  ・表示だけでなく値を変更したい
  ・値と表示形式の区別については百も承知
  ・シリアル値についても先刻承知
  ・必要があればこの程度のコードはさくっと書ける
 という前提で回答しましたが、万一そうでないとしたら、
 頓珍漢な的外れ回答まことに申し訳ありません。

一応念のため。
    • good
    • 1
この回答へのお礼

なんと、そんな置き換えが可能なんですか?!
驚きです。(確認済み)
目では日付+時間に見えていても中身は小数点つきシリアル値なので置き換えははなから考えていませんでした。
目からうろこです。

お礼日時:2008/03/07 23:51

こんにちは。



作業を簡単にしたいならばマクロを使うしかないのでは?
個人用マクロブックにでも登録しておくとか。

' // シリアル値から時刻部分を取り除く
Sub DropTimeValue()

  If Not TypeOf Selection Is Range Then Exit Sub

  Dim r As Range
  Application.ScreenUpdating = False
  For Each r In Selection.Cells
    If VarType(r) = vbDate Then
      r.NumberFormat = "yyyy/mm/dd"
      r.Value = CDate(Int(r.Value))
    End If
  Next

End Sub
    • good
    • 0
この回答へのお礼

KenKen_SPさま、いつもありがとうございます。
マクロのコードありがとうございました。

ただ、今回はマクロをつかわないで簡単なやり方を模索しておりました。

お礼日時:2008/03/07 23:48

いつもこの手の質問には


(1)値をも変えてしまいたい(しまってよい)のか
(2)表示形式でそう見せれば良いのか
があいまいのままだ。
質問者が日付時刻シリアル値、日付・時刻書式の区別がはっきり判っているのかな。
(1)の値を変えるのは、関数かVBAを使わないとできない。INTもその例。関数は値を扱う(値を使って値を返すものです。
(2)書式はセル範囲に一遍に設定できるから簡単だが
yyyy/m/d (時刻部分は見えない)これぐらいご存知でしょう。
(1)との兼ね合いでどちらが正しいともいえないでしょう。
    • good
    • 0
この回答へのお礼

すくなくとも作業列に=INT(A1)としてるのですから表示形式でそう見せれば良いのではないことはお分かりいただけると思いましたが、説明不足でした。
ありがとうございました。

お礼日時:2008/03/07 23:43

単に表示を変えたいだけなら、表示書式の「日付」グループで「2001/3/14」のパターンにして、


日付だけの表示書式にすれば良いだけでは?

> 2008/5/5 0:00:00 とし、表示形式を日付に直してから
これでは再度時間レベルまで指定していて意味無いのでは?
確かに、これでもデータが「2008/5/5」と日付のみなら、時分秒は表示されませんが・・・
    • good
    • 0
この回答へのお礼

表示をかえるのではなくデータを書き換えたいのです。
2008/5/5 0:00:00 は 2008/5/5と表示形式が違うだけで同義です。

お礼日時:2008/03/07 23:41

次の方法は如何でしょうか。


(1)対象セルを選択→セルの書式設定→表示形式タブで文字列
(2)編集→置換→検索文字列を.*、置換文字列は未入力→全て置換
(3)セルの書式設定→表示形式タブで日付
    • good
    • 0
この回答へのお礼

これではすべて消えてしまいます。

お礼日時:2008/03/07 23:38

こんにちは。



>表示形式を日付に直してから
値貼り付けをしているので、この操作は不要ですよ
省略できます
    • good
    • 0
この回答へのお礼

あ、そうなんですね。
ありがとうございました。

お礼日時:2008/03/07 23:34

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

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