プロが教えるわが家の防犯対策術!

とても困っています。似た質問がいくつかありましたが微妙に違うものが多かったので、
こちらで質問させていただきます。
下記のように、A列のグループ、B列の品物、値段があるとします。

A列 B列 C列
a みかん 100
a ぶどう 200
a なし  300
b おでん 200
b うどん 500
b おそば 100
b ぱすた 600
c こいぬ 700
c こねこ 300
c ぱんだ 900
c ととろ 150

これをグループごとの値段の最大値を元に、B列の品物を抽出したいのです。

希望パターン①
A列  
なし  
ぱすた 
ぱんだ 

希望パターン②
A列 B列 C列
a なし  300
b ぱすた 600
c ぱんだ 900

可能な限り関数で、難しい場合はピボットテーブルで、この結果を返せませんでしょうか。
わかりづらい質問で申し訳ありません。
よろしくお願いします。

A 回答 (3件)

No.1・2です。



>この関数をはめ込むとトータルで大きい数字(11行目の900)にしか数字を返しませんでした。

前回の画像の配置どおりだとします。
D2セルが配列数式になっていないのでは?
No.1で書いたようにCtrl+Shift+Enterで確定してください。

すでに数式が入っている場合はD2セルを選択し数式バー内を確認してください。
No.2の数式がそのまま入っていたら
(入っていない場合はこの画面から数式をコピー&ペーストしD2セルに貼り付け)

① D2セルをダブルクリック
② 数式バー内で一度クリック
③ F2キーを押下

①~③のいずれかの操作をしてください。
編集可能になりますので、
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後に{ }マークが入り配列数式になります。
D2セルのフィルハンドルで下へコピー!

これで各グループごとの最大値の行に行番号が表示されるはずです。
そしてF2セルの数式は配列数式ではありませんので
そのままEnterだけでOKです。m(_ _)m
    • good
    • 1

No.1です。



投稿後気づきました。
作業列の配列数式の範囲が違っていました。
D2セルは
=IF(A2="","",IF(C2=MAX(IF(A$2:A$1000=A2,C$2:C$1000)),ROW(),""))
に変更してください。

どうも失礼しました。m(_ _)m
    • good
    • 1
この回答へのお礼

お調べいただきありがとうございます。
試してみましたが、この関数をはめ込むとトータルで大きい数字(11行目の900)にしか数字を返しませんでした。A,B,C毎に数字を返してほしいのですが、どのようにすればいいでしょうか。。
ご教示ください。宜しくお願いします。

お礼日時:2016/12/06 19:43

こんばんは!



↓の画像のように作業用の列を設けても良いですか?
一例です。

作業列D2セルに
=IF(A2="","",IF(C2=MAX(IF(A$2:A$41000=A2,C$2:C$1000)),ROW(),""))
配列数式ですので、Ctrl+Shift+Enterで確定!
D2セルのフィルハンドルで下へずぃ~~~!っとコピーしておきます。

そしてF2(配列数式ではありません)に
=IFERROR(INDEX(A:A,SMALL($D:$D,ROW(A1))),"")
という数式を入れフィルハンドルで列・行方向にコピーすると
画像のような感じになります。

※ 万一最大値が複数ある場合は、すべて表示されます。m(_ _)m
「Excelでグループの最大値から項目を抽」の回答画像1
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています