- ベストアンサー
エクセルのMAX関数を複数条件で
エクセルのMAX関数を下記のような複数条件をつけて 使いたいのですが、自分で式を書いてもうまくいきません。 アドバイスをよろしくお願いします。 A1に「部署名」、B1に「受注個数」、C1に「受注日」と見出しをし (A2:C9)にデータを入力した表があるとします。 部署名には営業1部、営業2部、営業3部のいずれかが入力されていて、 受注日には6月22日と、6月23日のいずれかの入力があるとします。 この表で「営業1部」であり、「6月22日」のものである受注個数の 最大の値を返したいのです。 日付「6月22日」は別途(E2)に参照用として入力したものを使いたいです。 =MAX(IF(AND(A2:A9="営業1部",C2:C9=E2),B2:B9,"")) これではダメでしょうか。 初歩的ですみません、よろしくお願いいたします。
- makoshow
- お礼率100% (6/6)
- オフィス系ソフト
- 回答数4
- ありがとう数4
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
DMAX関数を使うことで、可能です。 (配列数式を使う方法もありますが、他にも流用したいという要望もあるようですので こちらのほうがよいでしょう) DMAX(Database,フィールド,Criteria) http://excel.onushi.com/function/dmax.htm
その他の回答 (3)
- merlionXX
- ベストアンサー率48% (1930/4007)
いちばん簡単なのはこういうときの定番のSUMPRODUCT関数ではないでしょうか? A列が営業1部に等しく、C列がE2に等しいもので、B列にある数値の最大値なら =SUMPRODUCT(MAX((A2:A9="営業1部")*(C2:C9=E2)*B2:B9)) と入力するだけです。
お礼
ご回答ありがとうございます! 試してみたところ、これで最大値の個数を カウントできるようでした。 SUMPRODUCTも色々な場面で使えそうですね。 他の関数と組合せて使ったことがなかったので 大変勉強になりました。 ほかの関数ともあわせて応用してみようと思います。 ありがとうございました。
- takesun
- ベストアンサー率40% (22/54)
一応、配列数式での方法もご紹介しておきます。 任意セルへ =MAX((A2:A9="営業1部")*(E2=C2:C9)*(B2:B9)) と入力して、ctrl+shift+enterです。
お礼
ご回答ありがとうございます。 ctrl+shift+enterで入力すると{}がつくのですね。 やってみました。 しかし私の入力の仕方がまずいのか 何度やっても今回はこの式を入力すると セルには「0」値が返るのです。 実際に私が苦戦している式は、質問文の表のものと違って、 シートをまたいだセルを参照するのですが それがいけないのか、私のデータベースの作り方が悪いのか MAX・MINだけ、なぜか思い通りにいかないのです・・・ 他の関数はちゃんと動くのですが・・・ 配列数列も、もっと勉強しなければなりませんね。 次の機会にはきっとマトモに式が働くよう頑張ります!
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! 関数でないとダメですか? 一例ですがオートフィルタとSUBTOTAL関数を併用すれば出来ると思います。 ↓の画像で C11セル =SUBTOTAL(4,B2:B9) という数式が入っています。 これでオートフィルタの 「営業1部」と「6月22日」で抽出すれば、その最大値が表示されます。 尚、この場合E2セルの「6月22日」は不必要になりますけど・・・ 余計なお世話かもしれませんが 数式内にある「4」というのは最大値を求める集計方法です、 他に「9」であれば合計を求める事になります。 等々、他にも色々集計方法がありますので、 SUBTOTAL関数で検索してみてください。 以上、参考になれば幸いですが、 的外れの回答なら読み流してくださいね。m(__)m
お礼
早速、分かりやすいご回答ありがとうございます。 実は、どうして関数でなければダメかというとですね、 「ちょっとの入力で誰がやっても色んな資料を作成できる」 という裏の仕組みを作らなくてはいけなかったのです。 E2の「6月22日」を、その「ちょっとの入力」のキーに しようかな、と思っておりましたので・・・ 説明が至らず、本当に申し訳ございませんでした。 でも「4」で最大値、「9」で合計は知りませんでした。 集計方法を指定できるのですね。 大変、勉強になります。 少しでも多くのワザを身に着けなくてはいけないところに、 いいお知恵を教えてくださって、ありがとうございました。 覚えて使ってみます!
関連するQ&A
- EXcel関数でAとBとCを満たしかつEの条件を
受注日 発注NO 商品名 数 出荷日 A B C D E 1 1/5 1234 ビール 1 1/10 2 1/10 1235 ビール 5 1/20 3 1/12 酒 3 2/1 4 0345 ワイン 2 1/30 5 1/15 0256 ビール 5 2/10 上の表から受注日Aがあり(A1:A5<>””)、発注NoBがあり(B1:B5<>””)、商品名Cがビール(C1:C5=”ビール”)、出荷日Eが今月以降(2月以降)の物の数Dの合計を求めたい。 A5,B5,C5、E5で”5”
- ベストアンサー
- その他(インターネット・Webサービス)
- 複数条件の個数をカウントしたい
例として下記のような表があります。 A列には年月日、B列にはコード、C列には現在の状況が入力されています。 □ A B C 1 受注年月日 コード 状況 2 2006/1/17 A-1 確定 3 2006/1/20 A-1 キャン 4 2006/1/30 C-2 待ちち 5 2006/2/6 C-3 キャン 6 2006/3/7 B-1 確定 7 2006/4/25 A-1 キャン 8 2006/4/28 B-1 確定 1月受注の確定のデータ個数を数えたいのですが、DCOUNTではなく、配列関数でしようとしています。 {=SUM(IF($A$2:$A$8<"2006/2/1",IF($C$2:$C$8="確定",1)))} と入れています。 結果は1なはずですが、3という結果になります。 後半条件の確定の個数のみ数えているようです。 何か間違いがあるのでしょうか? またもっと簡単な違う方法があれば教えていたきたいと思います。 よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセルでIFを使った関数
エクセルで 品番 材料名 個数 品番 個数 材料 A ■ー555 10 A(1) 40(2) (3) B ▲ー100 50 C ◎ー200 30 D ▲ー100 20 E ◎ー200 40 A ■ー555 30 上記のような表があり、(1)に品番を入力すると (2)にはSUMIFを使って個数がでてきます。 表に品番Aというものがひとつしかないと限らないので、 あわせた個数がでてくるようになっています。 問題は(1)に品番を入力したときに(3)に品番に見合った材料をでてくるようにしたいのです。 IF関数を使ってやってみたのですが、材料が文字列のせいかVALUEとエラーが出ていまいちわかりませんでした。 どなたか詳しい方よろしくお願いいたします。
- ベストアンサー
- オフィス系ソフト
- エクセル 関数について
入力データ A1~A10に数値10 B1~B20に数値20 C1~C10に数値30が入力されています 質問 A1~C10の範囲内から、E1に数値 0~10の個数、E2に数値11~20の個数、E3に数値21~30の個数、 E4に数値10~30以外の個数を関数を使って計算させるには、どのようにしたらよいのでしょうか? 現在 COUNT、COUNTIF、FREQUENCYを使ってみたのですが、、、うまくいきませんでした。 何か良い アドバイスを下さい 宜しくお願い致します
- ベストアンサー
- オフィス系ソフト
- IF関数 エクセル
A B C D E F G H 1 会議室 部署名 会議 打合せ 2 9:00 開始 終了 開始 終了 3 10:00 C部署 C部署 10:00 11:00 13:00 14:00 4 11:00 B部署 B部署 11:00 13:00 5 12:00 B部署 D部署 14:00 15:00 6 13:00 C部署 ・ 7 14:00 D部署 ・ 8 15:00 D3~Hを手入力すると、B2のスケジュール表に部署名が自動反映される式を教えてください。
- 締切済み
- その他MS Office製品
- 複数条件での値参照をする関数
Excel2007を使っています。 以下のような表があります。 店番 月度 個数 111 4 1 111 5 0 113 4 0 112 4 1 113 5 2 別のシートに以下の表があります。 店番 4月個数 5月個数 111 112 113 この4月個数の列と、5月個数の列に関数で値を参照させたいと思います。 店番をA1セルとすると、B2セルには店番が111の4月の個数を表示させたいです。 B2に =IF(ISERROR(VLOOKUP(A2,元!A:B,2,0)),"",IF(VLOOKUP(A2,元!A:C,2,0)<>4,"",VLOOKUP(A2,元!A:C,3,0))) C2に =IF(ISERROR(VLOOKUP(A1,元!A:B,2,0)),"",IF(VLOOKUP(A1,元!A:C,2,0)<>5,"",VLOOKUP(A1,元!A:C,3,0))) このような式を入れると、4月か5月どちらか上に書いた方しかデータが表示されませんでした。 更新ボタンやトリガーを使わずにできるといいので、ピボットやVBAではなく関数でやりたいと思っているのですが、どのようにすれば良いか分かりません。 使える関数があれば、ぜひ教えて下さい。
- ベストアンサー
- オフィス系ソフト
- Excelでの複数結果抽出がわかりません
商品の日毎受注個数の一覧表をExcelで作成しています。 A列には日付 B列にはその日の受注個数 が並んでいます。 そしてB列中の最大値、最小値をE1、E2に関数で表示させています。 B列からE1、E2セル参照で最小値を検索し、隣A列の日付をE1の右隣セルから右方向に並べて複数抽出したいのですが、(該当する日付をすべて表示)どのような関数、マクロを書けば良いでしょうか?
- 締切済み
- オフィス系ソフト
- エクセルの関数について教えて下さい
現在ある表を元に、見積書を作っています。 すごい効率が悪く、困っています。 A1~G3に表があります。(実際にはもっと多いです) 1行目に商品名 2行目に金額 3行目に個数 G3 に合計 1・2行目は、元々商品名・金額が入っており 3行目に個数を入れていきます。 G3に合計が入るようにしています。 B2、350円 C2、320円 D2、400円 E2、500円 F2、550円 G2 B3、 1 C3、 D3、 1 E3、 F3、 G3、750円 (現在のG3に入っている数式) =F3*F2+E3*E2+D3*D2+C3*C2+B3*B2 項目が多い為、数式がすごい事になっています。 もっといい方法はないでしょうか? わかる方おられましたら、教えて頂けませんか? よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- 複数条件が一致で別シートに転記【エクセルVBA】
エクセルでセルの条件が複数一致したら別シートに転記される方法をお教えください。 シートを2枚用意して、配達日ごとに一覧化したいのです。 事前に用意したシート(配達表)の“配達”と“配達時間”が一致したら その方の名前と注文個数を右側に反映したいのですが・・・ 注文データが多すぎて困っています。 宜しくお願いします。 ■シート名:注文データ A B C D E ------------------------------------------------ 1 しめい 対応 配達日 時間 個数 ------------------------------------------------ 2 たけだ 配達 6/20(月) 13:00 2個 3 みうら 配達 6/18(土) 14:00 4個 4 らもす 郵送 6/20(月) ― 5個 5 いはら 配達 6/20(月) 14:30 8個 6 かつや 配達 6/20(月) 15:00 6個 7 みうら 郵送 6/20(月) ― 4個 ■シート名:配達表 A B C ------------------------------------ 1 配達 6/20(月) ------------------------------------ 2 12:00 3 12:30 4 13:00 5 13:30 6 14:30 7 15:00 8 15:30 9 16:00 マクロを実行すると・・・ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ■シート名:配達表 A B C ------------------------------------ 1 配達 6/20(月) ------------------------------------ 2 12:00 3 12:30 4 13:00 たけだ 2個 5 13:30 6 14:00 みうら 4個 6 14:30 いはら 8個 7 15:00 かつや 6個 8 15:30 9 16:00
- ベストアンサー
- オフィス系ソフト
- 複数の条件で関数(エクセル)
A列が「あ」の条件でB列-E列が10を超えている個数を数えたいのですが 適切な関数を教えてください。 A列が「い」の場合はVALUEになってかまいません。 ご指導よろしくお願いします。 A列 B列 C列 D列 E列 あ 11 10 5 10 い 10 23 1 1 あ 10 1 2 1
- ベストアンサー
- Windows Vista
お礼
ご回答ありがとうございます。 上記と全く同じ検索条件欄を、DSUM関数用に設けておりました! そのままMAX値を求めるのにも使えたのですね。 そこまで考えが至りませんでした。 早速活用しようと思います!