Googleスプレッドシートを使っていて、「行単位で一括処理できたら便利なのに」と感じたことはありませんか?
そんなときに活躍するのが BYROW関数 です。行ごとに同じ処理をまとめて適用できるため、データ分析や集計作業がグッと効率化されます。
この記事では、BYROW関数の基本的な使い方から、業務で役立つ実践的な活用例までをわかりやすく紹介します。
BYROW関数とは?
BYROW関数 は、指定した範囲の各行に同じ処理を適用するための関数です。行ごとに個別の計算や分析を行いたいときにとても便利です。
BYROW関数の基本形は以下の通りです。
=BYROW(範囲, LAMBDA(行, 処理内容))- 範囲:対象となるデータ範囲
- LAMBDA:各行ごとの処理内容を定義する関数
行: 範囲内の各行を一時的に表す変数名(例:rowやrなど、好きな名前でOK)計算: その「行」に対して行いたい計算(例:SUM(行)、AVERAGE(行)など)
この関数では、LAMBDA関数とセットで使うのがポイントです。
LAMBDA関数の中で「各行に対してどのような処理を行うか」を定義します。

他の関数との違いは?
似たような関数に ARRAYFORMULA などがありますが、使い分けが重要です。
| 関数名 | 適用単位 | 特徴 |
|---|---|---|
| ARRAYFORMULA | 列・配列全体 | 一括処理できるが制御が難しい |
| BYROW | 行単位 | 行ごとの処理がしやすい |
| BYCOL | 列単位 | 列ごとに処理がしやすい |
BYROW関数は「1行ずつ丁寧に処理したい」ケースで力を発揮します。
実務で使えるBYROW関数の活用例3選
では、実際にどのような業務でBYROW関数を活用できるのか、具体的な事例で見てみましょう。
① 売上データから割引後の金額を一括計算
以下のような売上データがあるとします。
| 商品名 | 単価 | 数量 | 割引率 |
|---|---|---|---|
| 商品A | 1000 | 2 | 0.1 |
| 商品B | 1500 | 3 | 0.2 |
| 商品C | 2000 | 1 | 0.15 |
このとき、各商品の割引後金額を計算するには、以下の数式を使います。
=BYROW(B2:D4, LAMBDA(row, INDEX(row,1) * INDEX(row,2) * (1 - INDEX(row,3))))計算結果を出したい列の一番上に関数を入れると、自動で下まで表示されます。
今回はE2セルに関数を入れました。
POINT
INDEX(row,1)→ 単価INDEX(row,2)→ 数量INDEX(row,3)→ 割引率

② タスク進捗率を自動計算
タスク管理表にて、進捗率を一括で計算したい場合にも便利です。
| タスク名 | 完了数 | 総数 |
|---|---|---|
| タスクA | 3 | 5 |
| タスクB | 2 | 4 |
| タスクC | 1 | 1 |
=BYROW(B2:C4, LAMBDA(row, INDEX(row,1) / INDEX(row,2)))この数式では、完了数 ÷ 総数 を行ごとに自動で計算します。

③ コメント欄の文字数をカウント
顧客アンケートなどで、コメント欄の文字数を一括でカウントしたいケースにもBYROW関数が使えます。
| 顧客名 | コメント |
|---|---|
| A社 | とても良いサービスでした。 |
| B社 | もう少し改善が必要です。 |
| C社 | 満足しています。 |
=BYROW(B2:B4, LAMBDA(row, LEN(row)))各行のコメントの文字数が自動でカウントされるので、文章量の分析にも使えます。

BYROW関数を使うときの注意点
| 注意点 | 内容 |
|---|---|
| LAMBDA関数とセット | 単体では使えず、処理内容をLAMBDAで定義する必要があります。 |
| INDEXで参照 | 行内の列を取り出すときは、INDEX(row, 列番号)で指定します。 |
| 処理負荷 | 行数が多いと動作が重くなる場合もあります。 |
まとめ
BYROW関数を使えば、行ごとの処理をスッキリと書けるようになり、データ分析や日々の集計作業が効率化されます。
特に、売上集計・タスク進捗管理・アンケート分析など、行単位での処理が多い業務には非常に相性が良い関数です。
LAMBDA関数や他の配列関数(BYCOL や MAP など)と組み合わせれば、さらに柔軟なデータ処理も可能になります。
ぜひ、業務の中で積極的に活用してみてください!

