- ベストアンサー
Excel セルの値で行を選ぶ
Excel セルの指定に関して質問です。 セルの値で列(行)を選択するにはどうするのでしょうか? 例えば B5に "3"が入っていたらC列(C4セル)、"4"が入っていたらD列(D4セル) を参照するというような具合に、ある特定のセルの値によって参照する列を変えたいのですが。 R1C1形式中にセルの参照をさせれば可能になりそうですが記述方法が分かりません。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 質問内容を取り間違えていたらごめんなさい。 =INDEX(Sheet2!$A$1:$K$35,ROW(G3),F2) のような数式は希望通りにならないでしょうか? (数式の $A$1:$K$35 は適当に範囲指定していますので、表によってアレンジが必要かと思います) この意味は「範囲指定した表の中の3行目のF2で示した列の値を返します」という意味です。 行・列とも数値なら問題なく行と列を拾い出してくれますが、文字列なら一工夫必要です。 ↓に似たような質問(←私が勘違いしているかもしれませんが・・・)があったので URLを貼り付けておきます。 参考になれば幸いです。 http://oshiete1.goo.ne.jp/qa4950396.html 的外れの回答なら読み流してくださいね。m(__)m
その他の回答 (5)
- zongai
- ベストアンサー率31% (470/1474)
=IF(Sheet2!G3 = "","ABC",・・・ この式の「Sheet2!G3」この部分を書き換えたいって事かな? であるならば、先に回答したものを元にすると =IF( INDIRECT("Sheet2!"&ADDRESS(ROW(),F2)) = "","ABC",・・・ という感じになります。 > ROW() これは、この関数の書かれているセルの行番号となります。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 =INDEX(4:4,,B5)
- zongai
- ベストアンサー率31% (470/1474)
B5セルに列番号が入っていて、その列の4行目を参照するのですよね。 =INDIRECT(ADDRESS(4,B5)) > ADDRESS(x,y) x行目、y列目 のセルアドレス ADDRESS(4,B5) ならば、4行目 [B5に入力された数字]列目のセルアドレスとなります。 > INDIRECT(zz) セルアドレス「zz」の内容を参照します。
補足
早速の書き込みありがとうございます。 もう少し補足させて下さい。 現在は、例えば Sheet1 の F2に 列に関連した値が入っており この値で Sheet2 の 列を選びます。 Sheet1のC列には、このSheet2の選ばれた列の同じ行を参照した関数を 入れたいのです。 例えば Sheet1の C3には以下のような関数が入っています。 =IF(Sheet2!G3 = "","ABC",・・・ のような感じで、Sheet2のセルG3の G列を Sheet1のF2(=5)の値で指定し、 行はそのまま同じ 3行目のセルの値によって判断したいと思っています。 よろしくお願いします。
- n-jun
- ベストアンサー率33% (959/2873)
=OFFSET(A4,0,B5-1) とか?(エラー処理等なし)
- WDY
- ベストアンサー率27% (134/487)
=IF(B5=3,C4,IF(B5=4,D4,"")) こうかな?
お礼
お礼が遅くなってしまい申し訳ありません。 教えていただいた INDEX関数と ROW関数でできました。 =IF(INDEX(Sheet2!$C$3:$N$33,ROW()-4,$F$2)<>"","ABC", ・・・ というような感じで、Sheet2のC3:N33の範囲の中のセルを参照し そのセルが空でなければ"ABC"という文字を入れるというような 処理ができました。 INDIRECT関数のほうは、最初に試してみて概念がつかみづらかったので 出来るかもしれませんが、深追いはしませんでした。 お教えいただいたのに申し訳ありません。 書き込みくださった皆様に感謝申し上げます。