Excelを使っていると、「このシートは何番目だろう?」と確認したくなる場面があります。
特にVBAを使わずに、数式だけでシート番号を知りたい場合に便利なのが、SHEET関数
です。
本記事では、SHEET関数
の基本的な使い方から応用的な使い方まで、初心者にもわかりやすく解説します。
関数の構文、注意点、活用例を押さえて、業務での効率化に役立てましょう。
SHEET関数
は、指定したシートの「シート番号(インデックス)」を取得できる関数です。
Excelではワークブックに複数のシートがあり、それぞれに順番が振られています。
この番号を取得できるのがSHEET関数
です。
=SHEET([値])
=SHEET()
この数式を入力すると、自分が現在入力しているシートの番号が返されます。
たとえば、3番目のシートなら「3」が表示されます。
=SHEET(Sheet2!A1)
このように、他のシートのセルを指定すると、そのシートの番号を取得できます。
「Sheet2」がワークブック内で5番目のシートなら、「5」が表示されます。
=SHEET(INDIRECT("'"&A1&"'!A1"))
セルA1にシート名(例:Sheet3)を入力しておくと、そのシートの番号が表示されるようになります。
これは、複数シートを管理しているときに便利な応用例です。
たくさんのシートを管理しているとき、目次としてシート名と番号を一覧にしたい場合があります。
このとき、SHEET関数
を使えば、各シートの番号を動的に取得でき、シート構成の確認が容易になります。
プロジェクト進行管理などで、シートの順番が重要な場面では、SHEET関数
で番号を取得しておくことで順序が崩れていないか確認できます。
よく似た関数にSHEETS関数
がありますが、以下のように用途が異なります。
関数 | 用途 |
---|---|
SHEET | 指定したシートの「番号」を返す |
SHEETS | ワークブックや範囲内の「シートの数」を返す |
例:
=SHEETS() '→ ワークブック内のシート数
=SHEETS(Sheet1:Sheet3) '→ 範囲内のシート数(3が返る)
両者を併用することで、より柔軟なシート管理が可能になります。
たとえば、=SHEET(INDIRECT("不存在のシート!A1"))
のように存在しないシートを参照すると、#REF!
エラーが発生します。
対策:IFERROR
関数を組み合わせましょう。
=IFERROR(SHEET(INDIRECT("'"&A1&"'!A1")), "存在しないシート")
SHEET関数
は「現在のシート順」を返すため、シートを移動すると結果も変わります。
そのため、固定値として扱いたい場合は、値をコピーして貼り付け(値貼り付け)する必要があります。
もし複雑なシート情報をまとめて取得したい場合、VBA(マクロ)で以下のようなコードを使うと便利です。
Sub GetSheetIndex()
MsgBox ActiveSheet.Index
End Sub
これは、アクティブなシートの番号をポップアップ表示するシンプルなスクリプトです。
VBAを使えばより柔軟に管理できますが、関数だけで済むならSHEET関数
の方が手軽です。
SHEET関数
は、シートの管理に役立つシンプルで便利な関数です。
とくに、複数シートを扱う業務や報告書、台帳作成の場面で活用すると効率が上がります。
構文はシンプルながら、INDIRECT関数
との組み合わせや、IFERROR
によるエラー処理など、工夫することで実用性が広がります。
Excelをもっと活用するために、ぜひSHEET関数
を取り入れてみてください。