• ベストアンサー

Excelの空文字セルの削除方法を教えてください

別のシートでIf文を使い計算しています。 =IF(条件式,"",表示文字) 計算した結果をシートに値のみで貼り付けをしています。 Ctrl + 矢印で値が表示されているセルへ飛ぼうとしても空白のセルが値が入っていると認識され表示されているセルへ飛べません。 手動で一つ一つ空文字を削除すると表示されているセルへ飛ぶことが出来ます。 自動で空文字を削除するにはどうしたらいいのでしょうか? Excelは2000を使用しています。

  • WDY
  • お礼率85% (188/219)

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

「長さ 0 の文字列」 ですね。 こいつはほんと厄介です。 対応には、Excel の標準の機能である、「検索と置換」 を使用しますが、一度では終わりません。 最初に 全く何入力されていないセルも含めて、空白に見えるセルを特定の文字列に置換します。 次に 「特定の文字列」を空白に置換します。 手順は以下の通り。 まず、対象範囲を選択します。 1.空白に見えるセルを 「削除予定」 の文字列に置換 メニューバーから、「編集」-「置換」 を選択し、「検索と置換」 ボックスを表示します。 「置換」 タブの、「検索する文字列」 欄の中をからにして、 「Delete」 を押します。 「検索する文字列」 欄にはそのまま何も入力せずに、その下の 「置換後の文字列」 欄に、「削除予定」 と入力し、「全て置換」 を押します。 別に、「削除予定」 で無くても構いません。 そのワークシートに 絶対存在しない単語 であれば何でも OK です。 2.「削除予定」 の文字列を空白に置換 再度、メニューバーから、「編集」-「置換」 を選択し、「検索と置換」 ボックスを表示します。 今度は、「検索する文字列」 欄に、「削除予定」 の文字列を入力します。 もし、1回目の処理で、「削除予定」 以外の文字列に置換していた場合は、そこで使用した文字列を入力してください。 その下の、「置換後の文字列」 欄の中をからにして、 「Delete」 を押します。 「セル内容が完全に同一であるものを検索する」 にチェックを入れてから、「全て置換」 ボタンを押します。 これで消えるはずです。

WDY
質問者

お礼

なるほど一度使用していない文字に変換して再度置き換えるんですね。 であれば別シートで計算しているIF文に置換え用文字列を入れておいた方が 置換えの手間が1つ減りますね。 ありがとうございます。

その他の回答 (5)

回答No.6

VBA勉強がてら挑戦してみました。 tom04さんとxls88さんのいいとこどりで、数式を入力した後でも対応できるように Sub test3()     ActiveSheet.UsedRange.Formula = ActiveSheet.UsedRange.Formula End Sub ただし、配列数式の確定をしている場合(数式が{ }で囲まれている) Sub 配列数式の確定をしている場合はこちら()    Dim c As Range    For Each c In ActiveSheet.UsedRange       If c.Formula = "" Then          c.ClearContents       End If    Next c End Sub

  • xls88
  • ベストアンサー率56% (669/1189)
回答No.5

VBAの例です。 下記コードを試してください。 対象セル範囲を選択しておいて With Selection .Value = .Value End With 対象セル範囲を記述するなら With Range("A1:A50") .Value = .Value End With

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! VBAでの方法になってしまいますが・・・ 形式を選択して貼り付けたSheet見出し上で右クリック → コードの表示 → 白い画面が出ますので ↓のコードをコピー&ペーストしてマクロを実行してみてください。 Sub test() Dim c As Range For Each c In ActiveSheet.UsedRange If c = "" Then c.ClearContents End If Next c End Sub これで何とか希望に近い形にならないでしょうか? 以上、参考になれば良いのですが・・・m(__)m

WDY
質問者

お礼

書き込みありがとうございます。 VBAですか 繰返し空文字を削除を行うのもいいのですが 指定箇所を消すだけでVBAを使う事もないと考えてました。 毎回使うし・・・う~ん 自分以外の人が使う場合、VBAが分からない人がいるので今回はmerlionXXさんの方法を取ってみたいと思います。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

空白文字列を空白セルに一括変換するなら、その列を選択して「データ」「区切り位置」で「完了」してください。

