6/25/2018

Excel。シート数を知りたい!この名前のシートは何枚目にあるの?【Sheets】

Excel。シート数を知りたい!この名前のシートは何枚目にあるの?

<SHEETS関数・SHEET&INDIRECT関数>

シートを追加したりコピーしたりということは、
ごくごく普通の処理なのですが、シートを増やしていくと、
Excelブック(ファイル)の中に何枚のシートがあるのか?

とか、

このシートからこのシートまでは何枚あるのか?

あるいは、
この名前のシートは何枚目にあるのか?

ということを知りたいことが出てきます。
そこで今回は、シート関係のテクニックについてみていきましょう。

今回使用するブック(ファイル)を確認しておきましょう。

一枚目は「シート一覧」というシート名で、
新宿・渋谷・池袋・横浜・川崎の各シートで合計6枚のシートで
構成されているブック(ファイル)です。

【ブックには何枚のシートがあるのでしょうか?】

E2に店舗数を算出しています。
これはどのようにしたのでしょうか?
今回のようにシートの枚数が少ないと自力で数えることも出来ますが、
枚数が増えると大変です。

そこで、登場するのが『SHEETS関数』です。

このSHEETS関数は、ブック(ファイル)にある
シート数を数えてくれる関数です。

また、このSHEETS関数は手入力だと簡単に作成できます。

E2をクリックして、次の数式を設定しましょう。
=SHEETS()-1
SHEETS関数でブック(ファイル)の全枚数を算出します。

店舗数だけにしたいので、
「シート一覧」の1枚分を減算しますので、-1(マイナス1)しています。

なお、シートを非表示にしても、数えてしまいますので注意が必要です。

【ここからここまでのシートの枚数を知りたい】

次は、E3に都内にある店舗数を数えたいわけですが、
先程のSHEETS関数をアレンジすれば簡単に算出することが出来ます。

E3の数式は、
=SHEETS(新宿:池袋!A1)
新宿~池袋までということで、引数=カッコの中に、
新宿:池袋!A1と入力しているだけです。

形としては、『3-D集計』に似ています。

なお、”!A1”という部分を忘れるとエラーになってしまいますので、
忘れないようにしましょう。

【このシートは左から何枚目にあるの?】

シート枚数を数えるだけではなくて、
例えば、新宿というシート名は、いったい何枚目にあるのだろうか?
ということを知りたい場合、どうしたらいいのでしょうか?

ここはSHEET関数とINDIRECT関数のネスト技で算出することが出来ます。

B3の数式は、
=SHEET(INDIRECT(A3&"!a1"))
というようになっています。

気を付けるのは、SHEET関数です。
”S”はありません。このSHEET関数は、シート番号を算出する関数です。

SHEET関数の引数(カッコの中)にINDIRECT関数を使っています。
INDIRECT関数は、その内容をそのまま使用することが出来る関数です。
ということで、A3は新宿ですね。

なので、「新宿のA1があるのは、シート番号いくつ」

という引数になっていますから、
左から2枚目に新宿というシートがありますので、
2という結果が算出されたわけです。


最後に、今回紹介した、SHEETS関数とSHEET関数は、
とても便利な関数ではありますが、
Excel2013で登場した関数なので、残念ながら、
Excel2010にはこの関数がありませんので、使うことが出来ません…。