• ベストアンサー

《エクセル2000》条件にあった行のみ合計する?

A1~D20の範囲に数字が入っています。 うち、A列は数字と空白が混在しています。 「A列に数字が入っている行のみ、B列~D列を足し合わせ、さらにそれの20行分の和を求める(A列に空白が入っている行のB~Dは加算しない)」 …という式は作れるでしょうか。 自分でもSUMやらSUMIFやらを使ってトライしてみたのですが、どうもうまくいきませんでした。 よろしくお願いします。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 単純に各列の合計を加算するということで、 =SUMIF(A1:A20,"<>",B1:B20)+SUMIF(A1:A20,"<>",C1:C20)+SUMIF(A1:A20,"<>",D1:D20) で出来ます。 あと、 =SUMPRODUCT((LEN(A1:A20)>0)*(B1:B20+C1:C20+D1:D20)) でも出来ます。

bari_saku
質問者

補足

こんにちは。以前もお世話になりました…(汗) 最初のSUMIF文は、私もほとんど同じものを考えました。 =SUMIF(A1:A20,"<>""",B1:B20)+…【以下略】 というものです。 ただ、この式ではうまくいきません。 「空白でなければ」の判断をさせるつもりで「"<>"""」と書いたのですが、なぜこれではうまくいかないのでしょうか…おわかりでしたら、教えて頂ければ幸いなのですが…

その他の回答 (2)

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.3

>「空白でなければ」の判断をさせるつもりで「"<>"""」と書いたのですが、 >なぜこれではうまくいかないのでしょうか SUMIF関数の第2引数は、条件を"文字列"で指定しますが、文字列は「"」で括られます。 ところで、文字列として認識するための記号として、「"」を使用しているので、文字列の中に「"」を含める場合は、「""」と2つ重ねる必要があります。 したがって、 「"<>"""」 は、 「<>"」(「"」でなければ) という条件になるのです。 試しに、A列に「"」と入力すると、その列以外が加算されます。 では、「<>""」にするには、 「"<>"""""」 とすればよいかというと、そうではなく、この場合は、 「<>""」(「""」でなければ) という条件になってしまいます。 試しに、これでA列に「""」と入力すると、その列以外が加算されます。 で、空白の判断は、 「"<>"」 となるのです。(そういう仕様になっているということです。) ちなみに、「空白なら」は、「"="」になります。 私は、このややこしさもあり、SUMPRODUCTを好んで使っています。

bari_saku
質問者

お礼

こんにちは。 なるほど…仕様ですか。心から納得したとは言い難いですが、それなら仕方ないですよね。 これからはSUMPRODUCTでも書けるように練習してみようと思います。あと、LENはこういう使い方もできるんだなと、意表をつかれた思いです。 本当にありがとうございました。

  • ares
  • ベストアンサー率36% (81/219)
回答No.2

A列に入力されているのが数字と言う限定であれば、 =IF(A1="","",B1+C1+D1) で横計(B:D)は求められます。 20行分の和の合計は行のSUM関数でいいのではないでしょうか。

bari_saku
質問者

お礼

こんにちは。 そうなんですよね…作業用のセルを作れば問題はないのですが、シートのデザインの関係でそれができなくて、一つのセルで何もかも済まそうと思って四苦八苦していたものです。 今回、式がとてつもなく長くなってしまいましたが、何とか解決できました。 ご回答、ありがとうございました。

関連するQ&A