• ベストアンサー

Excel 空白セルの掛け算で答えがエラー、0の違いについて

よろしくお願いします。 Excel2002で作った表をExcel2003で開いて修正しています。 2つのセルを掛け合わせる計算のセルをオートフィルすると、掛けるデータのない行では#VALUE!のエラーになりました。 ここで空白データのセルでDeleteを叩いてみたところエラーが0に変わりました。 試しに関係のないセルで空白セル同士の掛け算をやってみると答えが0になりました。 エラーが出る場合と、0になる場合の違いは何でしょうか? どうかよろしくお願いします。

noname#13076
noname#13076

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 No.1の方の指摘のようにスペースが入っている場合もありますが、何も文字(スペースも含めて)が入っていないのにエラーになる場合もあります。 例えば、セルA1に「=""」と入力します。 次に、A1をコピーして、A2を選択して、右クリックの[形式を選択して貼り付け]で[値]にチェックして[OK]します。 (念のためA3を選択して、[Delete]しておいて下さい。) これで、B1に、「=A1*1」と入力してA3までコピーします。 A1とA2がエラーになると思います。 このA2には、言わば「長さ0の文字列」が入っていることになります。 この「長さ0の文字列」は、別のアプリやWEB上からのコピペでも入ることがあります。 で、文字列を計算に使うとエラーになります。 一方A3は、「未使用・未入力」という状態です。 ブックやシートを新規作成した直後と同じで、Excelでは計算する際は「0」に変換されます。 で、「長さ0の文字列」と「未使用・未入力」は見た目でもい、数式バー上でも見分けは付きません。 もちろん、エラーになったら[Delete]してやればいいですが、最初から数式で対応することも出来ます。 仮に、元の数式が、 =A1*B1 としたら、これを、 =N(A1)*N(B1) とします。 N関数は、A1やB1に文字列(長さ0の場合も含む)があると、「0」に変換してくれるので、エラーになりません。 それか、 =IF(COUNT(A1:B1)=2,A1*B1,"") のように、IF文で、両方に数値が入っていなければ「""」にするように分岐処理させる方法もあります。

noname#13076
質問者

お礼

「形式を選択して貼り付け」の「値」やりました!!! 空白セルは元々IF関数で「""」に分岐させていたセルでした。 確かに本当の空白セルと「""」のセルでは、計算結果に違いが現れることがありますね。 「""」は完全な空白ではなくて長さが0の文字列ということなのですね。 よく分かりました。すっきりしました。 ありがとうございました!!!

その他の回答 (1)

  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1

セルに入れたデータを消す場合等にスペースキーを使ってませんか? スペースキーで挿入した空白は「文字」ですので、「あ」「い」「う」なんかと同じです。 あ×3 でエラーになるのは当然ですね。

noname#13076
質問者

お礼

回答ありがとうございました。 セルにスペースなどが入っていないというのは確認したのですが、なぜかエラーになってしまうのです。 質問を書き込んだ後に今までの操作を色々考えたところ、問題の空白セルを含めた範囲を「形式を選択して貼り付け」の「値」で貼り付けをしていたのです。 これが関係ありそうな気がするのですが…。

