スプレッドシートで大量のデータを扱うとき、「列ごとに平均を出したい」「列ごとに合計したい」と思ったことはありませんか?
そんなときに便利なのが「BYCOL関数」です。
今回は、BYCOL関数の基本的な使い方と、実務での活用例を紹介します。
初心者でもすぐに使えるよう、やさしく解説していきます!
BYCOL関数とは?
BYCOL関数は、指定した配列の各「列」に対して、関数処理を実行できる関数です。
Googleスプレッドシートの新しい配列処理関数のひとつで、データ分析や自動処理の幅が広がります。
BYROW関数の基本形は以下の通りです。
=BYCOL(範囲, LAMBDA(列, 処理内容))
- 範囲:対象となるデータ範囲
- LAMBDA:各列ごとの処理内容を定義する関数
列
: 範囲内の各列を一時的に表す変数名(例:col
やc
など、好きな名前でOK)処理内容
: その「列」に対して行いたい計算(例:SUM(列)
、AVERAGE(列)
など)
この関数では、LAMBDA
関数とセットで使うのがポイントです。
LAMBDA関数の中で「各列に対してどのような処理を行うか」を定義します。

他の関数との違い
似たような関数である BYROW
が「行ごとの処理」だったのに対して、BYCOL
は「列ごとの処理」を自動化するのに最適です。
関数名 | 特徴 |
---|---|
ARRAYFORMULA | 範囲全体に処理(柔軟だが細かい制御は難しい) |
BYROW | 行ごとに処理(進捗管理や割引計算などに便利) |
BYCOL | 列ごとに処理(集計や列単位の分析に最適) |
実務で使える!BYCOL関数の活用例3選
ここからは、業務でそのまま使える事例を3つ紹介します。
➀月別売上データの各商品ごとの売上合計を自動計算
以下は月別に商品A〜Cの売上数が並ぶ表です。
商品名 | 1月 | 2月 | 3月 | 4月 |
---|---|---|---|---|
商品A | 100 | 120 | 130 | 110 |
商品B | 80 | 90 | 85 | 95 |
商品C | 70 | 75 | 78 | 80 |
ここで、「各月の売上合計」を列単位で計算したいときは、BYCOL関数が最適です。
=BYCOL(B2:E4, LAMBDA(col, SUM(col)))
この式は「B2:E4の範囲の各列に対し、SUM関数で合計を計算する」という意味。
この関数をB5セルにいれるだけで各列(1月〜4月)の合計売上数が一気に取得できます。
列ごとにSUMを入れる手間がなく、集計作業がラクに!

➁アンケートの各設問ごとの満足度平均を計算
以下のアンケート結果では、回答者ごとに「サービス」「対応」「価格」の3つの設問に対する評価が点数で入力されています。
回答者 | サービス | 対応 | 価格 |
---|---|---|---|
田中 | 4 | 5 | 3 |
鈴木 | 3 | 4 | 4 |
佐藤 | 5 | 4 | 5 |
設問ごとの平均点を求めるには次のようにします。
=BYCOL(B2:D4, LAMBDA(col, AVERAGE(col)))
LAMBDA関数内でAVERAGEを使い、各列(設問)ごとの平均点を計算しています。
これで設問別にどこが評価されているか、どこに改善が必要かを把握できます。

➂各月の売上データから最高売上額と最低売上額を同時に抽出
今度は売上データがあり、各月ごとの最高売上額と最低売上額を一括で求めたいケースです。
商品名 | 1月 | 2月 | 3月 |
---|---|---|---|
商品A | 1,000 | 1,200 | 1,100 |
商品B | 800 | 850 | 900 |
商品C | 950 | 1,000 | 980 |
最高売上額
=BYCOL(B2:D4, LAMBDA(col, MAX(col)))
各列の最大値を取得します。

最低売上額
=BYCOL(B2:D4, LAMBDA(col, MIN(col)))
各列の最小値を取得します。

MAX関数、MIN関数を使って列ごとの最大値・最小値を取得。
複数の関数を使い分けることで、売上の変動幅やリスク分析に役立ちます。
BYCOL関数のメリットと注意点
メリット
- 列単位の繰り返し処理が一括でできるため、作業時間が大幅に短縮
- LAMBDA関数の力で、集計から条件付き計算まで柔軟に対応可能
- 使いこなせば、複雑な表計算をシンプルな数式で実現できる
注意点
- LAMBDA関数に慣れていないと最初は取っつきにくい
- 大規模データでは処理が重くなる場合があるため、使いどころを見極めよう
まとめ
BYCOL関数は、列ごとのデータ集計や分析を一気に効率化する強力な関数です。
LAMBDA関数と組み合わせることで、単純な合計から複雑な処理まで自在に扱えます。
今回紹介した例を活用して、ぜひスプレッドシートの業務効率アップに役立ててください。
【おまけ】よくある質問
Q. 大量データで遅くなったらどうすればいい?
→ 計算範囲を絞る、不要な関数は削減する、必要に応じてスクリプト利用も検討を。
Q. BYCOLとBYROWはどう使い分ければいい?
→ 行ごとに処理したいならBYROW、列ごとに処理したいならBYCOLが基本です。