2024年10月30日【ID:0】
【Excel】各シートのタスク件数を求める
以下のようなタスク表が複数シート(202401、202402、…)用意されています。

今回は、各シートのタスク件数を「一覧」シートに表示する方法について解説していきます。

先頭シートのタスク件数を求める
まずは、COUNTA関数を用いて、先頭シート(202401)のタスク件数を求めていきます。
COUNTA関数の使い方は、以下になります。
=COUNTA(値1, [値2], [値3], …)
// 値:空でないセルの数を数える際の対象の範囲
実際に求めると、以下のようになります。
=COUNTA('202401'!B:B)-1
// B列の空でないセルの数を求めてから見出しのセル分の1を引く

全シートのタスク件数を求める
先ほどの数式と同じにように、それぞれのシートに関しても、同じような数式を入力していくのは大変になります。
そこで、数式のシート名(=COUNTA('202401'!B:B)-1)に関しては、隣のセル(B列)の値を参照するように修正していきます。
そのためには、INDIRECT関数を活用します。
INDIRECT関数の使い方は、以下になります。
=INDIRECT(参照文字列)
// 参照文字列:参照したい範囲を表す文字列
実際に、INDIRECT関数を用いて、以下のように修正します。
=COUNTA(INDIRECT("'202401'!B:B"))-1
// セルへの範囲を文字列にする

次に、参照範囲の文字列のシート名を、隣のセルのシート名を参照した、以下のような数式に修正します。
=COUNTA(INDIRECT("'"&B3&"'!B:B"))-1
// 「&」でシート名を結合

最後に、入力した数式を最終行までコピーすることで、他全てのシートのタスク件数を求めることができます。

新しいタスク表のシートを追加した場合は、そのシート名を表の最後に追加して、同じ数式を隣のセルに入力(上記の表の場合は、オートフィルを活用)します。
この手順だけで、新しいシートのタスク件数を表に追加することができます。