• ベストアンサー

EXCEL IF関数

EXCELのIF関数で「A1からA5が空白だったならば、空白を、空白じゃなかったらA1からA5の合計を求める」といったような式の設定はできますか? 「A1からA5の全てにデータが入れば合計を求める」または「A1からA5のどれかにデータが入れば合計を求める」というやり方はどうでしょう? 1つ目のように、範囲を論理式(条件)に用いることはできるのでしょうか?

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

一例です。 A1:A5が全て空白の場合は空白、どれかにデータがあれば合計します。 =IF(SUM(A1:A5),SUM(A1:A5),"")

C_PAMA
質問者

お礼

ほんとだ! できますね! この論理式に当たる部分の「SUM(A1:A5)」はどう解釈したらいいのですか?「SUM(A1:A5)」はA1からA5の合計の結果が出るならばというような意味でしょうか?

その他の回答 (6)

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

#5です。 >>10を式にしたければ、>=ROW(A10)-ROW(A1)+1 が、ちょっとわからないのですが・・・ (1)式の意味か (2)必要性か 多分(2)についてだろうね。 コンピュタやその言語などでは、なるべく一般性を持たせたいわけ。 人力で・頭で計算させたくないわけ。それでA1:A10ならセル数は10は即座にわかるが、A7:A231などだと頭で231-7+1の計算をしなければならない。それをさせないために、スタートとエンドのセル番地を指定すれば、セル数を計算して、本件の処理や計算が出来るよう、こういうことも出来るということ。 ROW(A10)-ROW(A1)+1 ーーー それよりも >A1からA5が空白だったならば、空白を、空白じゃなかったら・・ は注意して書かないと、意味が2通りに取られるように思うが。 いつも (1)Allを指すのか (2)1つでもあれば、を指すのか、質問者はわかっても、 コンピュターの絡みの文章は(無縁かもしれないが、特にプログラム言語では)、神経質なぐらい注記したほうが良い。 また、文章を読む場合は、気をつけて読んだほうが良い。 このコーナーでも、アバウトな質問表現が多い。

C_PAMA
質問者

お礼

いろいろありがとうございました。 質問の仕方も、もう少し整理するようにします(^_^;) わかりにくい質問に丁寧にお答えくださってありがとうございました! 勉強になりました!

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

> 「A1からA5が空白だったならば、空白を、空白じゃなかったらA1からA5の合計を求める」式と >「A1からA5のどれかにデータが入れば合計を求める 」式は同じということでしょうか? 同じことじゃないんですか? A1からA5がすべて空白だったならば空白を、そうでなければA1からA5の合計を求めるということは、A1からA5のどれかにデータが入れば合計を求めるということを別の言葉で言っているだけですよね?

C_PAMA
質問者

お礼

そうですね(^_^;) 確かに・・・。 ありがとうございました。

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

A1:A10の「数字!」のセル数はCOUNT(A1:A10)で求められる。だから 範囲全セルに数字が入ってなければ、空白、10セルそろったら合計するなら =IF(COUNTA(A1:A10)=10,SUM(A1:A10),"") で良いでしょう。 10を式にしたければ、 =ROW(A10)-ROW(A1)+1

C_PAMA
質問者

お礼

ありがとうございました! >10を式にしたければ、 >=ROW(A10)-ROW(A1)+1 が、ちょっとわからないのですが・・・ すみません<m(__)m>

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.3

いや、なんか複雑な関数を使わなくても、AND/ORとIFだけで済みますし。 =IF(AND(A1="",A2="",A3="",A4="",A5=""),"",A1+A2+A3+A4+A5) こっちのほうが後で分かりやすいんじゃないかと。

C_PAMA
質問者

お礼

確かにわかりやすいかもしれません。 ただ実際に使いたいセル範囲はもっと大きいので、式が長くなりすぎてしまうんですね(^_^;) 一番単純な理解しやすい方法ではあると思います。 ありがとうございました。

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

A1からA5が空白だったならば、空白を、空白じゃなかったらA1からA5の合計を求める =IF(COUNTBLANK(A1:A5)=5,"",SUM(A1:A5)) A1からA5の全てにデータが入れば合計を求める =IF(COUNTBLANK(A1:A5)=0,SUM(A1:A5),"") A1からA5のどれかにデータが入れば合計を求める =IF(COUNTBLANK(A1:A5)=5,"",SUM(A1:A5))

C_PAMA
質問者

お礼

ありがとうございます! 「A1からA5が空白だったならば、空白を、空白じゃなかったらA1からA5の合計を求める」式と 「A1からA5のどれかにデータが入れば合計を求める 」式は同じということでしょうか?

C_PAMA
質問者

補足

回答いただいた方法でやってみました。 今回の場合このA1からA5には 先にIF関数を設定してあったんです。 今回は質問するにあたり、A1からA5を例で書きましたが このA1からA5にはそれぞれ「B列の対応する行が空白だったなら 空白を、空白でなければ掛け算をする」ようなIF関数が入っています。 そうした場合、COUNTAやCOUNTBLANKだと 関数が入っているから「空白」とみなされず 「0」が表示されてしまいます。 このような場合はどういう対処方法がありますか? アドバイスいただけると幸いです<m(__)m>

  • chiwa-CF
  • ベストアンサー率51% (36/70)
回答No.1

COUNTAという関数は指定されたセル範囲内にデータの入ったセルが何個あるかを調べます。 逆にブランクを数えるから、COUNTBLANKという関数もあります。 これらを利用します。 =IF(COUNTA(A1:A5)=0,"",SUM(A1:A5)) =IF(COUNTBLANK(A1:A5)=5,"",SUM(A1:A5)) 上記の場合、A1からA5がすべて空白なら空白、1つでも入っていれば合計が出ます。 A1からA5まで1つでも空白があったら空白ならこんな感じで =IF(COUNTA(A1:A5)<>5,"",SUM(A1:A5)) =IF(COUNTBLANK(A1:A5)<>0,"",SUM(A1:A5))

C_PAMA
質問者

お礼

ありがとうございます! 参考になりました!

関連するQ&A