• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルでゼロを条件的に表示させたいです。)

エクセルでゼロを条件的に表示させる方法

このQ&Aのポイント
  • エクセルのSAMIFを使用して、条件的にゼロを表示させる方法について教えてください。
  • 現在エクセルで数値を入力し、その中の一部がゼロの場合は空白に、ゼロ以外の場合はその数値を表示するという処理を行いたいです。
  • また、項目の並び順や名前が変わる可能性があるため、SUMIF関数を使用して自動的に計算する必要があります。どのような式を使用すれば良いでしょうか?

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

  • ベストアンサー
回答No.4

=IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) ではなく =IF(COUNTIF(火!$C$2:$G$86,$B6)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) として下さい。 元の式は「条件に合う物の合計が0であれば、空白にする。さもなければ、条件に合う物の合計を表示する」になってしまっています。 これでは「条件に合う物が存在しても、合計したら0になってしまう場合」も空白になってしまいます。 例えば「条件に合うけども0を入力した場合」とか「条件に合うけど、5と-5を入力した場合」とかも、空白になってしまいます。 やりたいのは「条件に合う物が存在しなければ空白にする。さもなければ、条件に合う物の合計を表示する」の筈です。 なので「COUNTIF」で「条件に合う物の個数」を数えて、その個数が0個の場合だけ空白にして、そうでなければ、SUMIFで条件に合う物のみの合計を求めます。 そのように変更したのが =IF(COUNTIF(火!$C$2:$G$86,$B6)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) の式です。

ATAMAbakanako
質問者

お礼

とても分かりやすい説明まで添えていただき、ありがとうございます! さっそく試してみます!

その他の回答 (6)

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

>エクセルのSAMIFで、0入力をした場合、そのゼロを表示させたいのですが、どうしたらいいでしょうか? >自分が今入力している内容はこちらです。 「 =IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) 」 その数式ではSUMIF関数の結果が0のとき空欄になります。 IF関数の論理式を別のものに代えてください。 SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0     ↓ SUMPRODUCT((火!$C$2:$C$86=$B6)*ISNUMBER(火!$E$2:$E$86))=0 従って、数式全体を次のようにすれば良いことになります。 =IF(SUMPRODUCT((火!$C$2:$C$86=$B6)*ISNUMBER(火!$E$2:$E$86))=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86))

ATAMAbakanako
質問者

お礼

SUMPRODUCTという関数は知りませんでした。勉強になります!ありがとうございます! さっそく試してみます!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

>しかし、入力されていないところは空白のままにしたいのです。  その説明では、「入力されていないところ」とは何処のセルの事なのか解かりません。  「空白のままにしたい」のは「B6セルに何も入力されていない場合にのみ」なのでしょうか、それとも「火!C2:G86に何も入力されていない場合にのみ」なのでしょうか、或いは「B6セルに何も入力されていない場合と、火!C2:G86に何も入力されていない場合のどちらの場合であっても」なのでしょうか? > 自分が今入力している内容はこちらです。 > =IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86))  その関数では、「B6や火!C2:G86が空欄になっている場合に何も表示しない」という関数ではなく、「SUMIF関数の計算結果が0の場合に何も表示しない」という関数になってしまっています。  ですから、もし「B6が空欄になっている場合に何も表示しない」様にするのでしたら次の様な関数にする必要があります。 =IF($B6="","",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86))  又、「『B6が空欄になっている場合』と『火!C2:G86に数値が入っていない場合』のどちらの場合においても何も表示しない」様にするのでしたら次の様な関数にする必要があります。 =IF(AND($B6<>"",COUNT(火!$C$2:$G$86)),SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86),"")  又、「『B6が空欄になっている場合』や『火!C2:G86が空欄になっている場合』には何も表示しないものの、『火!C2:G86に数値ではなく文字列のみが入力されていて、尚且つB6が空欄ではない場合』には『(0等の)SUMIF関数の計算結果』を表示する」様にするのでしたら次の様な関数にする必要があります。 =IF(AND($B6<>"",COUNT(火!$C$2:$G$86)+COUNTIF(火!$C$2:$G$86,"*?")),SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86),"")

ATAMAbakanako
質問者

お礼

すいません。説明足らずでした。 自分が言いたかったのは、2番目の「火!C2:G86に何も入力されていない場合にのみ」のやつでした。いくつもの状況に合わせてのご回答いただき、ありがとうございます!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.5

=IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,IFNA(IF(MATCH(0,火!$E$2:$E$86,0),0,""),""),SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) これでいかがでしょう。

ATAMAbakanako
質問者

お礼

IFNAに変わったのですね!なるほど! さっそく試してみます!

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

No1訂正です・。 火!$C$2:$G$86に数値があるのじゃなかったですね。No1は無視してください。

ATAMAbakanako
質問者

お礼

ありがとうございます!了解です!

  • trytobe
  • ベストアンサー率36% (3457/9591)
回答No.2

IF(条件,成立のとき,不成立のとき) の成立と不成立が逆、ということでしょうか。 『自分が今入力している内容はこちらです。 =IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,"",SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86))』を、 =IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86),"") にするとか。範囲「火!$E$2:$E$86」の内容にもよりますが・・・。

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 範囲内容が空白と0があるので、それでは認識されなかったんです。回答してくださったのに、申し訳ありません。

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.1

=IF(SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)=0,IF(COUNT(火!$C$2:$G$86)<>0,0,""),SUMIF(火!$C$2:$G$86,$B6,火!$E$2:$E$86)) でいかがですか。

ATAMAbakanako
質問者

お礼

ご回答ありがとうございます。 試してみます!!

関連するQ&A