Excelで=if(a1<0,"",a1)といった式を作ったとすると、""(ブランク)か、a1の値のどちらかが表示されます。""(ブランク)が表示されるとき、このセルを参照した足し算等の計算式は、#VALUE!エラーとなります。

これを回避し、""(ブランク)の時も通常のブランク(NULL値?)と同様に、ゼロとして計算したいのですが、何か案は無いでしょうか。参照している側の式で工夫するというよりは、""と指定しているのを別のものにしたいと思います。

尚、""の代わりに0(ゼロ)を入力すればいいのですが、今回その選択肢は無しです。(見た目の問題)

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/06/10 09:33:07
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:JunK No.4

回答回数707ベストアンサー獲得回数18

ポイント18pt

こういう場合、sum関数を利用して計算させたりします。


B1 =if(a1<0,"",a1) で、a1 =-1 ならば、B1 ="" となります。

B2 =if(a2<0,"",a2) で、a2 =10 ならば、B2 =10 となります。


C1 =B1+B2 は、#VALUE!エラーです。


C2= sum(B1)+sum(B2) では、10となります。

 #sum(B1)は0 、でもsum("")は#VALUE!エラー・・。

id:ash730

なるほど、参考になります。

2006/06/04 10:16:26

その他の回答5件)

id:llusall No.1

回答回数505ベストアンサー獲得回数61

ポイント19pt

数式を

=IF(A1<0,0,A1)

にします。

次に、この数式のあるセルの表示形式を次の様に設定します。

[セルの書式設定]ダイアログ-[表示形式]-[ユーザ定義]を選択して、

「#」に設定します。カンマ編集表示にしたい場合は、「#,###」にします。

以上です。

id:ash730

表示だけなら、その手もありますね。

ただし、""と入れた所は初期の空白(NULL値?)のように扱いたい理由がもう一つあって、Ctrl+カーソルで、ブランクの所でカーソルが止まる機能があると思いますが、""の所でもブランクと同じでカーソルが止まって欲しいんです。よって、""の代わりに0は不可としたいです。

2006/06/03 18:51:45
id:mestallajp No.2

回答回数23ベストアンサー獲得回数6

ポイント19pt

追加の方法です。

3)[入力シート]と[計算シート]のふたつに分ける。

[入力シート]は0値を入れないまま。

[計算シート]は全のセルで

=IF(入力シート!A1<>"",入力シート!A1,0)

のように[入力シート]の該当セルを参照しておき、[計算シート]を参照して計算する

4)計算用の隠し列(行)を隣にでも作成する

例えば

入力列 0値を入れない

計算列 =IF(A1="",0,A1)

計算は計算列で行い、普段は計算列を非表示で隠しておく。

id:mestallajp No.3

回答回数23ベストアンサー獲得回数6

ポイント18pt

計算式で参照している以上、0値を入力するべきかと思いますが・・・

1)該当セルを参照している計算式の参照方法を変える

例:=(IF(A1="",0,A1)+IF(B1="",0,B1))

2)あえて0値を入力して、セルの書式設定を変更することで0値を表示させない

http://www.relief.jp/itnote/archives/000413.php

id:ash730

そうですか、シンプルにやるのは、中々難しいんですね。回答ありがとうございました。

2006/06/03 19:17:39
id:JunK No.4

回答回数707ベストアンサー獲得回数18ここでベストアンサー

ポイント18pt

こういう場合、sum関数を利用して計算させたりします。


B1 =if(a1<0,"",a1) で、a1 =-1 ならば、B1 ="" となります。

B2 =if(a2<0,"",a2) で、a2 =10 ならば、B2 =10 となります。


C1 =B1+B2 は、#VALUE!エラーです。


C2= sum(B1)+sum(B2) では、10となります。

 #sum(B1)は0 、でもsum("")は#VALUE!エラー・・。

id:ash730

なるほど、参考になります。

2006/06/04 10:16:26
id:day_diamond No.5

回答回数15ベストアンサー獲得回数0

ポイント18pt

こんにちは、はじめまして。

最初の回答者のllusallさんの方法でも、cntl+カーソルでカーソルが 0 を非表示にしたところで止まると思いますが…。

というか、cntl+カーソルは、元々のブランクのところでは止まらずに、むしろそれ以外のところですべて止まるように思えます。

私のとExcellのバージョンが違うのかな…?

ご参考までに。

id:ash730

Excelは同じ仕様です。

表現が悪かったですね。数字が入っているところだけでカーソルを止めたいんです。つまり現在""としているところ(提案では0のところ)の手前でカーソルを止めたいんです。

2006/06/04 10:18:46
id:gong1971 No.6

回答回数451ベストアンサー獲得回数70

ポイント18pt

4番JunKさんが書かれているようにSUM関数を利用するのが一番シンプルかと思います。


JunKさんが紹介されているように、下記の式でもOKですし、

  • =SUM(B1)+SUM(B2)

連続した範囲なら↓このように、

  • =SUM(B1:B10)

非連続のセルなら↓このように記述する事も可能です。

  • =SUM(B1,B3,B5,B7,B9)

※いずれの場合も "" が含まれていてもエラーになりません


ただ一つ気になったのですが、IF関数で "" とした場合、

通常の空白セルとは違い Ctrl+矢印キー ではカーソルが止まりませんが...。

(Excel2000とExcel2003で検証しました。ash730さんの環境ではカーソルが止まりますか?)


Ctrl+矢印キー で止まるようにするには、数式を消して空白セルに

する必要があります。数式を残しておきたい場合には使えませんが、

データの入力が終わって数式を消しても問題ないようであれば、

以下の方法で "" としたセルの数式のみを消す事が可能です。


  1. IF関数を入力した範囲を選択する
  2. [F5]キーを押し[セル選択]をクリックする
  3. [数式]を選択し[数値]のチェックボックスを外し[OK]をクリック
  4. [Delete]ボタンを押す

以上、[ジャンプ]の[セル選択]という機能は便利なので、

覚えておいて損は無いですよ!

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません