• ベストアンサー

エクセルで2つ以上の条件から値を抽出し、任意のセルに反映させる方法

A列にすべて異なる数値データがランダム入力されていて、B列に複数名の氏名が入力されている大きなデータがあります。(同一名の重複を含む。)B列から同一名の者を抽出した上で、A列にランダムに表示される数値のうち一番大きい数値をC列に反映させたいのですが、VBAなどで自動抽出は可能でしょうか?ご教示よろしくお願いします。 A    B    C 2 田中一郎 7 7 田中一郎 7 1 田中一郎 7 4 山本桂子 8 8 山本桂子 8 3 山本桂子 8

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

  • ベストアンサー
  • maron--5
  • ベストアンサー率36% (321/877)
回答No.1

C1=MAX(INDEX(($B$1:$B$10=B1)*$A$1:$A$10,)) ★下にコピー

kenvvvvv
質問者

お礼

早速のご回答ありがとうございます。無事に抽出することができ助かりました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.2

第2行からデータが始まるとしてA2:B10に下記データがあるとして 2 a 12 7 s 7 2 e 2 3 a 12 5 d 5 1 s 7 12 a 12 3 a 12 4 d 5 配列数式ですが C2に =MAX(IF($B$2:$B$10=B2,$A$2:$A$10,0)) と入れてSHIFT+CTRL+ENTERの三つのキーを同時押しする。 この式をC10まで式を複写する。 結果は上記の通り。 >、VBAなどで自動抽出は可能でしょうか 一般にエクセルでは、処理の自由度は 関数式<VBA であって、やり方もVBAなら色々ありえる。 質問者がVBAの回答を現状のVBAの理解の程度から、全く受けつけないのか否か(またはVBAに限るのか)を、質問に書いて置けばよいのです。

kenvvvvv
質問者

お礼

ご回答ありがとうございます。VBAについては、説明不足ですみません。VBAの知識はあらかじめ記述されているものを、少し加工し使用することができる程度の初心者です。丁寧にご説明頂き、ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A