- 締切済み
エクセル関数
下記のような表があった場合の質問です。 A列は違う日付、B、C列は同じものが複数ある場合や一つしかない場合があり、D列は全部同じ場合と一部違う場合があります。 A B C D E ナンバー 名前 金額 1/1 1001 三井 1000 1/10 1001 三井 1000 1/18 1001 三井 1000 1/3 1002 みずほ 1500 1/7 1002 みずほ 1500 1/31 1002 みずほ 1600 1/4 1003 三菱 2000 1/15 1003 三菱 2000 1/22 1003 三菱 2100 三井なら1/18、みずほなら1/31、三菱なら1/22の行を抽出(金額が一番高いデータを抽出したい)のですが、E列にはどんな関数をいれれば良いでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- maron--5
- ベストアンサー率36% (321/877)
◆mike_gさんの表をお借りしまして H2=INDEX($A$1:$A$10,MAX(INDEX(($D$2:$D$10=MAX(INDEX(($C$2:$C$10=G2)*($D$2:$D$10),)))*($C$2:$C$10=G2)*ROW($A$2:$A$10),))) ★下にコピー I2=MAX(INDEX(($C$2:$C$10=G2)*($D$2:$D$10),)) ★下にコピー
A B C D E F G H 1 日付 ナンバー 名前 金額 名前 日付 金額 2 1/1 1001 三井 1000 三井 1/18 1000 3 1/10 1001 三井 1000 みずほ 1/31 1600 4 1/18 1001 三井 1000 三菱 1/22 2100 5 1/3 1002 みずほ 1500 6 1/7 1002 みずほ 1500 7 1/31 1002 みずほ 1600 8 1/4 1003 三菱 2000 9 1/15 1003 三菱 2000 10 1/22 1003 三菱 2100 11 G2: {=INDEX(INDIRECT(G$1),MATCH(MAX((名前=$F2)*日付*金額),日付*金額,0))} (配列数式 ) ただし、 名前=$C$2:$C$20 日付=$A$2:$A$20 金額=$D$2:$D$20
- imogasi
- ベストアンサー率27% (4737/17069)
関数では出来るかな。 配列数式と言うものをつかう(聞いた事も無いかも) 例データ 質問のデータを少し変えている -- ナンバー 名前 金額 1月1日 1001 三井 1000 1月10日 1001 三井 1000 1月18日 1001 三井 1000 1月3日 1002 みずほ 1500 1月7日 1002 みずほ 1500 1月31日 1002 みずほ 1600 1月4日 1003 三菱 2500 1月15日 1003 三菱 2000 1月22日 1003 三菱 2100 ーーーー G列 H列 =>どこの列でも良い。G列は手入力(または フィルタオプション利用) 三井 1000 みずほ 1600 三菱 2500 H2の式 =MAX(IF($C$2:$C$10=G2,$D$2:$D$10)) と入れて、SHIFT+CTRL+ENTER(3つのキーを同時押し) H3,H4には式を複写