- ベストアンサー
条件によって参照先を変えて答えを出したい
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! すでに何通りかの回答が出ていますし、 重複するかもしれませんので、参考程度で目を通してみてください。 ↓の画像で説明させていただきます。 勝手に表の配置を少し変更させてもらっています。 右側の表で F2~I2を範囲指定 → 挿入 → 名前 → 定義 で「ぞう」としてOK 同様に「キリン」「アシカ」の名前定義をしています。 (範囲指定後名前ボックスに直接入力しても構いません) 今度動物が増えても同様に名前定義すれば対応できます。 そしてC2セルに =IF(COUNTBLANK(A2:B2)>0,"",INDEX($F$1:$I$1,,MATCH(B2,INDIRECT(A2,0),1))) という数式を入れオートフィルで下へコピーすると 画像のような感じになります。 以上、参考になれば幸いです。m(__)m
その他の回答 (4)
- KURUMITO
- ベストアンサー率42% (1835/4283)
C2セルには次の式を入力して下方にオートフィルドラッグします。 =IF(A2="","",INDEX(E:H,MATCH(B2,INDIRECT("G"&MATCH(A2,E:E,0)&":G"&MATCH(A2,E:E,0)+2,TRUE))+MATCH(A2,E:E,0)-1,2))
- kybo
- ベストアンサー率53% (349/647)
現状の表のままで補助列等を使わずするなら、 ランクは常にA、B、Cの3ランクとします。 C2に以下の数式を入れ、C4までコピー。 =INDEX($F$2:$F$7,MATCH(A2,$E$2:$E$7,0)+MATCH(B2,OFFSET($G$2,MATCH(A2,$E$2:$E$7,0)-1,0,3,1),1)-1)
お礼
ありがとうございます。 じっくり解読して理解していきたいと思います。
- suekun
- ベストアンサー率25% (369/1454)
- FEX2053
- ベストアンサー率37% (7995/21381)
範囲に名前を付けるとINDIRECTで呼び出しが可能です。 また、VLOOKUP関数は「検索値未満の最大値」が呼び出せます。 ということで、 4 A 9 B 21 C を選んで右クリック、範囲に名前を付けるを選択して「ぞう」 11 A 25 B 61 C を選んで右クリック、範囲に名前を付けるを選択して「キリン」 21 A 31 B 61 C を選んで右クリック、範囲に名前を付けるを選択して「アシカ」 として、C2セルに =VLOOKUP(B2,INDIRECT(A2),2,TRUE) とすれば出てくるんじゃないかと。キモは「区分名と同じ範囲名を作り その範囲に検索する値を入れる」という点です。
補足
関数について勉強不足でして、 取り急ぎシンプルなので 教えていただいた内容でやってみたのですが 出来ません・・・。 参照先の別表を 以下のとおり作って、 E1:F3をドラッグして「ぞう」 と言う具合に名前をつけてみたのですが |E F --|-------- 1 |4 A 2 |8 B 3 |21 C C1→A C2→B C4→#N/A という回答になってしまいます。
お礼
画像まで貼っていただき ありがとうございます。 とても参考になります。 勉強しながらじっくり理解していきます。 皆様、大変助かりました。 本当にありがとうございます。