• ベストアンサー

エクセルのIF関数をつかい=が0なら非表示とした場合の矛盾

はじめまして。どうぞお力をおかしください。 [質問] エクセルで人材派遣の見積書を作成しています 項目は、 ・A-数量(派遣人数や勤務時間) ・B-単位(人や時間数) ・C-単価(1人や1時間あたりの単価) ・D-小計(1日分の合計) ・E-数量(勤務日数) ・F-単位(日) ・G-合計(ひとつの現場の人件費合計) ★EFGには何も入力しないこともあります となります。 現在以下のように入力しております。 (1)D=A×C→D=IF(A1*C1=0,"",A1*C1) (2)G=D×E→G=IF(D1*E1=0,"",D1*E1) しかし!!これではひとつめのDには希望通り何も入力されていないときには空白で数値がある場合のみ数値が計算されているのですが、EFGに何も入力していないとGには空白となり、Dの小計の金額が表示されないのです。 どうしたらEFG未入力の際にはDの数値が表示されるようになるのでしょうか?? どうかお助けください。お願いいたします

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.8

G1の式は「=IF(D1*E1=0,"",D1*E1)」ですね。 E1が空白なら「D1*E1」の結果は0になりますから、IF関数の結果に従って「空白」となるのは明らかです もしかして質問は 「E列、F列が空白ならG列にはD列の値を表示したい」 ではありませんか(F列は計算には直接関係ないですが…) だとすればG1の式は  =IF(E1="",D1,D1*E1) でよいでしょう。

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。申し訳ございません、上手に質問すらできませんでした。 おっしゃる通りです。「E列、F列が空白ならG列にはD列の値を表示したい」で間違いありません。このようなシンプルな式で成立したのですね? 大変勉強になりました。本当にありがとうございました。

その他の回答 (7)

noname#140971
noname#140971
回答No.7

Excel は、一度も操作したことがない門外漢ですが・・・・ A1*C1=0 D1*E1=0 は、入力の有無判定をする式としては適当ではないと思います。 =IF(LEN(A1)*LEN(C1)=0,"",A1*C1) =IF(LEN(D1)*LEN(E1)=0,"",D1*E1) このように、夫々に入力されているか否かで判定すると不具合は回避できると思います。 多分、Excelに堪能な方はISBLANK関数を使われるかも知れませんが・・・。

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。LENという関数を使用したことがなかったのでとても勉強になりました!わたくしも早くHusky2007様に近づけるように勉強しなくては!と思いました。本当にありがとうございました。

  • Dxak
  • ベストアンサー率34% (510/1465)
回答No.6

ほぼ、回答とは関係ないのかも知れませんが・・・ 表示形式について http://support.microsoft.com/kb/402448/ja の様に表示形式の第3引数で0の場合を設定された方が良いかと思うのですが・・・ 入力がない場合と言うのであれば、IF関数でISBLANK関数を条件にして関数を形成されたほうが良いかと思います

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。ISBLANK関数というのは使ったことがなかったのでとても勉強になりました。適切な参考ページもご紹介くださいましてありがとうございました。

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.5

> EFGに何も入力していないと 意味不明です。 G1には =IF(D1*E1=0,"",D1*E1)という式が入っているのではないのですか? A1とC1に数値が入っていないとD1が何も表示されないのはわかりますが、その場合、D1は#VALUEエラーになるのではないですか? G1セルには、D1に数値が表示され、かつE1が未入力の場合はD1を表示したいのなら、 G1セルの式を =IF(COUNT(D1:E1)=2,D1*E1,D1) にしてみてください。

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。先に 誤りがありましたことをお詫びします。ご指摘のように > EFGに何も入力していない とありますが「EF」の誤りでした。申し訳ございません。 COUNTを利用すればシンプルに計算させることができるのですね。 やはり、計算式には臨機応変に頭を柔らかくさせなければならないのですね。勉 強になりました。本当にありがとうございました。

htenaaaaa
質問者

補足

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。先に誤りがありましたことをお詫びします。ご指摘のように > EFGに何も入力していない とありますが「EF」の誤りでした。申し訳ございません。 COUNTを利用すればシンプルに計算させることができるのですね。 やはり、計算式には臨機応変に頭を柔らかくさせなければならないのですね。勉強になりました。本当にありがとうございました。

  • don9don9
  • ベストアンサー率47% (299/624)
回答No.4

Dに[=A1*C1] Gに[=IF(D1*E1=0,D1,D1*E1)] と入力し、DとGを条件付き書式で [セルの値が0の場合、フォントカラーを白] ではいけませんか?

参考URL:
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jyo-syo.html
htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。 なるほど。関数で0を表示するかしないかを指示するのではなく、条件によって無色を指示することもできるのですね。丁寧な参考サイトまでご紹介くださいまして本当にありがとうございました!!

  • chie65536
  • ベストアンサー率41% (2512/6032)
回答No.3

D1は「=IF(A1*C1=0,"",A1*C1)」 G1は「=IF(A1*C1=0,"",IF(E1=0,D1,D1*E1))」

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。なるほど、G1に対して「=IF(A1*C1=0,"")」という数式をつかい、さらに、答えが0でなければ「IF(E1=0,D1,D1*E1)」という数式を計算さすように支持するのですね。IFの中にさらにIFもつかえると知りませんでしたのでとても勉強になりました。今後もっと勉強したくなりました。本当にありがとうございました。

  • InuSakura
  • ベストアンサー率34% (9/26)
回答No.2

G=IF(D1=0,"",IF(E1=0,D1,D1*E1)) で動くかと思います。 (当方Excelを所持していないため結果を確認できません。) IF文中のD1=0,E1=0は、ひょっとしたらD1="",E1=""かも知れません。 なにぶん確認取れないので間違っている場合はご容赦を。

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、また、親切丁寧なご説明に改めて驚愕しました。G=IF(D1=0,"",IF(E1=0,D1,D1*E1))で期待通りに表示されました! IFのなかにさらにIFも使えるのですね。わたくしも早くInuSakura様に近づけるように勉強しなくては!と思いました。本当にありがとうございました。

  • hiro77777
  • ベストアンサー率25% (11/43)
回答No.1

G=IF(AND(D1*E1=0,D1=0),"",D1*E1)とされたら如何でしょうか?

htenaaaaa
質問者

お礼

早速のご回答にまず驚き、的確なご説明に改めて驚愕しました。 ANDという関数も適用できるのですね?ANDを利用するのは初めてですのでとても勉強になりました。本当にありがとうございました。

関連するQ&A

専門家に質問してみよう