ママのスキンケアのお悩みにおすすめアイテム

別のシートでIf文を使い計算しています。
=IF(条件式,"",表示文字)
計算した結果をシートに値のみで貼り付けをしています。

Ctrl + 矢印で値が表示されているセルへ飛ぼうとしても空白のセルが値が入っていると認識され表示されているセルへ飛べません。

手動で一つ一つ空文字を削除すると表示されているセルへ飛ぶことが出来ます。

自動で空文字を削除するにはどうしたらいいのでしょうか?

Excelは2000を使用しています。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

「長さ 0 の文字列」 ですね。


こいつはほんと厄介です。
対応には、Excel の標準の機能である、「検索と置換」 を使用しますが、一度では終わりません。
最初に 全く何入力されていないセルも含めて、空白に見えるセルを特定の文字列に置換します。
次に 「特定の文字列」を空白に置換します。

手順は以下の通り。

まず、対象範囲を選択します。

1.空白に見えるセルを 「削除予定」 の文字列に置換
メニューバーから、「編集」-「置換」 を選択し、「検索と置換」 ボックスを表示します。
「置換」 タブの、「検索する文字列」 欄の中をからにして、 「Delete」 を押します。
「検索する文字列」 欄にはそのまま何も入力せずに、その下の 「置換後の文字列」 欄に、「削除予定」 と入力し、「全て置換」 を押します。
別に、「削除予定」 で無くても構いません。 そのワークシートに 絶対存在しない単語 であれば何でも OK です。

2.「削除予定」 の文字列を空白に置換
再度、メニューバーから、「編集」-「置換」 を選択し、「検索と置換」 ボックスを表示します。
今度は、「検索する文字列」 欄に、「削除予定」 の文字列を入力します。
もし、1回目の処理で、「削除予定」 以外の文字列に置換していた場合は、そこで使用した文字列を入力してください。
その下の、「置換後の文字列」 欄の中をからにして、 「Delete」 を押します。
「セル内容が完全に同一であるものを検索する」 にチェックを入れてから、「全て置換」 ボタンを押します。

これで消えるはずです。
    • good
    • 5
この回答へのお礼

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

ありがとうございます。

お礼日時:2010/11/11 08:30

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
    • good
    • 0

VBAの例です。


下記コードを試してください。

対象セル範囲を選択しておいて
With Selection
.Value = .Value
End With

対象セル範囲を記述するなら
With Range("A1:A50")
.Value = .Value
End With
    • good
    • 2

こんばんは!


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
    • good
    • 1
この回答へのお礼

書き込みありがとうございます。
VBAですか
繰返し空文字を削除を行うのもいいのですが
指定箇所を消すだけでVBAを使う事もないと考えてました。

毎回使うし・・・う~ん
自分以外の人が使う場合、VBAが分からない人がいるので今回はmerlionXXさんの方法を取ってみたいと思います。

お礼日時:2010/11/11 08:53

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

    • good
    • 1
この回答へのお礼

なんと!こんな方法があったとは

今回の場合は複数列ある為、この方法だと数回繰返し行わなくてはならなくなります。

前提条件が不足していて申し訳ございません。

勉強になりました、次回1列のみの場合はこの方法をとってみたいと思います。

お礼日時:2010/11/11 08:38

F5でジャンプ画面が出るので、「セル選択」をクリック。


「空白セル」、OKで、空白セルが選択されます。「削除」

F5→Alt+S→K→エンター。の順で、どうでしょう。
    • good
    • 0
この回答へのお礼

書き込みありがとうございます。

さっそく試してみましたが
空白では認識しませんでした。
おそらく空文字として認識されています。

お礼日時:2010/11/10 16:56

このQ&Aに関連する人気のQ&A

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

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

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

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

Aベストアンサー

>未入力の空白セルと 関数で""と入力されて値貼り付けを受けたセルではどこが違うのでしょうか。

未入力の空白セルは「ISBLANK関数」で「真」を返します。

一方、値としての""が貼り付けられたセルは「ISBLANK関数」で「偽」を返します。

>また、未入力の空白セルに 戻すには関数でどのように入力させればいいのでしょうか。
不可能です。「式」は「値」を返すので「空白セル」と言う「状態」を返す事は出来ません。

>もちろんDeleteKeyを使って未入力の空白セルに
>戻るのですがそれではショートカットキーでとばせるメリットがなくなります。関数で大量に処理したいのです。

