1465783356 Excelでの質問です。表内で○を付けたものの「項目名」を自動で表示させるにはどうすればいいでしょうか。


状況は添付のとおりです。
学生4名が例示してありますが、
1)「進路の第一希望」(◎がついているもの)の項目名を表示させたい。
2)選択授業の第一希望(1)・第二希望(2)をそれぞれ科目名(項目名)で表示させたい。
以上を別のシートで自動的に表示させるには、どのような関数を使えばいいでしょうか。ifとvlookupの組み合わせだととんでもない入れ子になってしまいますが、すっきりした方法はありますか。

登録直後でポイントがありませんので0ptで登録していますが、解決できましたら後日500ポイントほど進呈したいと思っています。よろしくご教示くださいませ。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2016/06/20 11:05:03

ベストアンサー

id:takashi_m17 No.1

回答回数120ベストアンサー獲得回数20

INDEXとMATCH関数を使います。
元の表(緑)をSheet1としています。

1)進路の第一希望

=INDEX(Sheet1!D2:G2,1,MATCH("◎",INDIRECT("Sheet1!D"&MATCH(A2,Sheet1!A:A,0)&":G"&MATCH(A2,Sheet1!A:A,0)),0))


2)選択授業の第一希望・第二希望
=INDEX(Sheet1!H2:K2,1,MATCH(1,INDIRECT("Sheet1!H"&MATCH(A2,Sheet1!A:A,0)&":K"&MATCH(A2,Sheet1!A:A,0)),0))


=INDEX(Sheet1!H2:K2,1,MATCH(2,INDIRECT("Sheet1!H"&MATCH(A2,Sheet1!A:A,0)&":K"&MATCH(A2,Sheet1!A:A,0)),0))


(絶対参照は省いています)

id:skrk1969

ありがとうございます!
ひとまず貼りつけてみた範囲では、微修正できちんと動作しました。
INDEX、MATCH、INDIRECTを理解して、応用してみたいと思います。

2016/06/14 16:48:08
id:takashi_m17

INDEXで指定する範囲の中から、”◎”や”1””2”と一致する(MATCH)セルを返しています。

MATCH(A2,Sheet1!A:A,0)

ここでA2にある生徒番号と一致する行を探して、

MATCH("◎",

ここで◎のある列を探しています。

INDIRECTでは上記のMATCHを補佐していますが、関数の機能としては文字列である”A1”なんかを引数として扱えるようにするための関数です。

2016/06/14 17:14:24

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません