• ベストアンサー

エクセルの抽出方法を教えてください

表示させたいシート1、元データのシート2があります。 シート2には支社・営業担当・営業成績があります。 営業成績で並び順は毎週変わります。 各支社には3~10名の営業担当が在籍します。 シート1のC3セルに支社名を入力(実際はリスト使用してますが)すると、シート1のB8からB17のセルに営業担当が、C8からC17のセルに営業成績が表示されるようにしたいのです。 VLOOKUPだと、一人目の営業担当名しか表示されません。 よい方法をご存知の方がいらっしゃれば、よろしくお願いいたします。

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

  • ベストアンサー
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

シート2の配列情報が3種類しかご提示されなかったので、それに合わせた次第です。 A列=支社コード B列=支社名 C列=営業担当者名 D列=営業実績値 上記の配列ならば、次の数式をお試し下さい。 =IF(ROW(A1)-1<COUNTIF(Sheet2!$B$1:$B$200,$C$3),INDEX(Sheet2!C:C,SMALL(IF(Sheet2!$B$1:$B$200=$C$3,ROW(Sheet2!$A$1:$A$200),99999),ROW(A1))),"")

kaorin_yas
質問者

お礼

ありがとうござました! 無事解決しました。 今回は自分のやりたいことを説明するにも、 ある程度の知識が必要だと身にしみました。 本当にありがとうございました。

その他の回答 (1)

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

次の方法をお試しください。 ・データシートは200行で設定していますので調整して下さい。 ・配列数式ですので、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 ・B8に次の数式を設定して、縦横にコピーして下さい。 =IF(ROW(A1)-1<COUNTIF(Sheet2!$A$1:$A$200,$C$3),INDEX(Sheet2!B:B,SMALL(IF(Sheet2!$A$1:$A$200=$C$3,ROW(Sheet2!$A$1:$A$200),99999),ROW(A1))),"")

kaorin_yas
質問者

お礼

すばやいご回答、ありがとうございました。 せっかく教えていただいたのですが、 なぜか表示されるのが C8=シート2の2行目(正しい) C9=シート2の4行目(3行目が正しい) C10=シート2の6行目(4行目が正しい) となってしまうのですが・・・ なにか解決方法はありますでしょうか? もしよろしければ、再度ご教唆ねがいます。 なお、シート2(データシート)の構成は A列=支社コード B列=支社名 C列=営業担当者名 D列=営業実績値 となっております。

関連するQ&A