• ベストアンサー

Excel、LARGE関数と抽出

__F__G__H  範囲A1~D4にこのようなデータがあり各項目でまとめた表を X_1__2__3 作りたいのですがうまくできなく質問させていただきます。 Y_6__5__4  1つのセルにA2からA4の値をいれ他の2項の上位を2つを検出 Z_7__9__8 したいと思っています。    便宜上、上記の表が学校別、学年別の生徒数だとすると 学年○○校名○○生徒数○○     校名○○生徒数○○ これに、学年Xを入力すると    学年Zにした場合は↓ 学年X 校名H 生徒数3______学年Y 校名F 生徒数6 ____校名G 生徒数2_________校名G 生徒数5    このように1つの項で連動させ残り2項も埋めてやりたいのですが うまくいかず質問させていただきました。

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

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.2

入力した学年の列を抜き出す作業行を用意し、その列に対してLARGE関数を使います。 校名はその結果を対象にMATCH関数とINDEX関数の組み合わせで求められます。 学年入力欄をA7セルと仮定します。 8行目を作業行として使う場合、B8セルに↓の式をいれ、D8までコピーします。 =VLOOKUP($A$7,$A$2:$D$4,COLUMN(),FALSE) これで、入力した学年のデータが表示されますので、B8:D8を対象にLARGE関数を使います。 B10セルに1位の値 =LARGE(B8:D8,1) B11セルに2位の値 =LARGE(B8:D8,2) 校名は次の様になります、 A10セルに1位の校名 =INDEX(B1:D1,MATCH(B10,B8:D8)) A11セルに2位の校名 =INDEX(B1:D1,MATCH(B11,B8:D8)) これでどうでしょう? しかしながら、もう少し判りやすい例にして頂きたい物です…。 F、G、H、X、Y、Zでは、列と混同しますし、説明文も書きにくいです。 あと、「学年Zにした場合は↓」と、ありますが、コレは学年Yの間違いですよね?

maroonfox
質問者

お礼

まず、見づらかった点お詫びします。最初から1年など名づければよかったと 反省しています。 本題の表ですが、やりたかったことがすべてでき感動しました。 なるほど、作業枠を作りCOLUMNで列指定すのですね… 勉強になりました。 それに、わざわざ画像も貼っていただきましてありがとうございました。 とてもわかりやすかったです。

その他の回答 (1)

  • web2525
  • ベストアンサー率42% (1219/2850)
回答No.1

学年X入力時に校名F、学年Y入力時に校名H、それぞれの生徒数は表示しないのですか? 表示する条件、表示されない条件がなにか別にあるのでしょうか? 無いのであればVLOOK関数で呼び出せばよいと思います。

maroonfox
質問者

お礼

ありがとうございます。 学年を入力することで生徒数の上位2校の名とそれに合わせた生徒数を 出したかったのです。

関連するQ&A

専門家に質問してみよう