つまり「セルを1つづつ選択してDeleteキーで1つづつ空白セルに戻すのが面倒」なので「全部を一気に空白セルに戻す良い方法は無いか?」と言う事ですね?

だったら簡単です。

すべての式を
=if(B1=0,"","入力済")
ではなく
=if(B1=0,1/0,"入力済")
にしておきましょう。

すると、未入力の所は、空白("")にならず「#DIV/0!」になります。

そう表示されたら、シート全体を選択し「CTRL+G」を押して「ジャンプ」を出します。

「ジャンプ」のダイアログが出たら「セル選択」を押し、セル選択のダイアログを出します。

セル選択のダイアログが出たら「数式」を選び、その下のチェックは「エラー値」だけにします。

「OK」を押してダイアログを閉じると「#DIV/0!」の表示になったセルのみが選択状態になります。

「#DIV/0!」の表示になったセルのみが選択状態になったら、Deleteキーを押して、それらのセルを一気に「空白セル」にして下さい。

もちろん、大量にあっても、手順は変わりません。

>未入力の空白セルと 関数で""と入力されて値貼り付けを受けたセルではどこが違うのでしょうか。

未入力の空白セルは「ISBLANK関数」で「真」を返します。

一方、値としての""が貼り付けられたセルは「ISBLANK関数」で「偽」を返します。

>また、未入力の空白セルに 戻すには関数でどのように入力させればいいのでしょうか。
不可能です。「式」は「値」を返すので「空白セル」と言う「状態」を返す事は出来ません。

>もちろんDeleteKeyを使って未入力の空白セルに
>戻るのですがそれではショ...続きを読む

QNullではない空白の一括削除

アクセスのテーブルをエクセルに貼り付けると、空白のようでも何か入っているようです。
countaでカウントすると一見空白でも、セルの数分カウントされます。
この空白を一挙に削除するにはどうしたらよいでしょうか。
よろしくお願いします。

Aベストアンサー

>ただ、行数が多いため回答No.2さんのようなやり方で一挙にできる方法はないモノでしょうか。

「行数」が多い場合でも、その列全体を選択して区切り位置処理すれば一括して空白文字列を削除できます。
補足の意味が「行数」ではなく「列数」ということなら、以下のような手順で空白文字列を一括削除することができます。

空白文字列が入った1つのセルを選択し、Ctrl+Cでコピーし、Ctrl+Fで検索ダイアログを出して、Ctrl+Vで空白文字列を貼り付けます。
次にAlt+Iで「すべて検索」して、Ctrl+Aで空白文字列のセルをすべて選択し、ダイアログを閉じてDeleteで空白文字列を削除します。

ショートカット操作を再度説明すると、Ctrl+C,F,V,Alt+I,Ctrl+Aでダイアログを閉じてDeleteの順に操作することになります。

Qcountaで空白セルもカウントされてしまう

エクセル2003で、counta関数を使って何かが入力されているセルの数を数えているのですが、
何も入力されていないセルまでカウントされてしまいます。

その何も入力されていないように見えるセルは、スペースもなにも入力されておらず、
そのセルの上でDelキーを押すと、そのセルはカウントされなくなります。
空白に見えるセルをDelキー押していけばいいのですが、空白に見えるセルが大量にあるので、1つ1つDelキーを押していくのは大変です。

空白に見えるセルをカウントしないようにする方法ありますでしょうか?

Aベストアンサー

式の結果が""を返す状態で値貼り付けなどをすると、そのセルは見た目空白ですが実は長さ0の文字列が入っていることになりCOUNTAで数えてしまいます。

式で数えるなら

=COUNTIF(範囲,"?*")

で数えるか(但し文字列データのみ。数値データが混じっているならCOUNT関数と併せて使う)、その対象列を選択し、データ→区切り位置→完了とすると空白セルに戻りますのでそれからCOUNTA関数を使って下さい。

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

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

 「エクセル 空白 削除」などの検索では同じ質問はみつかりませんでした。

Aベストアンサー

『""の長さゼロのセル』は、『'』が入力されたセルでしょうか。

これを消去する機能は思いつかないので作ってみました。


Alt+F11でVBE画面に移動し、挿入→標準モジュールで標準モジュールを挿入し、下記コードを貼り付けます。
シートに戻り、ツール→マクロ→マクロで下記マクロを実行します。

アクティブなシートの『'』をクリアします。


ここから

Sub stringO_Delete()
  Dim Rng As Range '// セル

  '// 使っている範囲
  ActiveSheet.Cells.SpecialCells(xlCellTypeConstants).Select

  For Each Rng In Selection
    If Len(Rng.Text) = 0 Then
      Rng.ClearContents
    End If
  Next

  Range("A1").Select
