【SHEETS関数】ブックのシート数を調べる・指定した2つのシート間のシート数を表示する

関数

エクセルのブックにはシートが存在します。
中には沢山のシートを作成してデータの管理などしている場合もあります。

VBAなどでシートの数だけ実行したり、○○シートから○○番まで実行したい場合や
指定した2つのシート間に何個シートがあるか算出出来たら便利ですよね。

そこで今回はシート数を関数を使って出力する方法を紹介します。

それでは見ていきましょう。




⬛︎こんなことができるようになる!

・作業中のブックにあるシートの数を数値として出力できるようになる。


・指定した2つのシート間のシート数を求める

⬛︎関数のしくみ

ブック内のシート数を求めたい場合
=SHEETS()

指定した2つのシート間のシート数を求めたい場合
=SHEETS(初めのシート:終わりのシート!セル番地)

※ブック内のシート数を確認したい場合は引数を入力しません。

⬛︎関数の使用方法

ではSHEETS関数の使用方法を見ていきましょう。

・ブック全体のシート数を求める

見本で下図のようなエクセルのブックを用意しました。

シート数は3つありますね。
では関数を使用してみたいと思います。

今回はB3にシート数を出力してみましょう。

関数の仕組みは下記の通りです。

=SHEETS()

ブック全体のシート数を求める場合は引数もないのでB3に直接入力してみましょう。
結果はこのようになります。

3が出力されていますね。
シートの数は3なのでうまく機能していることがわかります。

ではこの状態でシート数を増やしてみましょう。
シートを2つ増やし、合計5つのシートになりました。

先ほど入力した関数を見てみましょう。

入力した関数の結果を見てみると3から5になってますね。
つまりシートの増減にも対応できていることがわかります。

・指定した2つのシート間のシート数を求める

先ほどはブック全体のシート数を求めましたが
今度は指定した2つのシート間のシート数を求めましょう。

下図の見本を用意しました。

「データ→」から「←データ」までデータ収集のシートを管理しているファイルです。
今回はデータ→」から「←データ」のシート数を数えてみましょう

関数の仕組みはこのようになります。

=SHEETS(初めのシート:終わりのシート!セル番地)

今回は「データ→」から「←データ」までなので数式に当てはめるとこのようになります。
=SHEETS(データ→:←データ!A1)
セルの番地はA1でもD3でも存在するセルであれば構いません

では数値を入力してみましょう。

結果はこのようになります。

「データ→」「←データ」を含めてシート数は5つあるので5が出力されました。
ちなみに出力結果を計算できるので、「データ→」「←データ」をカウントしたくない、
つまり、初めのシート、終わりのシートをカウントしない場合は-2を追加すれば
指定シート内のみカウントしてくれます。

⬛︎よくあるエラーと対処法について

ここではSHEETS関数を使用する上で発生するエラーと対処法についてまとめています。

・#NAME?のエラーになる

こちらは2つのシート間のシート数を求める際に発生します。
関数の仕組みを再度見ていきましょう。

=SHEETS(初めのシート:終わりのシート!セル番地)

ここで注目してほしいのが2つめの引数です。
初めのシートはシート名だけですが、終わりのシートは「!セル番地」が必要です。
では先ほどの見本をみましょう。

「=SHEETS(データ→:←データ!A1)」ではうまく機能してますが
「!A1」をはずすと、、、

エラーになりました。
なので「!セル番地」の入力を確認してみてください。

もう一件、#NAME?のエラーが発生する事例を紹介します。
原因としては調査したいシート名が実際に存在しない可能性があります。

例えば「データ」というシートが存在したとします。
そこでSHEES関数でシート順を調査したい時に「=SHEETS(データ →:←データ!A)」と入力したとします。

一見、間違いなさそうですが「データ」の後にスペースを入力してしまっているためエラーになります。

反対にシート名にスペースが存在してもエラーとなります。
見本は全角のスペースなので見つけやすいですが、半角は気づきにくいです。

つまり、シート名と調査シート名が全く同じでないとシート数は出力できません。

⬛︎公式の説明

わかりやすいように実際の内容とは異なった語句・文字で説明しています。
公式の内容をご覧になりたい方は下記リンクをご参照ください。

SHEETS 関数 (microsoft.com)

⬛︎まとめ

いかがだったでしょうか。
シート数の把握や、対象シート間のシート数を把握したいときに便利な関数ですね。

1日分のデータを1つのシートにまとめて
何日分のデータがあるか出力するなど、用途はさまざまです。

是非活用してみてください。
それでは次回の記事でお会いしましょう。

コメント