WDY
質問者

お礼

なんと!こんな方法があったとは 今回の場合は複数列ある為、この方法だと数回繰返し行わなくてはならなくなります。 前提条件が不足していて申し訳ございません。 勉強になりました、次回1列のみの場合はこの方法をとってみたいと思います。

noname#164823
noname#164823
回答No.1

F5でジャンプ画面が出るので、「セル選択」をクリック。 「空白セル」、OKで、空白セルが選択されます。「削除」 F5→Alt+S→K→エンター。の順で、どうでしょう。

WDY
質問者

お礼

書き込みありがとうございます。 さっそく試してみましたが 空白では認識しませんでした。 おそらく空文字として認識されています。

関連するQ&A

  • セルが空になる値を返す関数

    エクセルでの質問です。 セルが空になるような値を返す関数はあるのでしょうか。 例えば、以下のような処理で""とすれば、空文字が入るようなのですが、完全に空白セルにはならないようです。   =IF(C1<1,C1,"") もし条件にあわなければ、グラフでプロットしないようにしたいためです。(空白セルをプロットしない) すみませんが、分かる方、教えてください。

  • 空白セルを空セルに置き換える方法(エクセル)

     Excelで、空白に見えるセルを、空のセルに置き換える簡単な方法を教えてください。  長さ0の文字列扱いである「""」のセルが多数散在してます。これを数値扱いの空セルに置き換えたいのです。一つひとつDelキーを押したのでは手間がかかります。  「エクセル 空白 削除」などの検索では同じ質問はみつかりませんでした。

  • エクセルで空白セル”” と未入力セルの違い

    関数で セルA1 に=if(B1=0,"","入力済") としました。 セルの選択を素早くするためにショートカットキー「Ctrl+↓」を 利用しています。 通常の未入力空白セルは上記のショートカットで飛ばされて選択 されません。 これに対して上記関数で ""  として入力されたものを コピーして値だけを貼り付けたとしても 上記ショートカットキーで飛ばされず選択されてしまいます。 見た目は 全く同じ 空白セルです。(関数も値貼り付けをしているので消えています。) 未入力の空白セルと 関数で""と入力されて値貼り付けを受けたセルではどこが違うのでしょうか。 また、未入力の空白セルに 戻すには関数でどのように入力させればいいのでしょうか。もちろんDeleteKeyを使って未入力の空白セルに 戻るのですがそれではショートカットキーでとばせるメリットがなくなります。関数で大量に処理したいのです。 おわかりの方お教えください。

  • エクセルとセルの比較について

    エクセルとセルの比較について エクセル2007で二枚のシートを以下のように作成しました。 シート1   A 1   ←全くの未入力の空白セルです 2 3 シート2   A 1   ←未入力で空白セルですが、数式(if関数とISERROR関数)が入っています。 2 3 ここでしたい処理は、二枚のシートをIF関数で調べて正誤チェックをして、相違するセルに×を表示したいです。 ただ、A1セルに  if(シート1A1=シート2A1,"","×")  の数式をいれると、両者は違うセルとして認識してしまいます。 同じ空白セルなのにどうしてでしょうか。 また、この二つのセルはともに空白なので、同じものとして処理する方法はあるのでしょうか。 お願いします。

  • エクセルのグラフについて

    Excel2000のグラフについて教えていただきたいのですが 有るセルの数字から、別のセルへ計算で値を作りその値でグラフを作ろうとしているのですが。 何も入っていないセルは何も入っていないように、たとえば if(a1="","",a1*3) の様に式を入れたのですが。グラフにするとこの空白セルと0と認識しているようです。 x軸に一杯ポイントがうたれます。 グラフにこの空白セルを表示しないようにするにはどうしたらよろしいでしょうか。 空白セルを削除するとうまく行くのですが、いっぱいあって面倒なので何かいい方法がないか探しております。 よろしくお願いいたします。

  • エクセルvbaでのセルの情報を貼り付け方法

    vba初心者です。sheet1にあるセルの情報をsheet2にあるセルに貼り付けようと考えています。 下記のようにプログラムしました。 If Cells(Line, 6).Value = "" Then Cells(Line, 6).Value = "データがありません" Cells(Line, 5).Value GoTo コピー貼り付け End If コピー貼り付け: Cells(Line, 5).Copy 'コピーする Worksheets("輸入Parts").Range("A2").PasteSpecial Paste:=xlPasteValues '値を貼り付け 問題はコーピー貼り付けの箇所でRange("A2")ではなくA列の最初の空白のセルに貼り付けるようにしたいです。 どなたかお力をお貸しください。

  • エクセルで不要なセルが削除できません。

    お世話になります。 XPでExcel97です。文字だけのデータを引き継いだのですが、容量がとても大きい(3.5MB)ので調べたところ、A1からN100のセルまでしか入力されていないのに、Ctrl+EndでN2954のセルに飛びます。 不要な行を削除しても変わりません。同様のシートが40ほどあります。 原因と対策を教えてください。よろしくお願いします。

  • エクセルでセルの先頭4文字から特定の値を表示

    宜しくお願いします。 タイトルのとおりですが、例を書きます。 A列に「1234-XXXXXX」と「5678-XXXXXX」(Xはランダムな数字)と空白セルが並んでいるとき、 D列に先頭の4文字が ・「1234」の場合「山」 ・「5678」の場合「川」 ・空白かその他の値の場合セル背景色を赤 ・空白セルに「1234-XXXXXX」や「5678-XXXXXX」を入力したら、背景色をなくし「山」「川」それぞれの値 と表示したいと考えています。 毎日シートをコピーして値はクリアし、さらにデータは その他のシートから行コピーし値貼り付けするので、 関数などの数式等だと消えてしまい、その都度式を コピー&ペーストしなければならないので、 できればセルに式入力する以外(マクロ?入力規則?) の方法ご教授いただけると助かります。 長く分かりづらいところがありましたら申し訳ございません。 宜しくお願い致します。

  • Excelで"0"を空白に変換する方法

    各セルにはある金額が入力されています。 同時に残高の無いセルは"0"が入力されています。 次に、このシートを別シートにコピーする時、"0"を"空白"にする必要があります。 そこで、IF関数『=IF(A1>0,A1,"")』(A1の場合)を使って別シートに展開しました。 その後、コピー&形式を選択して貼付け(値)処理をしています。 これで、見た目は"0"を空白にする事ができましたが、完全な空白にはなっておらず、空白をチェックする関数ではFalseが表示されます。 完全に空白になる方法を教えて頂けませんでしょうか? ※なお、CSVに変換する方法では出来たのですが、出来ればそれ以外で簡単に出来る方法をお願いいたします。

  • Excel 隣接しない列に一発で値貼り付け

    Excel 隣接しない列に一発で値貼り付け 隣接する列に表示されたデータを、同じシートの隣接しない列に一発で値の貼り付けがしたいのですが、可能でしょうか?   A     B     C    D    E         1 チェック タイトル 名前1  名前2 説明 2 ○    野菜   人参   牛蒡  これは根菜類 3 ○          胡瓜       うり科の野菜です 4 5 ○    果物   バナナ  柿   暖色系の色です   G       H         I     J           K     …… 1 計算式   B列を値貼り付け 計算式   C列を値貼り付け  計算式  …… ■A列  :C列に文字入力がある場合「○」が表示されます     {=IF(OR($C1>""),"○","")} ■B-E列:他のシートの任意のセルの値をコピー     {=IF(ISERROR(INDIRECT("'シート名'!セル")),"",INDIRECT("'シート名'!セル"))} *C列の空白の場合は全ての列が空白である(A列の式はそのため) *C列に文字がある場合のB、D、E列の空白には意味がある。 *コピーではなく値の貼り付けを行いたい。 *貼り付け左記の列は飛び飛びである。 *行の長さは可変する。 今までは、A列を「オートフィルタ」で「○」のみ表示させ、B-E列を1列づつH、J、L、N列へ貼り付けていました。マクロもいろいろ考えたのですが、初心者のため応用が出来ません。 関数でもマクロでも頑張ってトライしますのでお知恵を頂けますでしょうか。 PC環境:Win XP / Excel 2003

専門家に質問してみよう