日頃から業務でExcelを使っていれば、SUM、PRODUCT、IF、VLOOKUPなどの重要関数はとっくにマスターしていることでしょう。しかし、そのような“エース級”以外にもExcelには多くの関数があり、それらをうまく活用することで、業務の効率を大幅に改善することが可能です。
たとえば、次の表のサイズは何列何行でしょうか?
小さい表ならサイズはすぐわかりますが…
答えは一目瞭然、4列5行ですね。
では、表のサイズが50列100行を超えるほどの、1画面に収まらない大きさの場合は、どのように数えればよいでしょうか? いちいち画面をスクロールして最下端と最右端を表示するのは大変ですし、列名は英字なので引き算ができません。
COUNTA関数で行数・列数を数える!
そんなときは、COUNTA関数の出番です。COUNTA関数は、セル範囲内のデータの個数を数えるのが主な使い道ですが、次のようにすると行・列のデータの個数を調べることができます(調べる行・列に表以外のデータが入っていないことが前提です)。
列「A」のデータの個数を調べる
=COUNTA(A:A)
※この表では結果は5
行「1」のデータの個数を調べる
=COUNTA(1:1)
※この表では結果は4
これを利用すれば、「列のデータの個数=表の行数」「行のデータの個数=列の行数」が求まり、どんな大きな表でもすぐにサイズがわかるのです!
ADDRESS関数で一番右下のセルを調べる!
さらに、行数・列数からセル名を生成するADDRESS関数を使うと、この結果を利用して表の一番右下のセルを調べることができます。次のように組み合わせれば一発です(表がセルA1から始まっている場合の例です)。
=ADDRESS(COUNTA(A:A),COUNTA(1:1))
※この表では結果は$D$5
さて、「一番右下のセル」でピンと来る人は多いと思います。そう、VLOOKUP関数やDSUM関数などの関数です。これらは検索対象に表のセル範囲を指定するので、表の右下のセル名を調べる必要があるのです。そこで、上の数式を引数に利用して次のように入力してみましょう(ADDRESS関数の戻り値は文字列なので、INDIRECT関数でセル参照に変換します)。
=VLOOKUP("商品A",A1:INDIRECT(ADDRESS(COUNTA(A:A),COUNTA(1:1))),3,FALSE)
このように、関数で表の右下のセルを計算すれば、事前に表のセル範囲を調べなくてもVLOOKUP関数を利用できます。さらに、データを追加・削除してセル範囲が変わった場合でも、数値を再入力する必要がありません!
ほかにも、右下のセルの総計値をINDEX関数で抽出したり、TRANCEPOSE関数で行・列を入れ替えたりといった活用が可能です。
地味な関数は組み合わせで輝く!
ここではCOUNTA関数とADDRESS関数を紹介しましたが、他にもROW、COLUMN、FIND、MATCH、OFFSET、MODなど、組み合わせることでもっと便利に使える関数はたくさんあります。新刊『今すぐ使えるかんたんPLUS+ Excel関数組み合わせ完全大事典』では、そんな珠玉の組み合わせ技を多数収録していますので、ぜひお手にとって、よりよいExcel業務のヒントにしていただければと思います。