スプレッドシートの超絶便利な関数「arrayformula」の使い方

Googleスプレッドシートは、Excelよりも機能が少ないと思っている人が多いはず。大半の機能はExcelのほうが使いやすいが、Googleスプレッドシートにしかない機能もある。ここでは超絶便利な関数「arrayformula」を紹介したい。

数式のコピー作業を不要にする

(Image:Shutterstock.com)

 数式を縦(列方向)にコピーしたいとき、いくつか方法がある。一番原始的なのは、コピー&ペーストを使うやり方。Excelやスプレッドシートに慣れた人なら、セル右下にマウスポインターを合わせると表示されるフィルハンドルをドラッグする方法を思いつくに違いない。ただし、この方法は100行くらいなら問題ないが、数千行とかになると、この方法では面倒すぎる。
 ちょっとExcelに詳しい人なら、フィルハンドルをダブルクリックすれば、適当なところまで一瞬で数式がコピーされることを知っているはず。この方法は大変便利だが、左隣または右隣のセルに何らかの値が入っている必要がある。空白セルがあると、その上のセルの隣まででコピーが止まってしまう。そのため、途中に空白行がある場合、あらかじめ作業列を設けて、そこに何らかの値(数字の1でよい)を入れておくなど工夫が必要になる。これではちょっと不便だ。
 スプレッドシートなら、1つのセルに関数「arrayformula」を入力するだけで、列全体に数式を入力したのと同じ結果を得ることができる。どんな場合にも使えるわけではないが、利用できる場面では是非試してみてほしい。

B2セルからD2セルまでの合計をE2セルに表示したいとき、E2セルに「=sum(b2:d2)」と入力すればよい

行ごとに同じ計算をしたいなら、E2セルの右下のフィルハンドルを下までドラッグするか、あるいはフィルハンドルをダブルクリックすればよい。ただし、行数が多いときや空白行が存在する場合は、この方法は使いにくい

arrayformula関数を使って「=arrayformula(b2:b11+c2:c11+d2:d11)」のように、sum関数での計算内容を引数部分に記述する。残念ながら、arrayformula関数の引数には、sum関数は使えないので、列方向の範囲をすべて記述するしかない

arrayformula関数を確定させると、一気に下まで数値が表示される。関数を入力したセル以外は、関数や数式ではなく、数値が入力されているのがわかる。なお、この数値は削除しようとしても消えない。消したい場合は、関数の入力されているセルを編集する必要がある

Excelには、この関数は存在しない。似たような効果を得るためには、配列数式を利用するしかない。ただ、配列数式はarrayformula関数と異なり、途中のセルに数値を表示することはできない。また、1つのワークシート上にたくさん使うと、Excelの動作がかなり重くなってしまう。一方、arrayformulaなら、特に動作が重くなるなどの問題は生じない。スプレッドシートを利用するなら、ぜひ使いこなしたい関数だ。

文=大和川南/ライター

関連記事

TOPICS
スキル・ビジネス最新記事

RANKINGランキング

6:00更新