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にはこの関数がありませんので、使うことが出来ません…。