(Excel)ROWS関数の使い方と応用例

(※記事初出時にCOUNTA関数でエラーをカウントできないと記述していましたが誤りですので訂正し、当該部分を削除しています。)

 ExcelのROWS関数の機能と使用例について紹介します。
 行数をカウントするだけの単純な関数ですが、表を出力できる関数が増えているためこれらと合わせて利用できる例が増えています。

機能と構文

 ROWS関数の機能は「指定した範囲の行数(縦に並んだセルの数)を返す」というものです。
 構文は次のとおりです。

=ROWS(範囲)

 引数は1つだけで、指定したセル範囲の行数が得られます。
 単純に「A1:B10」といったセル範囲を指定するだけでなく他の関数をネスト(入れ子)にすることもできます。具体例は以下の応用例で紹介します。

基本的な使用例

 次の画像はF2セルに「=ROWS(F2:F6)」と入力しようとしているところです。
 F2:F6の内部には縦に5つ、横に3つのセルが並んでおり(つまり5行3列)で、この範囲には何も値が入力されていませんが…

 


 確定すると「5」と表示されました。
 これはF2:F6が5つの行を含むことを意味します。

 列数に関係なく、そしてセルの内容(値)に関係なくこの結果が得られることがポイントです。




 次の画像は、F2セルに「=ROWS(F2:F6)」と入力しようとしているところです。
 多くの関数では、数式が入っているセル自身(F2)を参照すると循環参照の警告が出ますが…

 


 確定しても警告されません。
 ROWS関数はセルの値(出力)を参照しているわけではないので循環参照の問題は生じないというわけです。

 以降ではこれらの仕様を踏まえた応用例を紹介します。

応用例

連番をふる

 次の画像はF2セルに「=ROWS(F$2:F2)」という式を入力したところです。
 対象となる範囲はF2セルの1つ(1行1列)だけなので結果は「1」となっています。

 F2セル

=ROWS(F$2:F2)

 「$」が絶対参照と呼ばれる記号で、数式を他のセルにコピーしてもこの次にある「2」の数字は維持されます。他の部分はコピー先のセル番地に応じて変化します。



 この数式をF6セルまでフィルコピー(F2セルの右下の小さい四角をF6までドラッグ)すると連番が表示されました。

 絶対参照の効果により各セルでは次のようなことが起こっており、結果として連番が表示されています。
F3セル:数式は「=ROWS(F$2:F3)」となり、F2:F3の範囲は2行1列なので結果は「2」になる。
F4セル:数式は「=ROWS(F$2:F4)」となり、F2:F4の範囲は3行1列なので結果は「3」になる。
F5セル:数式は「=ROWS(F$2:F5)」となり、F2:F5の範囲は4行1列なので結果は「4」になる。
F6セル:数式は「=ROWS(F$2:F6)」となり、F2:F6の範囲は5行1列なので結果は「5」になる。


 ここでは下方に数式をコピーしましたが、上方にコピーすると下から上に向かって1,2,3…という連番になるのがちょっとしたポイントです。
 また、連番をふる場合に「=ROW(A1)」と入力してフィルコピーする、といった方法がよく用いられます。ただしその方法だとA列や1行目が削除されてしまったときに値がエラーになってしまうなど、連番が表操作の影響を受ける可能性があります。しかしROWS関数を使う方法だと連番を表示させるセル自身しか参照せずに済むのでそうした不具合を抑制できます。

データの件数(=行数)をカウントする

 次の画像では、B,C列のデータから重複する行(2つの列とも重複する行)を除き、その件数(行数)をROWS関数でカウントしています。

 E3セル

=ROWS(UNIQUE(B3:C9))

 UNIQUE関数で重複する行を削除しています。具体的には「山形県,りんご」と「福島県,もも」がそれぞれ2行ずつあるのでこれらの重複が削除され、結果は5行2列の表になります。そしてその結果をROWS関数で囲むことで、行数「5」を表示させています。
 COUNTA関数を使ってしまうと(UNIQUE関数の結果には10個の文字列が含まれるため)結果は「10」になってしまうのですが、この場合は行数をデータの数とみなしているのでROWS関数の方が都合がよいというわけです。