• ベストアンサー

エクセルの日付から時間を削除したい

エクセルである列に日付のデータがあります。 どういうわけか、単に2008/5/5 というデータもあれば、 2008/5/5 1:30:00  と、時間まで入ったデータもあります。 この時間を簡単に削除する方法はありますか? 作業列に=INT(A1)として、2008/5/5 0:00:00 とし、表示形式を日付に直してからコピー&値貼り付けすれば消えますが、もっと簡単な方法はないかと思い質問させていただきました。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#52504
noname#52504
回答No.6

現時点で【2008/5/5 1:30:00】のような表示になっているのであれば、  1." *"(半角スペース以降)を空白に置換  2.表示形式を日付に で同様の結果が得られます。Excel2000,2003で挙動確認。 最短かどうかわかりませんし、元データの表示形式に依存しますが…。 シリアル値について見た目の表示で置換が効くというのは、 個人的には少し意外(?)な挙動ですね。 以上ご参考まで。 --------------------------------------------------------  INTを使った処理について言及しておられますし、   ・表示だけでなく値を変更したい   ・値と表示形式の区別については百も承知   ・シリアル値についても先刻承知   ・必要があればこの程度のコードはさくっと書ける  という前提で回答しましたが、万一そうでないとしたら、  頓珍漢な的外れ回答まことに申し訳ありません。 一応念のため。

merlionXX
質問者

お礼

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

その他の回答 (5)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.5

こんにちは。 作業を簡単にしたいならばマクロを使うしかないのでは? 個人用マクロブックにでも登録しておくとか。 ' // シリアル値から時刻部分を取り除く 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

merlionXX
質問者

お礼

KenKen_SPさま、いつもありがとうございます。 マクロのコードありがとうございました。 ただ、今回はマクロをつかわないで簡単なやり方を模索しておりました。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

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

merlionXX
質問者

お礼

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

noname#79209
noname#79209
回答No.3

単に表示を変えたいだけなら、表示書式の「日付」グループで「2001/3/14」のパターンにして、 日付だけの表示書式にすれば良いだけでは? > 2008/5/5 0:00:00 とし、表示形式を日付に直してから これでは再度時間レベルまで指定していて意味無いのでは? 確かに、これでもデータが「2008/5/5」と日付のみなら、時分秒は表示されませんが・・・

merlionXX
質問者

お礼

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

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 (1)対象セルを選択→セルの書式設定→表示形式タブで文字列 (2)編集→置換→検索文字列を.*、置換文字列は未入力→全て置換 (3)セルの書式設定→表示形式タブで日付

merlionXX
質問者

お礼

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

  • htmcr
  • ベストアンサー率36% (11/30)
回答No.1

こんにちは。 >表示形式を日付に直してから 値貼り付けをしているので、この操作は不要ですよ 省略できます

merlionXX
質問者

お礼

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

関連するQ&A

専門家に質問してみよう