• ベストアンサー

SUMIF関数

今Excelのあるセルに{=SUM(IF(BJ1:BJ10059="合計",BK1:BK10059,0))+SUM(IF(BJ1:BJ10059="合計",BL1:BL10059,0))}という関数が入力されています。 そこに数値が表示されています。 しかし、この中のセルの数値を変更すると0と表示されてしまいます。(同じ数字に戻しても同じです。)なぜ0が表示されるのか分かりません。 どうしたら正しい数値が表示されるのか教えてください。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

{数式} は配列数式と呼ばれる、特殊計算の数式です。 数式部分を変更した場合は、CtrlキーとShiftキーを押しながら、Enterキーを押さないと =SUM(IF(BJ1:BJ10059="合計",BK1:BK10059,0))+SUM(IF(BJ1:BJ10059="合計",BL1:BL10059,0)) と{}の部分が解除され、上記の数式の場合 =SUM(IF(BJ1="合計",BK1,0))+SUM(IF(BJ1="合計",BL1,0)) と先頭セルの結果の数式と同じとみなされます。 BK列とBL列が数字だけなら、配列数式でなくSUMIF関数で =SUMIF(BJ1:BJ10059,"合計",BK1:BK10059)+SUMIF(BJ1:BJ10059,"合計",BL1:BL10059) とするか?SUMPRODUCT関数で =SUMPRODUCT((BJ1:BJ10059="合計")*(BK1:BK10059+BL1:BL10059)) としたほうがいいと思います。

eiji5580
質問者

お礼

分かりやすい説明ありがとうございました。

その他の回答 (2)

  • Chiquilin
  • ベストアンサー率30% (94/306)
回答No.3

「{}」で囲まれている式は その数式が配列数式だということを意味して います。数式を変更した際 Ctrl + Shift + Enterで式を確定させる必要 があります。 しかし何故 =SUMIF(BJ:BJ,"合計",BK:BK)+SUMIF(BJ:BJ,"合計",BL:BL) で済むものを配列数式にしているのかは分かりません。

  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.2

>あるセルに{=SUM(IF(BJ1:BJ10059="合計",BK1:BK10059,0))+SUM(IF(BJ1:BJ10059="合計",BL1:BL10059,0))}という関数が入力されています 可能性のその1) ゼロになるそのセルに、正しくその式が記入できていない、特に前後の{ }が表示されていない状況になっていることが考えられます。 ご相談に書かれているその式を見たところでは、そういう計算式を使う必然性は全くないので素直に =SUMIF(BJ1:BJ10059,"合計",BK1:BK10059)+SUMIF(BJ1:BJ10059,"合計",BL1:BL10059) という関数式にする(この式は当然「そのまま記入しただEnterして入力」する:間違えずにこの通りに操作する事)ことで、通常は正常に計算でき、なお且つご相談で掲示された数式よりも遥かに軽く高速に動作します。 可能性のその2) 特に上述したSUMIF関数を使った数式に修正しても、なお計算結果がゼロになる場合。BK列並びにBL列が「文字列」の設定になってしまっている可能性があります。 この場合初心者さんが特に陥りやすい失敗としては、この状況は「書式を標準に直しました」「書式が標準になっている(文字列では無い)ことを確認しました」では、『解決できない』ので注意が必要です。 簡単に修正する方策としては、 1.BK,BL列のセルの書式設定の表示形式を改めて標準に設定する 2.どこか空っぽで何も記入されていないセル1個をふつーにコピーする 3.BK,BL列のセル範囲を選び、形式を選んで貼り付けの「加算」にマークしてOKする といった手立てで、データを修正する事ができます。

関連するQ&A