• ベストアンサー

EXCELで空のセルのある列を計算で使い場合(現状エラーとなる)

お世話になります。 ACCESSのDBから変換したEXCELのシートで、空のセルがある列を計算で使いたいのですが、式を作成しコピーすると空のセルの行はエラーとなります。 空のセルは0とみなすというような策で、エラーを回避したいのですがどうしたらいいでしょうか。

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

  • ベストアンサー
  • yomo3
  • ベストアンサー率32% (88/269)
回答No.7

お返事が遅くなってごめんなさい。 急ぎの仕事でバタバタしておりました。 わかりました、わかりました。 Accessには、空っぽと言っても、Empty(変数の初期状態、変数型なし)、Blank(単に空っぽ、変数型Valiant)、Null(長さ0のString)の3種類あるんですね。 で、Excelにはこの3種類の区別がないので、とりあえず、Nullが入ってしまいます。 で、Excelくんは、文字列が入っていると思うわけです。 これを回避するには、Access側で0を指定するか、Emptyを指定するかですが、出力用Queryで直接指定するのは両方とも結構面倒です。 カンタンなのは、一度出力用QueryをTableに保存して、更新クエリーでブランクフィールドをゼロにすればよろしいかと思います。

その他の回答 (6)

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

A1:A4を=SUM(A1:A4)で足すとき、A1からA4までにブランク、DElキーを押したセル、「あ」などの文字が入ったセルがあっても数字セルだけ足してくれますが。状況が判りません。

  • k-koz
  • ベストアンサー率25% (1/4)
回答No.5

エクセルシート上で、 編集 置換 検索する文字列に(全角スペース)をいれて すべて置換を押す。 次に(全角スペース)を(半角スペース)にいれかえて同じ作業をする。 するとシート内のスペースすべて取り去られてエラー式 が消えないでしょうか。 まとはずれだったらごめんなさい。

  • R34_666
  • ベストアンサー率25% (17/66)
回答No.4

私も何でエラーなのか気になる^_^; エラー内容が#VALUEだったらセルにスペースが入ってるのかも 除数エラーって訳では無いんですよね?(笑)

HiroBlue
質問者

補足

=+(I9/12)/(G9/39) I9には空のセルがあります。 エラー内容が#VALUEだったのでDELしてみたら正常に0と表示されました。

  • yomo3
  • ベストアンサー率32% (88/269)
回答No.3

まったくもって余計なお世話なのですが……。 「空のセル」と「空白のセル」は別のものです。 「空のセル」は本当に空っぽ。 「空白のセル」は空白が入っている。 空っぽのセルを調べるISBLANKという関数があります。 でも、空っぽのセルにif(A1="",~,~)とやっても、if(A1=0,~,~)とやっても、TRUEを返します。 まぁ、何が言いたいかと言えば、空のセルは必要に応じてヌルストリングになったり、ゼロになったりするはずだということです。 で、空白(スペース)が入っている場合は、上記3つはFALSEを返します。 そのあたりが原因かもしれませんね。

HiroBlue
質問者

補足

ISBLANK(I9)としてみると FALSEになります。 DELすると正しく計算されるので何かが入っているようですが空白ではないようです。

  • happypoint
  • ベストアンサー率36% (521/1422)
回答No.2

こんにちは。 セルが空白のとき、0とみなしたいのなら、  =if(A1="",0,A1) で強制的にゼロとすることができます。 ところで余計なお世話かもしれませんが、 どのような計算をしたときエラーになりますか? 単純にセルの値の積を求める場合や、 SUM関数などの場合は、 はじめから空白はゼロとみなされますので影響ないですよ。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

こんにちは 一般的な計算式であれば、空のセルを参照しているとそのセルは0と見なして計算してくれると思います。 どのような式を入れているのでしょうか? また、どの様なエラーを出しているのでしょうか?

HiroBlue
質問者

補足

LEN(I9)は0になります 何なんだろう??

