• ベストアンサー

Excelでの文字の置き換え方法

Excelで、各セルが次のような状態であったとします。 ・一部のセルには、年月日が入力されている(表示形式の分類は「日付」) ・入力されていないセルは空欄だが、表示形式の分類は「日付」である この状態で、年月日が入力されているセルのみ「○」で置き換えし、空欄のセルはそのままにしたいのです(つまり、何かが入力されているセルのみ置き換えしたい)。 しかし、年月日が入力されているセルと空欄のセルが、各列で不規則に混ざっているために、一気に置き換えしようとすると、全部のセルが「○」に置き換えられてしまうのです。 何かが入力されているセルのみ、一気に「○」に置き換える方法はないでしょうか? いくら調べてもわかりませんでした。みなさんのアドバイスをお待ちしています。m(__)m

  • amary
  • お礼率72% (90/124)

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

  • ベストアンサー
回答No.1

1度限りでいいのなら、以下の方法を試してみてはいかがでしょう。 1.時間の入っている範囲を空白も含めて選択する 2.編集→ジャンプで開いたダイアログでセル選択をクリック 3.選択の所で、数式 数値だけを選択してOK  これで年月日の入ったセルだけが選択されます。 4.数式バーに ○ と入力し Ctrl + Enter を同時押し これで数字の入っているセルが全て○に置き換わります。 元のデータを残しておきたいのであれば・・ 元データのシートのデータ範囲を全てコピー(見出し等の文字列の 部分も含む)新しいシートで右クリック→形式を選択して貼り付け →リンク貼付けを選んで下さい。 日付部分を選択すると、数式バーに =Sheet1!$A$1などとシート名と セルが表示されていると思いますので、それを下の関数に書き換えて 日付部分にオートフィルでコピーすれば○が表示されます。 =IF(Sheet1!A1<>"","○","") ↑かならず $は取ってください。

amary
質問者

お礼

教えていただいた方法で解決しました! どうも有難うございました。m(__)m

その他の回答 (2)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

マクロで考えて見ました。 ※まずはバックアップを取ってからお試しください。 標準モジュールに以下をコピペして、マクロの実行。 Sub test() Dim r As Range 'Debug.Print ActiveSheet.UsedRange.Count For Each r In ActiveSheet.UsedRange   Debug.Print r.Address, r.Value, r.NumberFormatLocal, IsDate(r.Value)   'If r.NumberFormatLocal="yyyy/m/d" And r.Value <> "" Then   If IsDate(r.Value) Then     r.Value = "○" & Format(r.Value, "yyyy/mm/dd")   End If Next End Sub 検証の為、日付の前に○を入れるようにしています。 OK なら     r.Value = "○" & Format(r.Value, "yyyy/mm/dd") を     r.Value = "○" '& Format(r.Value, "yyyy/mm/dd") にして本番で行ってみて下さい。 ※詳しく検証したわけではないので、間違いないと確信するまでは バックアップは残しておいた方が良さそうです。

amary
質問者

お礼

今回は別の方法で解決しましたが、マクロも試してみる価値はありそうですね。有難うございます。m(__)m

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

多分VBAでないと無理でしょう。 日付書式のセルは検索ー書式ー日付で検索できるようですが、日付値が入っているセルと、日付書式だけの空白セルが区別できない。 日付の入ったセルもセルの値(関数式で問題にするものは値)で言えば日付シリアル値という整数ですし。

amary
質問者

お礼

何とか、「ジャンプ」と「置換」を組み合わせる方法で解決しました。有難うございます。m(__)m

