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

締切り済みの質問

エクセル シート名を参照する関数は?

エクセルで、売上を管理しているファイルがあります。
4~3月までの各月ごとのシートに、取引先ごとの売上額・仕入額・原価率・担当者名etcが1行ずつ入力されてあります。
そして、担当者別シートで担当者ごとの取引先データをLOOKUP関数やINDEX関数を使って抽出・合計し、グラフ化して管理しています。

↓こんな状態です。(合計額の表)
   A   B  C  D  E F G
4月 50000 40000 80% ・・・・・
5月
6月

今の状態では、5月になればA~Gまでの4月の列をコピペして
LOOOKUP関数等で参照しているシート名「4月」を「5月」にひとつずつ入力しなおしています。
これが結構面倒なので、
セルに「5月」と入力したら、5月のシートを参照しにいく、
セルに「6月」と入力したら、6月のシートを参照しにいく・・・
というように作り直したいのですが、
このような、シート名を参照する関数はあるのでしょうか?

投稿日時 - 2007-06-24 01:37:17

QNo.3110485

暇なときに回答ください

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

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

回答(5)

ANo.5

#4です。

もし、A列が4,5,6と数字で入力されていて、
「書式」→「セル」→「表示形式」タブ
「分類」をユーザー定義にして「0"月"」と設定するのであれば、

#4の式は
=INDIRECT(A2 & "月!A1")
とダイレクトにA列の値を参照できます。

こっちのほうが素直ですね。

投稿日時 - 2007-06-24 20:15:17

ANo.4

こんにちは。

具体的な数式が無いので、想像でしかないのですが、
シート名が入力された数式をコピー&ペーストする際に
シート名を相対参照して貼り付けたいということでしょうか?

だとすると、例えば、
A2セルに「5月」という名前のシートのA1セルを参照するならば、
=INDIRECT(ROW()+3&"月!A1")
と記入すれば、以下コピー&ペーストで6月、7月のシートのA1セルを参照できます。

ここで、ROW()関数はこの式が記入されたセルの行番号を返す(戻す)関数です。
例えば、2行目にあるA2セルで =ROW() と入力すれば、2が戻ります。

参考になれば幸いです。

投稿日時 - 2007-06-24 20:07:57

ANo.3

=MID(CELL("filename",$A$1),FIND("]",CELL("filename",$A$1))+1,31)
でシート名を参照できます。

投稿日時 - 2007-06-24 12:05:59

ANo.2

INDIRECT 関数を使えば?

次の例では、A1 セルに 5 と入力すると文字列 "月!C5" と連結
されて、"5月!C5" となり、シート 5月 の C5 セルを参照します。

=INDIRECT($A$1 & "月!C5")

投稿日時 - 2007-06-24 10:20:29

ANo.1

Sub TEST()
シート名は、下記で 得られます。
Sheets_Count = Application.Sheets.Count

For n = 1 To Sheets_Count
Sheets(n).Select
MsgBox "シート名は " & ActiveSheet.Name & "です。"
Next n


End Sub

投稿日時 - 2007-06-24 09:53:12

あなたにオススメの質問