• ベストアンサー

EXCELシート名参照の方法 

1.シート名をセルに表示させる関数はあるでしょうか? 2.関数式のなかで同一ブック内の他のシートを参照させる際、「Sheet1」などの絶対的なシート名ではなく、すぐ左隣のシートというような相対的な表現は出来ないでしょうか? 具体的には、「1日」から「31日」までの名前がついたシートがあって、「2日」以降のシートのA2に、 =A1+'すぐ左隣のシートの'A2 と入れたいのですが。A1に単日実績を入れて、A2に累計を入れたいのです。お知恵を貸してください。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.3

1日、2日、・・・31日のよう(数字部分は半角)になっている場合なら、シート名は   =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3) >「2日」以降のシートのA2に、=A1+'すぐ左隣のシートの'A2 と入れたいのですが。 シート2日のA2に   =A1+INDIRECT((SUBSTITUTE(MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,3),"日","")-1)&"日!A2") とします。 シート2日のA2を選択した状態で、Shiftキーを押しながら、シート31日のシートタブをクリック。 これで作業グループができます。 この状態で、ファンクションキーF2を押して、Enterで登録します。 これで、3日~31日のシートにも算式が登録されます。      

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

>シート名をセルに表示させる関数はあるでしょうか? 表示させたいセルに=cell("filename")と入れて見てください。第2引数は入れなくて良いようです。 BOOK1の状態の時はPathだけしか出ないようですが。 >すぐ左隣のシート VBAではNEXTプロパテイと言うのがあって、セルやシートのINDEX(注)の次のものを指せるようですが、関数ではないでしょう。(注、Cells(2)やSheets(2)のようにINDEX値で表すやり方があります。) Sub test01() MsgBox ActiveCell.Next End Sub A2を指している時、実行するとB2の値を表示(値として取得できる)します。 Sub test01() MsgBox ActiveSheet.Next.Name End Sub Sheet2を指している時、実行するとシートタブ上で 隣(直ぐ右)に現在表示されているシート名が表示されます。順序を変えると、表示されるシート名も変ります。 こんな相対的な捕らえ方でなく、実務では具体的に隣の シートは決まっているはずなので、(1月シートの「次は 」2月シート)データを引っ張ってくる側のシート・セルに引っ張って来られる側のシート名とセル番地、例えば =Sheet1!A1で、事は済むはずですが。シートタブ順序を変えると変る、見た目の「となり」を使うケースって殆ど考えられないですが、どうでしょう。

  • Levia
  • ベストアンサー率50% (43/86)
回答No.1

1.関数なら http://park11.wakwak.com/~miko/Excel_Note/04-01_sheet.htm 2.下記URLの「1ヶ月〆の出納帳を作成してるんですが、前月繰越金をマクロで入れたいんですが」のご質問をどうぞ。 http://www.keep-on.com/excelyou/2001lng4/200112/2001lng4200112.htm

参考URL:
http://park11.wakwak.com/~miko/Excel_Note/04-01_sheet.http://www.keep-on.com/excelyou/2001lng4/200112/2001lng4200112.htm