こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

別シートのセル参照

Excel(Win2000,Excel2002)で別シートのセルを参照する場合、シート名を入れると思うのですが、シート名を入れずに一つ右隣のシートというような指定をする事が出来ますか?記号などを使用して出来るのであれば方法を知りたいのですが。お願いします。

投稿日時 - 2003-05-19 18:29:04

QNo.551960

すぐに回答ほしいです

質問者が選んだベストアンサー

EXCEL勉強中の身です。No.2のnihonjinnさんの回答を
見ながら、自分でもやってみました。

nihonjinnさんの説明----
   =CELL("filename",A1)
   これでこのシートの情報が出てきます。指定する
   セルはどこでもいいです。My Documentsにある
   BOOK1のSheet1なら
   C:¥My Documents¥[BOOK1.xls]Sheet1
   となります。
   これがB1にあるとするとC1に
   =RIGHT(B1,LEN(B1)-FIND("]",B1))
   と入れるとSheet1が抽出されます。
-----------------------
というのを、私レベルに解釈すると、
「以上のとおりに入力すると、
C1のところに、今現在触ってるシート名(=Sheet1)が、シート名を入力することなしに表示できます」ということで、ここまでは、オーケーかと思います。

問題は次の
=INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1")
だと思うのですが、
ヘルプでは、「INDIRECT」で、しらべると、一応、この関数の説明が出てきます。

この式を私なりに分解して解釈すると、
RIGHT(B1,1) 
B1つまり「Sheet1」という文字列の右から1番目の文字を取り出すということ。この場合は、「1」。

+D1
たとえば、D1に、3が入力されていれば、1+3=4となる。

とすると
("Sheet"&RIGHT(B1,1)+D1
このばあい、Sheet4を意味するわけで。
で、&"!A1"というのが、この後ろについてますが、
これは、以上から、Sheet4!A1、となるわけで、
=INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1")
と入力したセルには、今触ってるシートの右3番目のシートのA1が表示されるということだと、理解しました。

つまり、D1を、セルじゃなくてただの 1 という数値にすれば、一つ右隣のシートを指定できるということですよね。

うまく噛み砕けているか自信なしですが、参考になったでしょうか。

投稿日時 - 2003-05-24 19:48:26

お礼

お礼が遅くなって申し訳ありません。
とても参考になりました。試してみた結果うまくいきました。どうもありがとうございます。

投稿日時 - 2003-06-03 09:02:44

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

=CELL("filename",A1)
これでこのシートの情報が出てきます。指定するセルはどこでもいいです。My DocumentsにあるBOOK1のSheet1なら
C:¥My Documents¥[BOOK1.xls]Sheet1
となります。これがB1にあるとするとC1に
=RIGHT(B1,LEN(B1)-FIND("]",B1))
と入れるとSheet1が抽出されます。
後はD1に数値が入ってるとして
=INDIRECT("Sheet"&RIGHT(B1,1)+D1&"!A1")
などと工夫してみてはいかがですか。Sheet1,Sheet2と数字を変えていけばいい分けです。数字が二桁ならまた工夫が必要です。
わからない点があればまた。

投稿日時 - 2003-05-19 21:21:39

補足

回答ありがとうございます。Excelが詳しくない為、なかなか理解出来ないのですが、A1,B1,C1,D1などの意味が良く分かりません。ヘルプなどを調べてみたのですが、思うような物が見つからず、もしヘルプに載っているのであればキーワード等教えていただけますか?

投稿日時 - 2003-05-20 09:25:37

ANo.1

(1)関数式の中で使う表現としては、見とめられていないでしょう。
(2)VBAで
Sub test01()
MsgBox ActiveSheet.Next.Name
End Sub
を実行すると
シートタブがSheet3-sheet4の順序の時、Sheet3をアクチブにして実行すると、Sheet4と表示されました。
シートタブがSheet4-sheet3の順序の時、Sheet3をアクチブにして実行すると、エラーになりました。見た目の隣りのシートを指定出きるようです。
MsgBox ActiveSheet.Previous.Nameも使えました。
またWorksheets(1),Worksheets(2)などの指定がで来ます。しかし右隣とは限りません。

投稿日時 - 2003-05-19 21:18:21

お礼

回答ありがとうございます。VBAを全く知らない為、VBAの知識がないと難しいですね。今後、VBAも使用したいと思いますので参考にさせていただきます。ありがとうございます。

投稿日時 - 2003-05-20 09:30:09

あなたにオススメの質問