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
など)と組み合わせれば、さらに柔軟なデータ処理も可能になります。
ぜひ、業務の中で積極的に活用してみてください!