関連するQ&A

  • エクセルの文字の置き換えについて

    エクセルの置き換えについて セルに「1」と入力すると、○「まる」に、入力されないセルは空欄のままにしておく方法を教えてください。 よろしくお願いします。基本tきなことですみません。

  • エクセル 置き換えのあとその文字を他シートに

    エクセルの置き換えについて質問させていただきます。 セルに「1」と入力すると「○」になり、何も入力しないと空欄になる幼にしたいとおいます。 教えていただいたとおり [=1]"○","" と入力すると上記のようになるのですが、その結果をほかのシートに IF関数を使い =IF(行動1!$U9="","",行動1!$U9)と入力すると ○ ではなく 1 で返ってきてしまいます。いい方法があれば教えてください。

  • エクセル 文字列になっている日付を日付データにしたい

    エクセル2002を使用しています。 他のシステムからCSV形式で出力されたデータの日付(生年月日)が、ほとんどは文字列(テキスト型)で、一部日付データになっています。 表示は、昭和50年1月12日という具合になっています。 これを、文字列も全て日付データ(そのセルを選択した場合、セルでは元号表示でも、数式バーでは1985/1/12というように西暦で表示)になるようにはできるでしょうか。 隣に作業列を設けても良いと思っています。 データは、約300件(300人)分あります。 たまに日付データとして登録されている者の理由は不明ですが、元のシステムの登録時に西暦で生年月日登録したのかもしれません。 よろしくお願いします。

  • Excel入力規則

    Excelの入力規則で、特定のセルに 日付形式 あるいは  ( からはじまる文字列 に入力を制限することは可能でしょうか? よろしくお願いします。

  • Excel VBA セルの指定方法について

    Excell2013です。 次のような表(一部)があります。   日   項目      額       分類   12 ノート 250 3 この、250を、別表の分類3の列(H列)の12日の行(15行)のセルに、そこにすでに値があれば250との合計値として入力したいのです。 データによって日付も分類も違いますので、マクロで自動的に入力したいのですが、どうもよくわかりません。 このような場合のVBAでの入力先セルの指定のしかたをどうすればよいのかどなたかご教示ください。

  • Excel2007で正規表現置き換え

    Excel2007で正規表現を利用して文字列を置き換えしたいと考えています。 Office2003系列のExcelではそういうアドインがあったようです。 (使ったことはないので、どのバージョンまで使えるとかは知らないですが) http://srcedit.pekori.jp/tool/excelre.html 上記のアドインはExcel2007でも使えるのでしょうか? また使えないのでしたら、それに変わるような2007用のアドインがあるのでしょうか? 置き換えしたいデータは以下のようなものです。 1.日付が数字8桁で”文字列として認識されて”入力されている。   例)20080430 2.それを”/”で区切って日付の形式にしたい。   例)2008/04/30 現在は以下のような方法で同じ事を行っています。 A.8桁で入っている列をすべて選択し、形式を数値に変え、コピーしメモ帳に貼り付けます。 B.メモ帳からExcelの同じ選択している列にそのまま貼り付けます。これで数値として認識されます。 C.今度は表示形式を「####"/"##"/"##」とし、数値をスラッシュで区切ります。 D.それをさらにコピーし、メモ帳に貼り付けます。スラッシュ付きの数字として張り付きます。 E.それをコピーし、同じ選択している列に貼り付けます。 F.数値形式のところにスラッシュ区切りのデータを入力したので形式を日付に変更します。 というようなことをしています。 これでもできるのですが、これ以外にも色々と正規表現を利用して置き換えしたいことが出てきた場合はそちらを利用したいので、もしあればお願いします。

  • エクセルの表示形式(日付→文字)

    エクセルで、2002/12/1のような日付が大量に入っている列があります。 そのセルの表示形式は、現在日付になっているのですが、 文字列に変更する必要が出てきました。 しかし、表示形式を文字列に変更すると、37591のような数字になってしまうセルと、2002/12/1のままのセルが出てきてしまいます。 表示形式を文字列に変えてもすべてのセルが2002/12/1のようになる方法はないでしょうか、よろしくお願いいたします。

  • EXCELの関数でこんな事できますか?

    表示形式が日付で入力されていて、たとえばあるセルに2012年6月29日の形式で入力されている場合隣のセルに2012/6と自動的に月までの表示に文字列形式で入力する関数、あるいは関数の組み合わせがあれば教えていただきたいのですが。      2012年6月29日→2012/6          日付形式    文字列   

  • エクセル・文字列で保存されているデータを日付にしたい

    人からもらったデータです。 日付が文字列で保存されていて20060322という書き方で沢山入力されている列があります。 2006/03/22の表示に変更したいです。 列を指定して書式、セル、表示形式、日付、種類で変更してみようとしましたが、できませんでした。 そういえば、テキストデータを読み込む時、表示形式を指定し忘れて勝手に日付になってしまった文字列(数なのですが)を、後で文字列にするとおかしな数になってしまったことがありました。。。 保存されている表示形式を上手に変更する方法はありますでしょうか? 教えてください。

  • エクセルの日付で/が表示されません

    エクセルのシートに日付を2002/08/01という形式で入力したいのですが、 うまくいきません。 セルの書式設定で表示形式を日付にして、種類の欄を見てみても、 本来2002/08/01等と表示されてる筈の種類が、2002 8 1 のような[/]が 無い形式で表されており、実際にセルに日付を入力しても、[/]が表示 されません。 他の種類に変更する(例えば、年月日形式等)と、問題なく表示されます。 原因および改善策をご存じの方、教えてください。

専門家に質問してみよう