BYROW関数で行ごとの計算を効率化|実務に使える3つの活用例

Googleスプレッドシートを使っていて、「行単位で一括処理できたら便利なのに」と感じたことはありませんか?
そんなときに活躍するのが BYROW関数 です。行ごとに同じ処理をまとめて適用できるため、データ分析や集計作業がグッと効率化されます。

この記事では、BYROW関数の基本的な使い方から、業務で役立つ実践的な活用例までをわかりやすく紹介します。

目次

BYROW関数とは?

BYROW関数 は、指定した範囲の各行に同じ処理を適用するための関数です。行ごとに個別の計算や分析を行いたいときにとても便利です。

BYROW関数の基本形は以下の通りです。

=BYROW(範囲, LAMBDA(行, 処理内容))
  • 範囲:対象となるデータ範囲
  • LAMBDA:各行ごとの処理内容を定義する関数
    • : 範囲内の各行を一時的に表す変数名(例: rowr など、好きな名前でOK)
    • 計算: その「行」に対して行いたい計算(例: SUM(行)AVERAGE(行)など)

この関数では、LAMBDA関数とセットで使うのがポイントです。
LAMBDA関数の中で「各行に対してどのような処理を行うか」を定義します。

他の関数との違いは?

似たような関数に ARRAYFORMULA などがありますが、使い分けが重要です。

関数名適用単位特徴
ARRAYFORMULA列・配列全体一括処理できるが制御が難しい
BYROW行単位行ごとの処理がしやすい
BYCOL列単位列ごとに処理がしやすい

BYROW関数は「1行ずつ丁寧に処理したい」ケースで力を発揮します。

実務で使えるBYROW関数の活用例3選

では、実際にどのような業務でBYROW関数を活用できるのか、具体的な事例で見てみましょう。

① 売上データから割引後の金額を一括計算

以下のような売上データがあるとします。

商品名単価数量割引率
商品A100020.1
商品B150030.2
商品C200010.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) → 割引率

② タスク進捗率を自動計算

タスク管理表にて、進捗率を一括で計算したい場合にも便利です。

タスク名完了数総数
タスクA35
タスクB24
タスクC11
=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関数や他の配列関数(BYCOLMAP など)と組み合わせれば、さらに柔軟なデータ処理も可能になります。

ぜひ、業務の中で積極的に活用してみてください!

関連記事

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

エンジニアを数年経験し、現在は事業会社でデータ分析業務に従事しています。
取得資格:基本情報技術者、G検定、統計検定2級

目次