プロが教える店舗&オフィスのセキュリティ対策術

Excel セルの指定に関して質問です。
セルの値で列(行)を選択するにはどうするのでしょうか?
例えば B5に "3"が入っていたらC列(C4セル)、"4"が入っていたらD列(D4セル)
を参照するというような具合に、ある特定のセルの値によって参照する列を変えたいのですが。
R1C1形式中にセルの参照をさせれば可能になりそうですが記述方法が分かりません。
よろしくお願いします。

A 回答 (6件)

=IF(B5=3,C4,IF(B5=4,D4,""))


こうかな?
    • good
    • 0

=OFFSET(A4,0,B5-1)


とか?(エラー処理等なし)
    • good
    • 0

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行目のセルの値によって判断したいと思っています。
よろしくお願いします。

補足日時:2009/05/11 17:58
    • good
    • 0

一例です。


=INDEX(4:4,,B5)
    • good
    • 0

=IF(Sheet2!G3 = "","ABC",・・・



この式の「Sheet2!G3」この部分を書き換えたいって事かな?
であるならば、先に回答したものを元にすると

=IF( INDIRECT("Sheet2!"&ADDRESS(ROW(),F2)) = "","ABC",・・・

という感じになります。

> ROW()

これは、この関数の書かれているセルの行番号となります。
    • good
    • 0

こんばんは!


質問内容を取り間違えていたらごめんなさい。

=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
    • good
    • 0
この回答へのお礼

お礼が遅くなってしまい申し訳ありません。
教えていただいた INDEX関数と ROW関数でできました。
=IF(INDEX(Sheet2!$C$3:$N$33,ROW()-4,$F$2)<>"","ABC", ・・・
というような感じで、Sheet2のC3:N33の範囲の中のセルを参照し
そのセルが空でなければ"ABC"という文字を入れるというような
処理ができました。
INDIRECT関数のほうは、最初に試してみて概念がつかみづらかったので
出来るかもしれませんが、深追いはしませんでした。
お教えいただいたのに申し訳ありません。
書き込みくださった皆様に感謝申し上げます。

お礼日時:2009/05/14 10:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!