関連するQ&A

  • エクセルでセル内の計算式を隠す方法を教えてください。

    エクセルでセル内の計算式を隠す方法を教えてください。 隠れていても他のシートにコピーすれば見れてしまうような方法ではなく、コピーもできず、完全に隠せる方法を知りたいです。 また、列(行)を完全に隠せる方法を教えていただけますか。 単に隠すだけでなく、パスワードか何かがないと再び表に出せないような方法が知りたいです。こちらも隠した列(行)を含む領域を他のシートにコピーすれば見れてしまうようなことがないような方法を知りたいです。 2007と2003の両方について教えていただけばと思いますが、片方でも大変ありがたいです。 何卒よろしくお願いいたします。

  • ACCESSにEXCELからインポートした時に先頭に空列ができる

    ACCESS97、EXCEL97を使っています。 EXCELのワークシートにあるデータを、ACCESSにインポートしたいのですが、インポート後のACCESSのデータベースの先頭に空欄の列(以下「空列」)が勝手に9~10行くらいできてしまうのです(もちろんEXCELのデータには空列はありません)。 どうして空列ができてしまうのでしょうか。 原因や解消方法をご存知の方よろしくお願いします。ちょっとした可能性でも構いません。

  • EXCELで計算式を文字列として抜き出す?

    excelにて、計算式を文字列として他のセルに表す方法はありますか? 数箇所だったら数式を直接コピーすればできるのですが、行が多いので関数でひとつ作ってそれを下の行へコピーすれば楽にできるのかなと思いまして・・ 例えば、  C1セルに「=A1+B1」という計算式が入っているとして、  D1セルに「=A1+B1」と式自体を表示させたい。 という場合に。D1に関数をいれればいいとかありますか?

  • Excelで列(行)挿入で計算式を保持する方法

    あるセルを参照する際に、セル番号の指定ではなく、 「一つ上のセル」「1つ左のセル」 といった指定がしたいです。(R1C1方式、という意味ではなく) 行のコピー、挿入の影響を受けないようにするのにいい方法はありますか? 例えば・・・ B3のセルに"1"を入力して、 C3~E3のセルにそれぞれ "=B3+1", "=C3+1", "=D3+1" と計算式を入力すると、 B3~E3がそれぞれ "1", "2", "3", "4" となります。 この状態で、"3"の値が表示されているDの列を列ごとコピーして そのままC列とD列の間にコピーした行を挿入します。 すると、B3~F3がそれぞれ "1", "2", "2", "3", "4" となります。 この時点でC3~F3の各セルの計算式は "=B3+1", "=B3+1", "=C3+1", "=E3+1" となっています。 そうではなく、この例の場合こういったオペレーションを行った後にも 「左隣のセルに1を追加」という状態を保持したいです。 この現象をうまく回避できる方法や関数はありますでしょうか? ちなみに、上記のように1列だけコピーして挿入、という操作が前提です。 D,Eの列をコピーして、E,Fの列に貼り付けるとこの現象は回避できますが、 そうではなく、あくまで1列だけコピー&挿入という操作での解決策を探ってます。 説明がわかりにくいかもしれません。すみません。 補足が必要であれば言って下さい。 宜しくお願いします。

  • Excelでのセルの参照について

    Excel2000を使っています。 例えば Sheet2のA1に=IF(ISBLANK(Sheet1!A1),"",VLOOKUP(Sheet1!A1,Sheet3!$A$1:$B$100,2,0)) を入れてあります。 これをA列奇数行だけにコピーすると、検索するセルも参照するセルも奇数行になってしまいます。 少数だったら行数を直せばよいのですが、たくさんあって手に負えません。 何かいい方法はありませんか? 助けてください。

  • 2行2列セルのオートフィルコピー

    excel2003 D11:E12の結合セルに参照式が入っています。 =LIST!I11…(1) 以降 D13:E14 は =LIST!I12 D15:E16 は =LIST!I13 というコピーをしたいです。 (1)のセルでオートフィルコピーを実施すると、 D13:E14 は =LIST!I13 D15:E16 は =LIST!I15 と飛び飛びになってしまいます。 調べてみると行が結合されたもののオートフィルコピーは、 文字列表記にしてからオートフィルコピーし、データ区切り位置で変更すると、 飛び飛びにならずにコピー可能ということで、1列の場合は対象のコピーが実現できました。 しかし、今回の場合、2行2列のセルなので 下記の様なexcelのエラーが表示されます。 ------------------------------------------------------------------------- 一度に変換できるのは、1列だけです。範囲には複数の行を選択できますが、列は1列しか選択できません。1列だけのセル範囲を選択し、再度実行してください。 ------------------------------------------------------------------------- オートフィルはだめみたいなので、 2行2列のセルを参照番号が連続した状態で、簡単にコピー可能な方法を教えていただきたく。

  • ある列の計算式が入っているセルの行のみを削除したい

    Excel2007でマクロを作成している超初心者です。 B列のセルには 空白 文字列 計算式が入っています。このうち計算式の入っているセルの行のみを削除したいのですが、どうしたらよろしいでしょうか?  セルには =IF(C17="","",+K17*L17)という式が入っています。 次式は0か空白の場合ですが、これをどのように修正したらできるでしょうか? Sub 行の削除() Dim i As Long For i = 1 To Selection.End(xlDown).Columns Step 1 Select Case Range("B" & i).Value Case 0, "" Columns(i).Delete End Select Next End Sub

  • エクセルのこんなエラー どうしたら?

    エクセルは相当使い込んでいますが、余りに初歩的な(?)エラーで悩んでいます。    列1   列2  列3  列4  列5  列6  列7    空白  空白  100  100  100  100  100    100  100  100  100  100  100  100    エラー エラー 200 200 200 200 200 エラーの行は(=+)又は(=SUM( )の計算式です。 (1)空白ならゼロと見なして合計100が出るはずなのです がValueErrorが出ます。このエラーを回避する為数字のゼロを手入力するとエラーが出なくてキチンと計算します。 (1)空白ではなくスペースかと思いましたが、この空白 にスペース入れてもちゃんと計算します。 (2)元データはオフコンからエクセルに流し込まれたも のらしく、その出所・由来が分かりません。流し込んだ だけで誰も加工した形跡が無いので聞くべき人がいません。 (3)この空白が1000行x100列位の中にテンデンにバラバ ラにあるので散在しているので、いちいちゼロを入力又 は「検索」「置き換え」もすることが出来ません。オフ コン等のデータを流し込むとこの様なことが起きるので しょうか このエラーの回避策(検索→置き換え)などはあるのでし ょうか?

  • 特定セルを編集しようとするとエラーが出ます(エクセル)

    こんばんは。仕事で困っているのでご存知の方いらっしゃったら教えてください。お願いします。 エクセルで、あるセルを編集しようと、F2キーを押す又は数式バーをクリックすると、「不正な処理を行ったのでプログラムを終了します」のエラーが出ます。 そのセルが含まれている行ごと削除したり、そのシートをコピーしてみたり、別名ファイルで保存してみたり、いろいろ試みましたがダメでした。 エラーが発生するセルも1個ではなく、いろんな列・行に散らばっていて、今後もどこでエラーが発生するか分からない状況です。 他の方の質問&回答の中で、新しいブックにコピー&ペーストして新規保存したらいいというのがありましたが、今回作成しているファイルは、他シート間での計算式を入力していたり、カメラ機能を使ってシート1・シート2の表をシート3に貼り付けてレイアウトしたり…と、いろんな設定をしているので、コピペで新規保存する以外に何か方法があったら教えていただけないでしょうか。 とにかく数式とレイアウトを崩したくないのですが、良い方法をご存知でしたら、是非教えてください。 ちなみにファイルサイズは50KBほどだし、グラフもマクロもなく、カメラ機能を使っていること以外は形としてはごくシンプルなものだと思うのですが…もしかしたらカメラってエラーが起こりやすいのでしょうか?

  • エクセル 列の削除・挿入と関数、計算式の範囲について

      A  B  C  D  E 1  2 2 3 4 2 2 1 1 2 3 5 3 2 5 6 7 2 4 2 2 3 4 4 5 2 1 5 8 6 6 9 11 19 26 19 ←各列合計 sheet1に上記のような表があったとします。 6行目以外は誰でも入力可能です。しかし6行目の各列合計の行は計算式が入っているため、改変できないようにセルを保護します。 本来ならそれで解決なんですが… 列の削除や挿入をしなければならないんです。 セルの保護をしている箇所があると、当然削除は出来ません。 これはどうしようもないものでしょうか? もし上記が無理なら、sheet2に合計のみの表を作って計算式を入れたいのですが、今度は削除や挿入をするため、参照先がおかしくなりエラーが出ます。 何か良い解決方法があれば教えてください。

専門家に質問してみよう