• ベストアンサー

EXCEL 3つ以上の条件による表引き

ご覧いただきありがとうございます。EXCELでの表引きについて、お知恵をお貸しください。 通常、表引きは縦・横2つのキーを指定して行うものだと思うのですが、3つ以上の条件による表引きは可能でしょうか。具体的には以下のような表引きを行いたいのです。 次のような表があるものとしてください。    A  B   C    D   E    F   G 1    学年  01   01   02   02   03 2   クラス   01   01   01   01   01 3   番号   01   02   01   02   01 4 A校     792  766   26   284  570 5 B校     446  424   23   147  537 6 C校     757  745   12    85  270 7 8 A校 9   01 10  01 11  01 12  792 このような表で、A8~A11セルに学校名、学年、クラス、出席番号を入れるとA12セルに対応するデータが表示されるようにしたいのです。 A12セルに『{=INDEX(C4:G6,MATCH(A8,A4:A6,0),MATCH(A11,C3:G3,0))*((C1:G1=$A$9)*(C2:G2=$A$10)*(C3:G3=$A$11))}』 という式を入れてみたところ、A9~A11セルに01を入力したときだけデータが表示されますが、それ以外の場合はゼロが表示されます。良い関数式がお分かりになられる方がいらっしゃいましたら、どうかご教示ください。 別にシートを用意して、文字列の結合で横方向のキーを010101、010102…と加工した上で表引きするのが順当な方法だとは思うのですが、できればそういう中間的なシートは使わずに、もとのデータから直接表引きしたいと思っています。よろしくお願いいたします。 OS WindowsXP Home EXCEL 2002

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

  • ベストアンサー
  • sige1701
  • ベストアンサー率28% (74/260)
回答No.3

こんな感じでいいかな =SUMPRODUCT((C1:G1=A9)*(C2:G2=A10)*(C3:G3=A11)*(A4:A6=A8),C4:G6)

akeem2003
質問者

お礼

とてもすっきりとした式で私の希望をかなえてくださり、ありがとうございます。 SUMPRODUCT関数がこのように表引きに使えるとはまったく思いもよりませんでしたので、感動しました。 この式を縦横にコピーすれば、一度に複数のセルを参照表示することもできますね。いろいろと応用できそうな気がします。ありがとうございました。

その他の回答 (2)

  • nihonjinn
  • ベストアンサー率39% (79/200)
回答No.2

行と列を入れ替えた表なら思いつきましたが・・・だめですか? 「行列を入れ替えて貼り付け」なら作り変えることができます。   A   B   C   D   E   F   G 1 No  学年 クラス 番号 A校  B校  C校 2 1   1   1   1  792  446  757 3 2   1   1   2  766  424  745 4 3   2   1   1   26   23   12 5 4   2   1   2  284  147   85 6 5   3   1   1  570  537  270 7 8 学年 クラス 番号 学校 9  2   1   2  B校 10 147  上記のような表だと、A10に =INDEX(E2:G6,DGET(A1:D6,A1,A8:C9),MATCH(D9,E1:G1)) と入力すればできました。

akeem2003
質問者

お礼

ご回答ありがとうございます。 データベース関数はなんとなく敷居が高い感じがして使ったことがなかったのですが、お教えいただいた式を試してみて、便利に使えるということが分かりました。 また、同じデータでも行列を入れ替えることで取り回しやすくなることがあるということも実感しました。 お示しいただいた解決方法は今回の私の希望とは少し違いましたが、今後 きっと活用させていただく場面があると思います。ありがとうございました。

  • wisemac21
  • ベストアンサー率39% (171/429)
回答No.1

A11=INDEX(B4:F6,MATCH(A8,A4:A6,0),IF(AND(A9=B1,A10=B2,A11=B3),1,IF(AND(A9=C1,A10=C2,A11=C3),2,IF(AND(A9=D1,A10=D2,A11=D3),3,IF(AND(A9=E1,A10=E2,A11=E3),4,IF(AND(A9=F1,A10=F2,A11=F3),5,""))))))

akeem2003
質問者

お礼

ご回答ありがとうございます。 論理式を使わなければいけないと思いこんでいたのですが、このように条件分岐で解決できるのですね。たいへん勉強になりました。ありがとうございました。

関連するQ&A