• ベストアンサー

SUMIFS関数で絶対値で合計する方法

データ解析をしてる途中ですがちょっと煮詰まっているのでよろしくご教授ください。 =SUMIFS(M3:M500,J3:J500,"月曜日",N3:N500,"○") 上記の式があります。合計したいのはM列に入っていて、条件はJ列が月曜日でなおかつN列が○の場合の数値のみを足す、というものです。 ところがM列はプラスマイナス両方入っているのでJ列とN列の条件が適合したM列の数値の「絶対値」を合計したいのです。 absをつけるらしいのはわかるのですがどのようにつけたらほしい値が返ってくるのかほとほと弱っています。 よろしくお願いいたします。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.4

■SUMIFSにこだわるなら(その1) =SUMIFS(M3:M500,M3:M500,">0",J3:J500,"月曜日",N3:N500,"○")-SUMIFS(M3:M500,M3:M500,"<0",J3:J500,"月曜日",N3:N500,"○") ■SUMIFSにこだわるなら(その1) M列の代わりに、O列で =ABS(M3) のように絶対値の列を作成して =SUMIFS(O3:O500,J3:J500,"月曜日",N3:N500,"○") ■SUMPRODUCT関数を使用して =SUMPRODUCT(ABS(M3:M500)*(J3:J500="月曜日")*(N3:N500="○"))

aruchan2615
質問者

お礼

かなり長いですが最初の式がうまく機能しました。 ありがとうございました。 3番目はなぜかエラーになりました。

その他の回答 (5)

回答No.6

■SUMIFSにこだわるなら(その3) =SUM(SUMIFS(M3:M500,M3:M500,{">0","<0"},J3:J500,"月曜日",N3:N500,"○")*{1,-1}) 確認済み、参考まで

aruchan2615
質問者

お礼

ありがとうございます。 この方が短くてよいですね。。

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

話はずれるが 例データ A-C列 、D列は該当行にしるしをつけただけ Å列a, B列x の行のC列を足す。ただし絶対値で。 a x -1 1 a x 2 1 s x 3 d x -3 a y 3 c y 1 a x -3 1 式 =SUMPRODUCT((A2:A8="a")*(B2:B8="x")*(ABS(C2:C8))) で結果6になるので、 M3:M500の前にABSをつけてダメなら これ(SUMPRODUCT)ででもやってみたら。 ーー 配列数式でも範囲の前のABSは使えるようだ =SUM(IF((A2:A10="a")*(B2:B10="x"),ABS(C2:C10),0)) と入れてSHIFT+CTRL+ENTERキーを同時押しする。

aruchan2615
質問者

お礼

ありがとうございました

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

=SUM(IF(J3:J500="月曜日",IF(N3:N500="○",ABS(M3:M500),""),"")) でセルをアクティブにして SIHFT+CTRL+ENTERの配列数式を使うといかがでしょう。 {=SUM(IF(J3:J500="月曜日",IF(N3:N500="○",ABS(M3:M500),""),""))}

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! 当方はExcel2007を使ったことがないので SUMUIFS関数は分かりませんが、 すでにNo.1さんが回答されていらっしゃるように 作業用の列を1列追加して =ABS(M3) という数式をいれ、オートフィルで下へコピー、又はオートフィルハンドルの+マークでダブルクリックした後に その作業列の条件が合う物を合計すればいいのではないかと思います。 仮の話をしては失礼なのですが、 もし作業列を使わないのであれば =SUMIFS(ABS(M3:M500),J3:J500,"月曜日",N3:N500,"○") という感じの数式になるような気がするのですが・・・ これも自信がありません。m(__)m

aruchan2615
質問者

お礼

ありがとうございました

回答No.1

SUMIFS関数は知らないのですが、M列の絶対値用の作業列を用意してそれを集計するのが一番簡単ではないでしょうか。 あるいは、 =SUMPRODUCT((J3:J500="月曜日")*(N3:N500="○")*ABS(M3:M500)) でも期待する結果が得られるはずです。

aruchan2615
質問者

お礼

SUMPRODUCTはなぜか全部エラーになってしまいます。 ありがとうございました

関連するQ&A

  • SUMIFS関数について

    =SUMIFS(K5:K202,A5:A202,"=>2022/07/22",A5:A202,"<=2022/08/21") A列は年月日。指定範囲(年月日)内のK列の数値の合計を抽出したい。 合計が0となります。何処が間違っていますでしょうか?。

  • SUMIFS関数について

    スプレッドシートでSUMIFS関数を使って別のタブにある表から条件に合う合計を集計しております。一つのシートではSUMIFS関数使って正しい数値を反映することができました。ところが同じ様式のシートをコピーしたものに同じ数式を入力したところ値が0になってしまいました。 数式が合っているのに数値が反映されない場合の原因が分かりましたらご教示いただけますと幸いです。

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

    A列に日付、C列に文字列、E列に数値があります。 仮に、日付は2013年4月だけ、文字列は”事務” だけに条件を絞ってE列の数値を合計する場合、エクセル2000では =SUMPRODUCT((C$1:C$1000="事務")*(TEXT(A$1:A$1000,"yyyymm")="201304")*E$1:E$1000) でうまくいきました。 こんどエクセルが2010になったので、あたらしくできたSUMIFS関数でやってみようと思い =SUMIFS(E:E,C:C, ”事務”,TEXT(A:A,"yyyymm"),”201304”) としましたが「数式が正しくありません」とエラーになってしまいます。 SUMIFS関数だと列のセル範囲を指定しなくていいので使いたいのですが・・・。 F列を作業列とし、ここにA列の日付をyyyymm形式の文字列とすれば =SUMIFS(E:E,C:C,"事務 ",F:F,"201304") で出来ますが、ほかにいい方法はないでしょうか?

  • SUMIFS関数でOR条件を使いたい場合の関数

    Excel2010を使用しています。 家計簿を作成しているのですが、SUMIFS関数でOR条件を使用したい場合どのように書けばよいでしょうか。 図は、明細と合計欄です。 ピンクのセルが円、それ以外はドルです。 合計欄のように、円とドルをそれぞれ分けて項目毎の合計額を出したいです。 セルE21のように、円の場合は「MUFJ」「ゆうちょ」ですので、MUFJとゆうちょのSUMIFS関数合計値を足しています。 これを、1行にまとめたいのですが、適切な関数はないでしょうか? SUMIFSではOR条件が使えないようですので・・・・・・ 明細行に円・ドルの列を追加すれば簡単なのですが、明細行の列はこれ以上増やしたくないので、できれば数式のほうで処理できればと思っています。 よろしくお願いいたします。

  • エクセル関数"SUMIFS"に変わる物ありますか?

    表作成しているのですが、うまくいかないところがあります。 ご指導いただければ幸いです。 条件に満たすと範囲指定した個所の合計を出すということをしたいのですが、 例えば、A列に種類(文字列)・B列に○月(文字列)・C列に金額が入力されています。 種類と○月が一致したら合計値を出すということをしたいのですが・・ 調べてみるとSUMIFSが良いみたいですが、私のは対応していないようです。 それに代わる方法はあるでしょうか?

  • SUMIFS関数の質問

    エクセルで A列のあたいがE1セルに一致し、B列の値が文字列"00"でないC列の数値を合計したい場合、 これまでエクセル2003の時は =SUMPRODUCT((A2:A15=E1)*(B2:B15<>"00")*C2:C15) のように書いてきました。 これをエクセル2010で、SUMIFS関数にしようと思い =SUMIFS(C:C,A:A,E1,B:B,<>"00") としてみました。 ところが、テストでわずか14行でやってみると答えが違うのです。 わたしのSUMIFS関数の理解があやまっているのでしょうか? 教えてください。 テストに使った2行目から15行はこんな感じです。E1セルには文字列 A があり、 =SUMPRODUCT((A2:A15=E1)*(B2:B15<>"00")*C2:C15)  は27を =SUMIFS(C:C,A:A,E1,B:B,"<>00")  は28を返します。 A 00 1 A 01 2 A 02 3 A 03 4 A 04 5 A 05 6 A 06 7 B 07 8 B 08 9 B 09 10 B 10 11 C 11 12 D 12 13 D 13 14

  • 【Excel】SUMIFSの式を絶対値にするには

    添付した画像のセルB2には以下のとおりのSUMIFSの式が入っているとします。 =SUMIFS(E:E,B:B,Q2,C:C,Q3,G:G,R2) セルC2にこの式をコピーしたいのですが、 =SUMIFS(F:F,C:C,R2,D:D,R3,H:H,S2) このようになり、合計対象範囲から条件まで、すべてズレてしまいます。 逆にB2の下のセルB3にB2の式をコピーすると条件それぞれの位置がこのように =SUMIFS(E:E,B:B,Q3,C:C,Q4,G:G,R3) ズレます。 表マトリクスの数値の合計をだすために、どの位置にセルB2の式をコピーしても正確な結果がでるようにセルB2を絶対値としたいのです。セルB2に入れる正確な式を教えてください。 また式だけではなく絶対値となる理由もご説明していただけると幸いです。

  • エクセル2007 SUMIFS

    SUMIFS関数を使用して複数条件の集計をしたいと思ったのですが、 うまくいかず、SUMPRODCT関数で対応しました。 SUMIFS関数について質問ですが、 SUMIFS関数の合計範囲は1列と決まっているのでしょうか? また、合計範囲・条件範囲は同じ行でなければならないのでしょうか? そのように変更するとうまくいきます・・・ うまくいかなかった状況は下記のとおりです。 表1  A   B   C   D   E 1   4月  4月  4月  4月 2東京  5   2   4   1  3東京  1   8   3   2 4神奈川 7   0   3   9 5千葉  8   5   4   2 6千葉  2   1   1   1 7埼玉  4   8   5   2 表2   A    B   10    4月 11東京  26 12神奈川 19 13千葉  24 14埼玉  19 表2のB11に『SUMIFS(B2:D7,A2:A7,A11,B1:E1,B10)』 (絶対参照を省いてい書いています) 仕事上は解決しましたが、SUMIFSでうまくいかなかったことが気になるので、ご教授願います。

  • 計算式で出た値の合計額を計算する 他

    振り込み額が3万円以上ならいくら、未満ならいくら、と 銀行振込の手数料を計算するために =IF(K74>=30000,"315",IF(K74>=10000,"105","0")) =IF(K79>=30000,"630",IF(K79>=1,"420","0")) M列にこんな関数を入れました。(行5から209まで。K列が振込額です) これら、手数料を合計しようと オートザム(=SUM(M5:M209))を使ったら、値がまったく出ず0になってしまいます。 どうすれば合計額を出せるのでしょうか。 そもそも、Kに数値が入っていない状態で(数式は入っていますが) 3万以上のときに表示される条件になっている数値が出てきてしまっています。式がおかしいのでしょうか。 ちなみに、上記K列には =IF(J5-N5>=100000,"",IF(J5-N5=0,"",J5-N5)) という関数を入れて10万以上と0なら表示しない、10万未満なら表示というようにしているのですが、(J列が買掛金、N列が相殺額です) こちらが影響しているのでしょうか? 助けてください。宜しくお願いいたします。

  • エクセル IF関数 条件を満たす行に印をつける

    A1:J30までにランダムな数値が入力されている表があります。M1:N4には検索値を入力できる箇所があり、条件に該当する行があればK列に○を付ける、ということがしたいです。その条件は、 (1)M1かN1に該当する (2)M2かN2に該当する (3)M3かN3かM4かN4に該当する この3条件のすべてを満たす行があればK列に○です。 いろいろ調べて、IF関数とsumproductを組み合わせてやってみたのですが、正しい結果にならずお手上げ状態です。(ちなみにこれ↓長すぎなのもネック。。。) =IF(AND(SUMPRODUCT((A1:J1=$M$1)+(A1:J1=$N$1))>=0,SUMPRODUCT((A1:J1=$M$2)+(A1:J1=$N$2))>=0,SUMPRODUCT((A1:J1=$M$3)+(A1:J1=$N$3)+(A1:J1=$M$4)+(A1:J1=$N$4)>=0)),"○","") IF関数でなくてもできれば何でも良いので、教えてください。 よろしくお願いいたします。

専門家に質問してみよう