- ベストアンサー
セル位置を計算してそのセルを参照したい
例えば、シートAの○行目の△列目の値を参照するにはどう式を書けばいいでしょうか。 実際には○行目△列目の部分には計算式が入ります。 =address(sheetA!○△) ↑こんな風に書けばいいと思ったのですがうまくできません。 よろしくおねがいします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
いくつか方法はあります。 =OFFSET(起点のセル,起点からの行番号,起点からの列番号,行の幅,列の幅) =INDEX(範囲,範囲上端からの行番号,範囲左端からの列番号) =INDIRECT(列の文字&行の位置) ADDRESSはセルの座標を示すだけなので参照する場合は =INDIRECT(ADDRESS(行番号,列番号,,,シート名)) ですね。
その他の回答 (4)
- sige1701
- ベストアンサー率28% (74/260)
>=INDEX( 体重平均.$B$2:$AF$6 ; MONTH(A146) ; DAY(A146) ) 「体重平均.」ではなく「体重平均!」を 「;」ではなく「」を使用します >=INDEX(体重平均!$B$2:$AF$6,MONTH(A146),DAY(A146))
- bys07405
- ベストアンサー率38% (37/97)
No.2です。 Win2000、Excel2000の場合で答えていました。 Excel2000だと区切り文字を間違えていますね。 =INDEX( '体重平均'!B2:AF6 ; MONTH(A146) ; DAY(A146) ) でなく =INDEX('体重平均'!B2:AF6, MONTH(A146), DAY(A146)) となります。 ただ、こちらのほうだとあらかじめ範囲を決める必要があり、列/行番号もその範囲の相対参照になるためNo.3さんのINDIRECTが分かりやすいと思います。 示してくれた例を元にするとこんな感じでしょうか。 =INDIRECT(ADDRESS(MONTH(A146),DAY(A146),,,"体重平均")) ただ互換ソフトと言うことなのでそのソフト名を書かないと正確な回答はでてこないと思います。
- bys07405
- ベストアンサー率38% (37/97)
No.1さんと違う解釈をしていました。 参照するセルの行、列があらかじめ決まっているのでなく、計算して出した○行目、△列目にあるセルの値を参照したいという場合、index関数などどうでしょか。 たとえば INDEX(A1:Z99, 3, 2) とするとA1~Z99の範囲の中の3行目、2列目のセルの値を参照します。 3, 2とあるところに INDEX(A1:Z99, 2+1, 1+1) と直接計算式を入れても良いし INDEX(A1:Z99, AA1, AB1) というように計算式が入っているセル番号を指定しても良いです。
お礼
ここに補足を書かせていただきます。 回答が理解できたので、実際の式は次のようにかいてみたけどだめでした。私のはエクセル互換ソフトなので微妙に違いますが、もしかして根本的に間違っているんでしょうか。 =INDEX( '体重平均'!B2:AF6 ; MONTH(A146) ; DAY(A146) )
補足
すいません。まだ回答をよく理解できませんが補足いたします。 今回はシートA(別のシート)を参照したいので INDEX(シートA!A1:Z99, 3, 2) と書けばよいのでしょうか。じぶんでもやってみます。
- shabushabu
- ベストアンサー率35% (20/57)
普通に =SheetA!○△ とやれば良いのではないでしょうか? たぶん関数なんて必要ないですよ。 これで○行目、△列目の関数もちゃんと反映しますし・・・。
補足
すいません、補足します。 行の計算式は Month(A100) 列の計算式は Day(A100) としています。で、 =SheetA!Month(A100)Day(A100) と書いてもだめなんです。バカな質問かもしれませんが、よろしくおねがいします。
お礼
遅くなってすいませんでした。いろいろ試した結果、自分のソフト(OpenOfficde)では次の式でうまくいきました。 =INDEX( 体重平均.$B$2:$AF$6 ; MONTH(A148)-7 ; DAY(A148) ) ほかの皆さんも有難うございました。
補足
場所がないのでさっきの補足をここに追加いたします。私の互換ソフトでは次のような記述になるみたいでした。でも以前「パラメータが不適切です」エラーが出てしまいます。エクセルとかなり違うのかも。 =INDEX( 体重平均.$B$2:$AF$6 ; MONTH(A146) ; DAY(A146) ) #3の回答へ。 たくさんの情報有難うございます。 一つ一つやって確かめたいと思います。 お礼、補足はちょっと遅くなるかもしれません。すいません。