End Sub

QエクセルVBA 長さ0の文字列をNullに

エクセル2000です。
アクセスから出力されたデータをエクセルに貼り付けた場合、問題がおきることがあります。
調べてみたら、アクセスでは、同じ空白でも、レコードが作られてからまだ一回もデータが入っていない状態と、何かデータが入ったことはあるが、削除されて今は空白になった状態をそれぞれ「Null値」と、「長さ 0 の文字列」との 2 種類に区別しているようです。
そのためなのか、それをコピーしてくるとエクセル側でも何もデータが入ってないのに「空白」とはみなされないセルができてしまい、マクロの動きをおかしくしてしまうことがあります。(今日、マクロが想定しない動きをして、その原因がわからず往生しました)
やむをえず以下のようなマクロをつくりましたが、Usedrangeが広いとこれもけっこう時間がかかります。

Sub Null化() '長さ0の文字列をNullに
  With Application
    .ScreenUpdating = False
    .Calculation = xlCalculationManual
      For Each c In ActiveSheet.UsedRange
        If c.Value = "" And Not IsNull(c) Then
          c.ClearContents
        End If
      Next c
    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
  End With
End Sub

最初から、「長さ 0 の文字列」セルを一度に選択する方法があれば簡単なのですが、そのような方法はありますか?
あるいは他のもっとよい方法などがあればご教示くださいませ。
 (o。_。)oペコッ

エクセル2000です。
アクセスから出力されたデータをエクセルに貼り付けた場合、問題がおきることがあります。
調べてみたら、アクセスでは、同じ空白でも、レコードが作られてからまだ一回もデータが入っていない状態と、何かデータが入ったことはあるが、削除されて今は空白になった状態をそれぞれ「Null値」と、「長さ 0 の文字列」との 2 種類に区別しているようです。
そのためなのか、それをコピーしてくるとエクセル側でも何もデータが入ってないのに「空白」とはみなされないセルができてしまい、マク...続きを読む

Aベストアンサー

>それをコピーしてくると...
とは?どんな手順ですか?
もし単純なコピーペーストだったら、それを[形式を選択して貼り付け]-[テキスト]で貼り付けても一緒でしょうか?


いずれにしても『'長さ0の文字列をNullに』する処理の別案。

【A】
With ActiveSheet.UsedRange
  .Value = .Value
