• ベストアンサー

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

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

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

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