• ベストアンサー

SUMIF関数

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

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答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/7940)
回答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

  • エクセルで関数SUMなどで

    エクセルで関数SUMなどで 合計を求めた数値が、あるセルにあるとします。 その合計の数値を、そのまま数字として ・・・(関数(計算式)は無くして) 他のセルに貼り付けたいのですが そのような事は出来ますでしょうか・・・。 御教示の程、よろしくお願いいたします。 <m(__)m>

  • IF関数で出した数値をSUM関数で使う

    2010エクセルでの関数について質問があります。 文章での説明でどこまで詳しくご説明できるか不安ですが お付き合い願います。 IF関数で =IF(A13>=25,"10","")と計算し、 セル内に、「10」と表示しています。 さらに、 上記、関数から表示した「10」を SUM関数を使い、 =SUM(A13,B13)と計算しました。 しかし、 IF関数で出した「10」が認識されず足し算されません。 「真の場合」や「偽の場合」で出された数値は 数値として認識されていないのでしょうか? 例えば・・・ B13のセルの数値が「200」であれば、SUM関数を入力しても 「10」が足されることなく、「200」のままで表示されるということです。 どのような方法ならば、足し算されるのでしょうか。 または、関数の使い方が間違っているのでしょうか。 説明が分かりにくく申し訳ありませんが、 宜しくお願い致します。

  • エクセルの関数について

    エクセルで、合計は、SUM関数を使いますが、数値がゼロのときに、 ゼロを表示しないようにするため、IF関数で、IF(A1=0,"",A1) と表示すると、今度は、その数値を使い足し算をしたとき、 エラーになってしまいます。(ゼロのときの値が""のため) 1.足し算、引き算の結果がゼロのとき、何も表示したくない 2.そのセルをさらに足し算、引き算したときにエラーにならない 方法を教えてください。

  • 関数の”使い方”表示

    お世話になります。 Excelでセルに関数を入力した時、使い方が表示されますが(例えば 『 =SUM( 』と入力するとすぐ下に『 SUM(数値1,[数値2],...) 』と表示)、このような表示をVBAで作った自作の関数でもしたいのですがどのようにしたらよいのでしょうか? よろしくお願いいたします。

  • エクセルのSUM関数

     エクセルのSUM関数で、1,3,2が入力してある3つのセルの数字を合計しようとしたところ、6になるはずが0になってしまいます。 これはどうしてでしょうか。

  • エクセル sumif 関数

      A    B 1 旅費  2000 2 旅費  1500 3 通信費 300 4 会議費 1600 5 旅費  800  という表があります。この中で旅費の合計を計算したいのですが、 これはsum if 関数で計算できます。だが、 例えば 1行目と5行目の旅費が塗りつぶしあります。 (A1とB1、A5toB5 が塗りつぶしてます。) この場合塗りつぶしてある旅費の合計値はエクセルの関数を 使って計算できるのでしょうか? ようは、b1とb5の合計をsum if? を使って計算できるのでしょうか? 教えていただければ光栄です。 

  • Excel2003でif関数を使うとSUM関数で反映されません

    A1セルに金額を入力すると、B1に1と表示させる為に=IF(A1,"1","")といった数式を入れております。 さらにC1にBセルの合計値を表示させる為に=SUM(B1)C2には=SUM(B1:B2)と入力しているのですが、B列のセルにIF関数を使った数字『1』が表示されてもC列セルに反映されないので困っています。 ここで質問ですが、A列セルに金額が入力されるとB列セルに数字『1』が表示され、更にC列セルにB列セルの合計値が表示される様な関数等はありますでしょうか?解り難い説明ですいません。 因みにA、B、C列共に1~31までのセルがあります。

  • 合計SUM関数のみのこして、他は一括数値変換したい

    よろしくお願いします。 B列に縦に合計SUM関数と、SUM(IF( 関数などいろいろ関数を入れて数字が表示されています。 B列の合計SUM関数は残して、SUM(IF関数・それ以外の関数はをすべて「数値」(関数で現在計算結果として表示されている数値)に変換したいのです。 教えてください。

  • 関数の計算結果を再度関数に組み込む方法は

    例えばです。  A) セルA1に 「10」、   セルB1に「20」  、 セルC1 に 「30」    の各々の数字が入力されていて、セルD1にSUM関数を使って、合計した    数値を入力するものとします。    セルD1には、SUM関数計算結果として「60」という数字が表示される。  ここからが、質問のポイントなのですが、  B)セルE1にセルD1に表示された「60」の18倍した計算を自動計算した結果を表示することはでいないのでしょうか。   あまりうまく表現できないのですがアドバイスしていただきたい点お分かりいただけたでしょうか。   別の表現の仕方をしますと、      セルD1、SUm関数   セルA1+セルB1+セルC1のSum関数の計算結果表示      セルE1          セルD1×18                           ※セルE1には、上記の「セルD1×18」の自動計算式を入力したいのですが、       首尾よく入力できません。   あまり要領よく質問できていないかもわかりませんが、よろしくお願いします。

  • SUM関数について

    エクセルの関数について質問です。 振込手数料の計算が面倒な為 IF(セル番号="","",IF(セル番号<=30000,"210",IF(セル番号>=30000,"315")))(例) という式を入力してあります。 そして小計にて手数料の合計を出そうとSUM関数を入力したところ 計算が出来ませんでした。 この振込手数料の合計が出せるような関数はどんな式になりますか? お分かりになる方いらっしゃいましたら 宜しくお願い申し上げます。

専門家に質問してみよう