End With
(注意)
・データ範囲が多すぎると遅い。(もしくはメモリ不足エラーになる可能性も)
・1セル内文字列が1,824文字以上だと切り捨てられる。(2003の場合は912文字以上でエラー)
・セル表示形式が標準の場合、データによっては型が変わる。('0123が123に...表示形式設定が必要)

【B】
Dim x
With ActiveSheet.UsedRange
  For Each x In Array(1, 3, 6)
    .Columns(x).TextToColumns DataType:=xlDelimited, _
                 TextQualifier:=xlDoubleQuote, _
                 ConsecutiveDelimiter:=False, _
                 Tab:=False, _
                 Semicolon:=False, _
                 Comma:=False, _
                 Space:=False, _
                 Other:=False, _
                 FieldInfo:=Array(1, 2)
  Next
End With
列単位でTextToColumnsメソッドを使う。([データ]-[区切り位置]のことです)
必要な列のみ処理でき、引数FieldInfoでデータ形式も設定できます。

【C】
それと、別インスタンスでExcelを起動し、(Excel.exeを2つ起動する意味)
別エクセルに[形式を選択して貼り付け]-[テキスト]で貼り付ける事でも対処できるかと。
この場合1,824文字以上の切捨てはありません。(表示形式に留意必要)
必要であればマクロ対応もできるでしょう。

>それをコピーしてくると...
とは?どんな手順ですか?
もし単純なコピーペーストだったら、それを[形式を選択して貼り付け]-[テキスト]で貼り付けても一緒でしょうか?


いずれにしても『'長さ0の文字列をNullに』する処理の別案。

【A】
With ActiveSheet.UsedRange
  .Value = .Value
End With
(注意)
・データ範囲が多すぎると遅い。(もしくはメモリ不足エラーになる可能性も)
・1セル内文字列が1,824文字以上だと切り捨てられる。(2003の場合は912文字以上でエラー)
・セル表示形...続きを読む

QエクセルのIF関数で、文字が入力されていたならば~

エクセルのIF関数で文字が入力されていたならば~、という論理式を組み立てたいと思っています。

=IF(A1="『どんな文字でも』","",+B1-C1)

A1セルに『どんな文字でも』入っていたならば、空白に。
文字が入っていなければB1セルからC1セルを引く、という状態です。

この『どんな文字でも』の部分に何を入れればいいのか教えてください。

またIF関数以外でも同様のことができれば構いません。

宜しくお願いします。

Aベストアンサー

=IF(ISTEXT(A1),"",B1-C1)

でどうでしょうか?

Qエクセルで、条件に一致した行を別のセルに抜き出す方法

エクセルで、指定した条件に一致するセルを含む行をすべて抜き出す方法が知りたいです。

たとえば、

<A列> <B列> <C列>
7/1 りんご 100円
7/2 ぶどう 200円
7/2 すいか 300円
7/3 みかん 100円

このような表があって、100円を含む行をそのままの形で、
別のセル(同じシート内)に抜き出したいのですが。

7/1 りんご 100円
7/3 みかん 100円

抽出するだけならオートフィルターでもできますが、
抽出結果を自動的に、別の場所に、常に表示させておきたいのです。

初歩的な質問だと思いますが、検索しても分からなかったので、よろしくお願いします。

Aベストアンサー

同じ質問が結構よく出てますが、そんなに初歩的でもありません
別シートのA1セルに「100円」と入力し、そのシートの任意のセルに以下の式を貼り付けて下さい。後は、下方向、右方向にコピー。
日付のセル書式は「日付」形式に再設定してください

=IF(COUNTIF(Sheet1!$C:$C,$A$1)>=ROW(A1),INDEX(Sheet1!A:A,LARGE(INDEX((Sheet1!$C$1:$C$500=$A$1)*ROW(Sheet1!$C$1:$C$500),),COUNTIF(Sheet1!$C:$C,$A$1)-ROW(A1)+1)),"")

データ範囲は500行までとしていますが、必要に応じて変更して下さい

QExcel で見えないデータの存在

なんと表現しましょうか...
たとえば、8列40行のデータを入力したとします。
しかし印刷プレビューでは500ページもあると表示されます。
Ctrl + End でアクティブセルを移動すると、確かに13000行当たりにデータがあるフリをします。
その辺りを選択して削除するのですが、再び同じ所が最終行列だとジャンプします。
なぜこんなことが起きるのでしょうか?
いったい何が入っているのでしょう?
ファイルサイズも700KBと大きくなっております。
利用バージョンは2002ですが、98や2000でも経験しております。
本日は、何度やっても削除できなかったので質問させていただきました。
また検索しようにもしづらかったので、質問を投げてしまいました。よろしくお願いいたします。

Aベストアンサー

多分、オートシェイプのオブジェクト(図形、テキストボックス)の可能性がありますので、以下の方法で確認して下さい。

・編集→ジャンプ→セル選択→オブジェクトをチェックオン

オブジェクトが存在した場合、Delキーで一括削除して下さい。

QEXCEL VBA で現在開いているブックのファイル名を取得する方法

EXCEL2003 VBAで業務を簡素化するために、現在開いているブックのファイル名を取得する方法が分かりません。
作業手順をマクロを使って処理していますが、オリジナルのワークブックをファイル名を変えて保存し、以後、このワークブックを読み込んで使用しています。
このときのVBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり、以後の業務に使用できません。
常にファイル名を取得出来るVBAをどなたか、教えて下さい。

Aベストアンサー

>現在開いているブックのファイル名
 ちょっと曖昧な表現かなぁという気もいたしますが、VBAが書いてあるブックのブック名は
ThisWorkbook.Name
で、現在 "アクティブにして" 操作対象になっているブックの名前は
ActiveWorkbook.Name
ですね。

 しかし、
>VBAは、オリジナルのファイル名を使っているため、ファイル名を変更するとエラーになり
というような文脈からすると、
ThisWorkbook.Name
の方ですかね。

QExcelのアポストロフィーの削除

お尋ねします
AccessからExcelへデータをもってきたところ、文字データの前へ'(アポストロフィー)の記号がはいっていました。
500以上のデータがあるので、一括でこのアポストロフィーを削除する方法があれば教えていただきたいのですが…。
よろしくお願いいたします。

Aベストアンサー

#3,#5です。
一旦他のセルへ値のみ貼り付け(形式を選択して貼り付けとか右クリックでドラッグとか)、でいけます。
「他のセルへ」が必要なようです。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング