• ベストアンサー

エクセルで入力していない項目が#DIV/0!

毎月の売上の進捗率を出すために画像のような表を作成しているのですが、まだ入力していない項目で『-100%』や『#DIV/0!』のような表示が出てしまいます。 ちなみに画像の『2月の売上』や『3月の売上』には『=(今月の売上/前月の売上*100)-100』という関数にしています。 質問ですが、まだ入力していない項目(画像の『4月の売上』や『5月の売上』)を『0』と表示させるにはどうしたら良いでしょうか?

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

  • ベストアンサー
  • QoooL
  • ベストアンサー率66% (103/155)
回答No.4

#1の方に私も賛成ですが、 セルC7 に4月の売上が書かれている場合、D7 (Bと書かれている列)には 式1 =IF(C7="",NA(),IF(ISNUMBER(C6),(C7/C6*100)-100,NA())) と入れます(私が最もススメる式)。 式2 =IF(C7="",NA(),IF(C6="",NA(),(C7/C6*100)-100)) でも良いですが、そうすると D4 (1月の前月比増減)のところを空白にする、という特別な処理をしないといけません。 (#VALUE! エラーはうっとおしいですね。) 全ての月に同じ式を入れられる方が楽です。 式3 =IF(C7="",0,IF(ISNUMBER(C6),(C7/C6*100)-100,0)) がご希望通りの方法、 式4 =IF(C7="","",IF(ISNUMBER(C6),(C7/C6*100)-100,"")) が私も好きな、表が見た目上空欄になる方法です。 ただですね、0となさったのは恐らく、グラフにしたり、前月比増減に歩合を掛け算したりすることまで考えていらっしゃるのだろう、と予測したのです。その場合、   未到来の月を 前月比増減±0% で表示させる でも良いんですが、   本当の 前月比増減±0% と区別しにくい という弊害があります。そこで、   =NA() (エヌエー)というのは、   データを「ないもの」として扱わせる という人工エラーです。たまにレッスンで   #N/A と書いてあるのと同じ意味です。 式1 =IF(C7="",NA(),IF(ISNUMBER(C6),(C7/C6*100)-100,NA())) 式5 =IF(C7="",#N/A,IF(ISNUMBER(C6),(C7/C6*100)-100,#N/A)) 両方とも同じことです。 これにより、D列の前月比増減を、計算にそのまま使えるメリットもあります。空白だと掛け算足し算したらエラーになりますね。 ぜひ N/A を使いこなしてください。

GIGAmegane
質問者

お礼

本当に助かりました! わざわざこんなに詳しく書き出して頂き感謝しています。 特に#.##"%"の入力は自分でも悩んでいた問題で、次に質問しようかと迷っていました。 仰るとおり私は#.##%と入力しており「なんで増えんねん!」とモヤモヤしていたので助かりました。 他の方もこんな初歩的な質問に応えて頂き感謝します。 有難うございました!

その他の回答 (6)

  • QoooL
  • ベストアンサー率66% (103/155)
回答No.7

#4です。何度もすみません。話ごとに細かく区切った方が読みやすいかと思ったので。 言い忘れましたが、 #N/A が印刷する時に見苦しい場合には、   #N/A などのエラーが発生した場合には人間の目に見えないようにする という処理ができます。 画像は Excel2007 の例です。   設定したいセル範囲を先に選択(D4:D8、後から修正もできる)   条件付き書式 → 新しいルール → 数式を使用 → 次の数式を満たす場合 欄に次を入力 =ISERROR(D4) $D$4 ではなく D4 一番左上のD4のための式だと判定されて、他のセルは、自動的にD4と同じような条件判断がされる。 → 書式 → フォント タブ → 色 プルダウン → 背景色(白)と同じ色を選択 今は説明のために 黄色の塗りつぶし で行っています。 一度ルールを作った後には、ルールの編集 を行ってお好みに調整してください。 あとですね、私が書いた 式1 =IF(C7="",NA(),IF(ISNUMBER(C6),(C7/C6*100)-100,NA())) についてですけど。 お使いの表に合わせて C7 や C6 をずらすのは わずらわしいです。 そこで、新規ブックで、私の言う通り、 セルD7 に =IF(C7="",NA(),IF(ISNUMBER(C6),(C7/C6*100)-100,NA())) と入れてください。コピーペーストするだけです。 リターンで入力を確定した後、あとは、この D7 をお使いのブックの好きな場所にコピーするだけです。 ちなみに、ISNUMBER は、数値なら、という関数です。数値でないものが入っているセルを見分けさせています。

  • QoooL
  • ベストアンサー率66% (103/155)
回答No.6

#4です。さらに応用です。 セルに100が入っている時には、 普通に セルの書式設定を%にする と、10000% になってしまいます。 そこで  セルの書式設定 → 表示形式 → 分類 → ユーザー定義 → 種類欄に #.##"%" 等を手入力 すると、100を 100% や 100%、+100% のように表示させることができます。 "%" せずに #.##% にすると、10000% になってしまいますよ。 あるいは、 式7 =IF(C7="",NA(),IF(ISNUMBER(C6),((C7/C6*100)-100)&"%",NA())) という表示セルを作る方法もありますが、   これは数値ではなく文字列 なので、計算にもグラフにも使えない です。 式8 =IF(C7="",NA(),IF(ISNUMBER(C6),C7/C6-1,NA())) として セルの書式設定を%にする と、%で表示させられます。 グラフの 軸の書式設定 でも %にすれば良い のです。 -2~2 が -200~200 に変わります。 資料として、%が付いていた方がより好まれるかと思って、蛇足ですが参考までに申し上げました。

  • QoooL
  • ベストアンサー率66% (103/155)
回答No.5

#4です。ここから応用です。 N/A を使わずに   空白セル を グラフ上無視させる という方法があります。 ただしこれは、 式4 =IF(C7="","",IF(ISNUMBER(C6),(C7/C6*100)-100,"")) 式6 =IF(C7="",,IF(ISNUMBER(C6),(C7/C6*100)-100,)) には使えないのでご注意ください。 式4、式6 は見た目は空白ですが、空白セルではないのです。 私の言う空白セルとは、式も値も入っていないセルです。 Excel2007 の場合は、 グラフ を選択すると、普段上に表示されていないデザインリボンが現れます。   デザイン → データグループ の データの選択 → データソースの選択ウィンドウ 非表示および空白のセル → 空白セルの表示方法 で データ要素を線で結ぶ いろいろ試してください。 Excel2003 の頃の古い情報ですが http://www.geocities.jp/excel_graph1/kowaza/kowaza_502/kowaza_502.html http://okwave.jp/qa/q3664620.html もご参照ください。 Excel2007 はこちら。Excel2010 は今手元にないですが、ほぼ同じはずです。 http://www.relief.jp/itnote/archives/002701.php http://jz-webchannel.at.webry.info/201208/article_1.html ただし、一部のグラフ(「積み上げ折れ線」など)ではN/Aが0で表示されてしまう場合もあります。 空白セルの表示方法 も選べなくなるようです。 0よりぐっとスマートだと思いますよ。 回答を書いている間に、いろいろなご回答が集まりましたね。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.3

>まだ入力していない項目で『-100%』や『#DIV/0!』のような表示が出てしまいます。 『#DIV/0!』は0で除算したときのエラーです。 前月売上が未入力のためです。 『-100%』は数式を見直して頂ければ分かります。 今月売り上げを前月売上で割って100倍していますので、今月が未入力は0になります。 あなたの計算式では上記の結果から100を引いていますので今月が0なら-100になります。 >質問ですが、まだ入力していない項目(画像の『4月の売上』や『5月の売上』)を『0』と表示させるにはどうしたら良いでしょうか? IF関数で今月が0のときは0とし、0でないときは提示の数式を実行するようにすれば良いでしょう。 =IF(B3="",0,(B3/B2*100)-100)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.2

Excel2007以降なら、 =IFERROR(今月の売上/前月の売上*100)-100,0) や =IFERROR(今月の売上/前月の売上*100)-100,"") とできます。 =IFERROR(エラーが起きないときの算式,算式でエラーが起きた時の対応) とします。 ご参考に。

回答No.1

Bの関数を以下のように変更 IF(今月売上="","0",(今月の売上/前月の売上*100)-100) 個人的には「"0"」ではなく「""」として空白にする方がすっきりすると思いますが。

関連するQ&A