関連するQ&A

  • Excelの空白セルを正しく認識しない

    数字と空白の入り交じった表Aと表Bのデータを加算して、新たに表Cを作ろうとしています。 普通に表Cのセルに、「表Aのセル」+「表Bのセル」を書き込めば良さそうなのですが、 一見すると空白に見える一部のセルを参照した式で#Valueのエラーが表示されてしまいます。 最初は、何か文字(空白記号など)が入っているのかと思い、調べたのですが、やはり、なにも入力されていないようです。 しかし、エラーとなっている式が参照しているセルでDeleteを押すと、エラーが解除されることは確認できています。 膨大なデータにランダムに数字が入っているので、 一個一個のセルをDeleteしていくのは非常に時間がかかるので、何かよい解決策をご存じの方がいらっしゃったら、知恵を貸してください。 ※ ちなみに、参照先になっている表は私が作った物ではなく、また0から作り直すことはできません…。

  • エクセルで空白セルを寄せたい

    エクセル2002使用です VBAは使わずに関数だけで空白セルがあるセルを詰めて表示したいのですが・・・   A|B|C|D|E|F|G 1 あ い う え お か き 2 ○   ○ ○   ○ の表を   A|B|C|D|E|F|G 1 あ う え か  2 ○ ○ ○ ○ のように表を書き換えたいのです。 1行目には必ず文字が入力されています。 2行目には入力されているセルと空白セルが不定期に入力されています。 2行目のセルが空白ならば、1行目のセルも削除して左へ詰めて 表を転記したいのです。 よろしくお願いします。

  • 空白セルのあるエクセル表の並び替え

    空白セルのあるエクセル表の並び替え エクセル2002を使用しています。 エクセルの表で空白セルがたくさんあるのですが、 並び替えをしようとすると、行全体ではなく、行の一部しか並び変わってくれません。 空白行も含めて、行全体を並び替えるようにする方法はありますでしょうか? 宜しくお願い致します。

  • エクセルの空白セルをのぞいて印刷するには?

    エクセルの表で、空白セル(空白行)がたくさんあります。 その空白のセルを表示せずに(詰めて)印刷したいのですが、そういうことは可能でしょうか? 削除せず、印刷するときだけ、表示しないようにしたいのですが・・・・

  • エクセルの空白セルの選択

    こんにちは いつもお世話になっています。  エクセルの空白セルの選択について教えてください。 A列、B列にデータがあります。それぞれの列で空白セルがありますが、同じ行で両列ともに空白のセルだけを選択する方法を教えてください。  単に「ジャンプ」から空白セルを選択すると片方にデータがある行のセルも選択してしまいます。片方にデータのある行は残し、両列ともに空白の行を削除したのです。  よろしくお願いします。

  • excelで、特定のセルに文字を入力させないためには?

    excel2003を使用しているのですが、 一段おきに空白セルをおいて、わかりやすく分離しています。 しかし、データの置き換えのときにいっぺんにオートフィルをしているので、 本来空白のセルにも、div/0みたいなエラーがいっぱい表示されてしまいます。 これ、オートフィルしてもへんなエラー文字でずに空白のままにする設定できないでしょうか?おおしえください

  • セルの空白について

    質問失礼します。 エクセルで数式などを使い表示しているデータをコピーして。 条件付貼り付けで数値だけを取り出しました。 ここまではよかったのですが、新しく数値だけを取り出したデータに、新規に数式をあてはめようとしたら、空白のセルを認識せずエラーがでてしまいます。 適応させたい数式の関係する空白のセルに、マウスをあわせて、一度Deleteやバックスペースなどを押すと、空白セルとして認識してくれます。 現在の数式で認識しない空白セルを、数式で認識できる空白セルに置き換える方法などあるでしょうか?または、認識しない空白セルを認識させる方法はあるでしょうか? データの提出期限もせまっており焦っております。 どなたか教えてください。よろしくお願いします。

  • エクセルの空白の種類?

    エクセルで入力フォームを作成し、一覧に登録していくといったツールを作成しています。 その際、フォームから空白欄を選択した場合と、セル上でデータをdeleteした場合に、 空白欄の並び替えの結果が異なってきました。 フォーム:昇順にすると空白欄が上にくる セル上:昇順にすると空白欄が下にくる フォームの選択元は別シートにリストをもっています。 空白行はなにも入っていない行を指定してあります。 なぜdeleteした場合と結果か異なるのでしょうか。

  • 空白のセルを行削除する。EXCELマクロなのですが・・

    VBA初心者です。 データーをHPから、単純にコピーしてきて、 EXCELに貼り付けています。 フィルターをかけても、画像かなにかがセルに張り付いているのか、 空白行をすべて削除できません。 いろいろ試して(HPから、空白セルの行削除について書かれてあるマクロを貼り付けて)動いたのが、このVBAです。 しかし、遅いので、早いVBAに簡略できればいいのですが。。 大体、1000行ぐらいの文字を貼り付けて、3/1ぐらいが空白行です。A行のセルの空白のみを、削除したいのですが。  まったくの素人なので、わかりません。 どうかよろしくお願いいたします。 Sub 空白の削除() x% = Worksheets("sheet1").Range("A65536").End(xlUp).Row For i = x% To 1 Step -1 If Worksheets("sheet1").Cells(i, 1).Value = "" Then Worksheets("sheet1").Rows(i).Delete Next End Sub

  • エクセルの掛け算

    当方、エクセル初心者です。色々と調べてみたのですが、望む回答を得られませんでした。宜しくお願いします。 セルC1にA1・B1セルの積を求めるには、=A1*B1 となります。 この掛け算を =A2*B2(C3の答え) =A3*B3(C3の答え) ・・・続く・・と何十行にも渡る掛け算を、一度で設定する方法はどのようにしたらいいのでしょうか? 一度に複数の列、行の合計(足し算)を求めるには、合計範囲を選択(ドラッグ)して、オートSUMボタンをクリックすると、一発で合計値を求める事が出来ますが、掛け算の場合にはこういった操作は出来ないのでしょうか?

専門家に質問してみよう