- ベストアンサー
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
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでいいかな =SUMPRODUCT((C1:G1=A9)*(C2:G2=A10)*(C3:G3=A11)*(A4:A6=A8),C4:G6)
その他の回答 (2)
- nihonjinn
- ベストアンサー率39% (79/200)
行と列を入れ替えた表なら思いつきましたが・・・だめですか? 「行列を入れ替えて貼り付け」なら作り変えることができます。 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)) と入力すればできました。
お礼
ご回答ありがとうございます。 データベース関数はなんとなく敷居が高い感じがして使ったことがなかったのですが、お教えいただいた式を試してみて、便利に使えるということが分かりました。 また、同じデータでも行列を入れ替えることで取り回しやすくなることがあるということも実感しました。 お示しいただいた解決方法は今回の私の希望とは少し違いましたが、今後 きっと活用させていただく場面があると思います。ありがとうございました。
- wisemac21
- ベストアンサー率39% (171/429)
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,""))))))
お礼
ご回答ありがとうございます。 論理式を使わなければいけないと思いこんでいたのですが、このように条件分岐で解決できるのですね。たいへん勉強になりました。ありがとうございました。
お礼
とてもすっきりとした式で私の希望をかなえてくださり、ありがとうございます。 SUMPRODUCT関数がこのように表引きに使えるとはまったく思いもよりませんでしたので、感動しました。 この式を縦横にコピーすれば、一度に複数のセルを参照表示することもできますね。いろいろと応用できそうな気がします。ありがとうございました。