• ベストアンサー

条件付のsum,max,min関数の書き方

sum関数なので、合計欄のセルに ex.=SUM(B1:B6)などと書くときに、 a列が"1"の場合のみ合計欄のセルに加算したい場合は どうやって書けばいいでしょうか? __ A B 1 1 100 2 0 200 3 1 300 4 0 400 5 1 500 6 0 600 合計欄の値=900にしたいのですが.... もしも書き方があるのであれば、 MAX,MINの場合も同じでしょうか?

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

  • ベストアンサー
  • comv
  • ベストアンサー率52% (322/612)
回答No.5

こんばんは!  =SUMIF(A1:A6,1,B1:B6) 書式は  =SUMIF(検索範囲,条件,集計範囲) です。 検索範囲と集計範囲は、対比させるので同じ広さにする必要があります。 検索条件には文字列もOKです。 比較演算子 も可能で  例えば   ">1" 1より大きい   ">=1" 1以上   "<>1" 1以外 また文字列の検索ではワイルドカードも使えます  例えば   "*a*" 文字 a を含む   "a*" 先頭文字が a   "*a" 文末が a MAXとMINのような機能は単関数ではありませんから 配列関数または配列数式を使うとこになります。 配列数式の例 A列が1のB列の最大値  =MAX(IF(A1:A6=1,B1:B6)) と数式バーに記載後  配列数式とするためには [Enter]をせずに [Ctrl]+[Shift]を押したまま[Enter]で入力確定します  成功すると数式バーに  {=MAX(IF(A1:A6=1,B1:B6))}  と{}が付加されます。 最小値も同様で  =MIN(IF(A1:A6=1,B1:B6))  同様に配列数式として入力確定

Ref16570
質問者

お礼

とてもご丁寧なご説明ありがとうございました。 大変勉強になりました。

その他の回答 (4)

  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.4

>a列が"1"の場合のみ合計欄のセルに加算したい場合は >どうやって書けばいいでしょうか?  =SUMIF(A1:A6,"=1",B1:B6) のように書けます。 >MAX,MINの場合も同じでしょうか? 上のSUMIFを配列数式で書き換えてみると、  =SUM(IF(A1:A6=1,B1:B6,0)) となります。数式バーから登録する時には、Ctrl+Shift+Enter として登録します。 これと同じように配列数式を使って、MaxIfモドキ、MinIfモドキを作ってみました。 a列が"1"のセルのみのMax   =MAX(IF(A1:A6=1,B1:B6,MIN(B1:B6))) a列が"1"のセルのみのMax   =MIN(IF(A1:A6=1,B1:B6,MAX(B1:B6))) SUMと似ています。ともにCtrl+Shift+Enter として登録します。

Ref16570
質問者

お礼

こんな裏技?があるんですね。 エクセルといえどもとても奥が深いですね。 とても勉強になりました。 ありがとうございました。

回答No.3

SUMIF関数を使うなら、=SUMIF(A1:A6,1,B1:B6) のような式を使えばできると思います。 MAX,MINはちょっと思い浮かびません。関数でなければオートフィルタを使ってA列が1のデータだけ抽出。他のシートにコピー、または下のステータスバーを利用して最大値を読みとる。 かな? また、考えてみます。

Ref16570
質問者

お礼

オートフィルター機能ですね。 ヘルプを参考にして、使用してみます。 アドバイスありがとうございました。

  • oja
  • ベストアンサー率29% (78/261)
回答No.2

ex=SUMIF(A1:A6,1,B1:B6) >MAX,MINの場合も同じでしょうか? MAXIFみたいのは無いから、No.1の方のやり方が面倒が無いのでは?

Ref16570
質問者

お礼

SUMIF関数使用できました。ありがとうございます。

  • wolv
  • ベストアンサー率37% (376/1001)
回答No.1

とりあえず,簡単にできる方法は, 「セルC1に =IF(A1=1,B1,"")  と書き,C6までコピーする.  C1からC6まで合計する」 です. sumif とか countif とかいうのを見たことあるような気もしますが…….

Ref16570
質問者

お礼

アドバイスありがとうございました。

関連するQ&A