この記事を読むのに必要な時間:およそ 1 分
日頃から業務でExcelを使っていれば,SUM,PRODUCT,IF,VLOOKUPなどの重要関数はとっくにマスターしていることでしょう。しかし,そのような“エース級”以外にもExcelには多くの関数があり,それらをうまく活用することで,業務の効率を大幅に改善することが可能です。
たとえば,次の表のサイズは何列何行でしょうか?
小さい表ならサイズはすぐわかりますが…
答えは一目瞭然,4列5行ですね。
では,表のサイズが50列100行を超えるほどの,1画面に収まらない大きさの場合は,どのように数えればよいでしょうか? いちいち画面をスクロールして最下端と最右端を表示するのは大変ですし,列名は英字なので引き算ができません。
COUNTA関数で行数・列数を数える!
そんなときは,COUNTA関数の出番です。COUNTA関数は,セル範囲内のデータの個数を数えるのが主な使い道ですが,次のようにすると行・列のデータの個数を調べることができます(調べる行・列に表以外のデータが入っていないことが前提です)。
列「A」のデータの個数を調べる
※この表では結果は5
行「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業務のヒントにしていただければと思います。