• ベストアンサー

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

エクセルである列に日付のデータがあります。 どういうわけか、単に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/17068)
回答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

  • エクセル表示形式を日付から文字列にする方法

    こんにちわ。 あるホームページ上から、CSV形式でデータ自動でダウンロードしています。 それをエクセル形式で保存し、ソフトに取り込みます。 ホームページからダウンロードしたデータの日付部分の表示形式が、 自動的に「日付」になっていて ソフトにいれたときに日付部分が「40340」等の訳のわからない数字になってしまします。 ソフトに取り込む前に、形式が「文字列」だと、うまくいくので 文字列に変更したいのです。 何千件とデータがありますので、 手書きで打ち直すのには時間がかかりすぎてしまいます・・・。 取り込み前に コピー、貼り付けや色々試してみましたが、 取り込んだときと同じように「40340」となってしまいます。 なにか良い方法がないでしょうか。。。

  • Excelで日付セルをコピー&ペーストすると…

    Excel2000を使っています。 ある日付形式のセルを、他のBookにコピー&ペーストすると、年の値が変わってしまいます。 具体的には、2003/5/16だったものが、コピペ後のセルでは2007/5/16になります。 「形式を選択して貼り付け」でも、通常の「貼り付け」でも同様です。 いまは列Aに年、列Bに月/日というデータを作っており、 A   B 2003 5/16 という表示形式にしているので不都合はないのですが、 この列Aのセル値を列Bのセルの「年」として指定する方法はありますか? (列Aは標準形式になっています) 分かりにくい文章で申し訳ありませんが、ご存知の方教えてください。

  • エクセル 文字列を日付に変更したい

    勘定奉行21を使っています。 総勘定元帳をエクセルにエクスポートして、編集することが多いのですが、日付が文字列になってしまって困っています。これを正しい日付として認識させたいです。 エクセルに出力される日付の例 16 430 16 8 1 161020 など、和暦で表示されていて、月日は一桁の場合は半角スペースが入るようになっています。 スペースが入っているものは文字列として、3番目のようにスペースがないものについては161020という数値として認識されます。 現在行っている方法 A列に上記が入っているとして、B列に数式を入れます。 1)A列を選択し、置換えで半角スペースを"0"(ゼロ)にします。 2)B列に空白の列を挿入します。 3)B列に以下の式を入れ、下までコピーします。 =IF(A6="","",DATEVALUE("H"&MID(A6,1,2)&"/"&MID(A6,3,2)&"/"&MID(A6,5,2))) 4)B列を書式を選択して貼り付けで値にします。 5)A列を削除します。 6)A列の書式設定でユーザー設定「ge.mm.dd」と入れます。 ※B列より右側には15行ほど他のデータが入っています。 ※この日付がA6から下へ続いているのは毎回同じなのですが、出力する時によって全体の行数は増減します。 ※数式のIF部分については、値の貼り付けにした時に、エラーが残ってしまうので入れてあります。 ※H16.01.20の様な表示形式にしたいです。 今のことろは、上記をマクロで記録して、貼り付け用のシートを作って毎回使えば良いか…と考えているのですが、どうもスマートな気がしません。 他に何か良い方法が思いつく方がいらっしゃいましたら、宜しくお願い致します。 ちなみにVBAは分かりません(^^;

  • 日付データから曜日算出について

    お世話になります。 エクセルで、A列に日付のデータが有り、B列に =A1  として、書式設定のユーザー定義で aaa として曜日をB列に 算出しようとしましたが、うまくいきません。 うまくいかない理由は、日付データの頭に ' が入っている 為です。LEFT関数で抽出してから、コピーして値貼り付け しても ’ は消えません。一セルづつ ’をデリートすれば 消えますが、4万行ほどあり、とてもやってられません。 いい方法ないでしょうか。 お教え頂きたく宜しくお願い致します。

  • Excelでお尋ねしたい事があります。

    エクセルのデータを下記のようにするのに 良い方法があれば教えて下さい。    A   B         A   B   C   D  1 AAA 100      1 AAA 100 101 102 2 AAA 101  ⇒   2 BBB 100 101 102 3 AAA 102      3 CCC 100 101 102 4 BBB 100      5 BBB 101 6 BBB 102 7 CCC 100 8 CCC 101 9 CCC 102 A列にある同一のデータを一行にして B列のデータを一行にした列に持っていく作業です。 現在は、A列にある同一データのB列をコピー。 行列を入れ替えて貼り付け。 B列が空いた所を行事削除しています。 このデータが何千とありまして… 延々とコピー、貼り付け、削除。 をしています。 何か良い方法があれば教えて下さい。 よろしくお願いします。

  • エクセルVBA 日付の評価、大小を比べるには

    エクセルのセルに日付データーが入っています。 その値を取得して、他のセルに入っている日付と比べたいのですが、 日付データをどの形に変換して比べればいいか分かりません。 ___|_____A_________|_____B___________|______C_____ 1_|_2007/6/1__|__2007/7/1__|____________ 2_|_2007/7/1__|__2007/7/23_|____________ 例えば上の表があったとして、A列とB列にある日付を比べて、大きい 方をC列に記入するということをVBAでしようとするとき、セルに入って いるデーター形式をどの形に変換して評価すればいいでしょうか? 日付データーをシリアル値に変換する方法とかあるのでしょうか? どなたか教えていただけないでしょうか?

  • エクセルに貼り付けると日付表示に変化してしまう

    ネット上のある表をコピーして、 それをエクセルに貼り付けると、日付表示に変化してしまう文字列があります。 例えば8-14が8月14日、3-2-8が2003/2/8となります。 形式を選択して貼り付けを選ぶと、HTML、UNICODEテキスト、テキストの3つが表示されどれを選んでも思うようになりません。 何か方法はありますか?

  • エクセルの「値の貼り付け」ボタンについて

    こんにちは いつもお世話になっています。  エクセルのテキスト形式での貼り付けについて教えてください。 ツールバーに「値の貼り付け」のボタンを作ってあります。エクセルで文字列が入ったセルをコピーして、別のセル上で「値の貼り付け」ボタンを押すと正常に効きます。  しかし、たとえばIEで文字列をコピーしてエクセル上で「値の貼り付け」ボタンを押しても何も反応がありません。編集-「形式を選択して貼り付け」でテキスト形式を選ぶと正常にテキスト形式で貼り付けされます。  HTMLデータではボタンが効かないということなのでしょうか。それとも、固有のトラブルでしょうか。原因、対策を教えてください。

  • Excelの日付の入力について

    A列のセルにずらっと 2011/11/29といった感じで日付の入力をしています。 セルの書式設定で 2011年11月29日 と表示されるようにしています。 これらのデータを表示されている通り B列に貼り付けをすることは可能でしょうか? 貼り付けをしてB列のセルの書式設定で 表示方法の選択をすればいいのすが それでは見せ方を変えているだけなので 出来れば 2011/11/29を 2011年11月29日という文字列のデータにして 貼り付けという作業がしたいです。 詳しい方、お願いします。

  • エクセルの""の削除方法を教えてください。

    エクセルの""の削除方法を教えてください。 エクセルのB列に、関数で=IF(A1=2,"おはよう","") A列に沢山入力されており、A列に2がないため "おはよう"ではなく、""が沢山あります。 A列の結果を、C列に値でコピー&ペーストしているのですが、 C列に入っている""を一度に削除にはどうしたら良いでしょうか。 教えてください。

専門家に質問してみよう