- ベストアンサー
エクセルで他シートのセルを参照する方法
- エクセルで同じブック内の他シートのセルを参照する方法を説明します。
- 式を使用して、Sheet2のA15にSheet1のL列の特定の行を参照することができます。
- 値から数値を引いて参照する場合、数式の入力方法に注意が必要です。エラーが表示される場合は、数式を修正してください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
ごめんなさい式を間違いていました。 A15セルには次の式を入力します。 =IF(A17="","",INDIRECT("Sheet1!L"&A17-13850))
その他の回答 (3)
- keithin
- ベストアンサー率66% (5278/7941)
ご質問の用途ではINDIRECT関数,OFFSET関数,INDEX関数の3つが利用できますが,INDIRECTとOFFSETは「ブックを開いて何もせず閉じた」だけでも「保存しますか」と聞いてくる原因になるので,INDEX関数をお薦めします。 作成例: =IF(A17>13850,INDEX(Sheet1!L:L,A17-13850),"")
お礼
ご回答ありがとうございます。 確かに、ダイアログが表示されました。置き換えてみたところ、ダイアログが表示されなくなりました。 とても便利です。 大変勉強になりました。
- kagakusuki
- ベストアンサー率51% (2610/5101)
Sheet1のL列の「A17-13850」行目のセルを参照したいという事ですね。 それでしたら、 =INDEX(Sheet1!$L:$L,A17-13850) で出来ます。 他にも、 =OFFSET(Sheet1!$L$1,A17-13849,) や =INDIRECT("Sheet1!L"&A17-13850) でも可能ですが、使勝手か良いのは、最初に挙げたINDEX関数を使った方法です。 尚、0以下の行番号というものはありませんから、このままではA17セルに13850以下の数値が入力されている場合や、文字列が入力されていた場合には、エラーとなってしまいますから、IF関数と組み合わせて、エラーが出ない様にした方が良いと思います。 =IF(ISNUMBER(1/(A17>13850)/(A17=INT(A17))),INDEX(Sheet1!$L:$L,A17-13850),"")
お礼
ご回答ありがとうございます。 今回は、一つのセルに多くの式が入るので、IF関数を使用しませんでしたが、IF関数との組み合わせで、より安全に作業できることを知り大変勉強になりました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート2のA15に入力する式を次のようにします。 =IF(OR(A15="",A17=""),"",INDIRECT("Sheet1!L"&A17-13850))
お礼
ご回答ありがとうございます。 INDIRECT関数で関数では式で行を指定できるのですね。 大変勉強になりました。