- ベストアンサー
条件付の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の場合も同じでしょうか?
- みんなの回答 (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)) 同様に配列数式として入力確定
その他の回答 (4)
- nishi6
- ベストアンサー率67% (869/1280)
>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 として登録します。
お礼
こんな裏技?があるんですね。 エクセルといえどもとても奥が深いですね。 とても勉強になりました。 ありがとうございました。
- tamagawa49
- ベストアンサー率46% (123/265)
SUMIF関数を使うなら、=SUMIF(A1:A6,1,B1:B6) のような式を使えばできると思います。 MAX,MINはちょっと思い浮かびません。関数でなければオートフィルタを使ってA列が1のデータだけ抽出。他のシートにコピー、または下のステータスバーを利用して最大値を読みとる。 かな? また、考えてみます。
お礼
オートフィルター機能ですね。 ヘルプを参考にして、使用してみます。 アドバイスありがとうございました。
- oja
- ベストアンサー率29% (78/261)
ex=SUMIF(A1:A6,1,B1:B6) >MAX,MINの場合も同じでしょうか? MAXIFみたいのは無いから、No.1の方のやり方が面倒が無いのでは?
お礼
SUMIF関数使用できました。ありがとうございます。
- wolv
- ベストアンサー率37% (376/1001)
とりあえず,簡単にできる方法は, 「セルC1に =IF(A1=1,B1,"") と書き,C6までコピーする. C1からC6まで合計する」 です. sumif とか countif とかいうのを見たことあるような気もしますが…….
お礼
アドバイスありがとうございました。
お礼
とてもご丁寧なご説明ありがとうございました。 大変勉強になりました。