エクセルのブックにはシートが存在します。
中には沢山のシートを作成してデータの管理などしている場合もあります。
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)」と入力したとします。
一見、間違いなさそうですが「データ」の後にスペースを入力してしまっているためエラーになります。
反対にシート名にスペースが存在してもエラーとなります。
見本は全角のスペースなので見つけやすいですが、半角は気づきにくいです。
つまり、シート名と調査シート名が全く同じでないとシート数は出力できません。
⬛︎公式の説明
わかりやすいように実際の内容とは異なった語句・文字で説明しています。
公式の内容をご覧になりたい方は下記リンクをご参照ください。
⬛︎まとめ
いかがだったでしょうか。
シート数の把握や、対象シート間のシート数を把握したいときに便利な関数ですね。
1日分のデータを1つのシートにまとめて
何日分のデータがあるか出力するなど、用途はさまざまです。
是非活用してみてください。
それでは次回の記事でお会いしましょう。
コメント