<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>BYCOL関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/bycol%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Apr 2026 12:10:13 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>BYCOL関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのBYCOL関数の使い方｜列ごとに関数適用</title>
		<link>https://mashukabu.com/excel-function-howto-use-bycol/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-bycol/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:13 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BYCOL関数]]></category>
		<category><![CDATA[Excel中級者]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[列集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5899</guid>

					<description><![CDATA[ExcelのBYCOL関数の使い方を実例で解説。列ごとにSUM・AVERAGE・MAXをまとめて求める方法、LAMBDA構文の書き方、#SPILL!エラーの対処、BYROW関数との違いまでカバー。Microsoft 365ユーザー必見。]]></description>
										<content:encoded><![CDATA[
<p>毎月の集計表で、列ごとにSUM関数をコピペしていませんか。列数が増えるたびに数式をコピーして、見た目は揃っていてもどこかで貼り間違いが発生する。そんな地味な作業に時間を奪われるのはもったいないですよね。</p>



<p>もし1つの数式で「この表の各列の合計をまとめて出して」と指示できたらどうでしょうか。実はExcelのMicrosoft 365には、そのためのBYCOL関数という専用関数が用意されています。列単位で一気に集計を返してくれる、スピル時代ならではの便利な関数です。</p>



<p>この記事では、ExcelのBYCOL関数の使い方を基本から応用まで解説します。LAMBDA関数との組み合わせ方、#SPILL!エラーへの対処、BYROW関数との違い、さらにGoogleスプレッドシート版との差分まで、実務で詰まりやすいポイントを重点的に紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">BYCOL関数とは？</a><ol><li><a href="#toc2" tabindex="0">Microsoft 365専用・スプレッドシート版との違い</a></li><li><a href="#toc3" tabindex="0">BYROW関数（行版）との対比</a></li></ol></li><li><a href="#toc4" tabindex="0">BYCOL関数の書き方</a><ol><li><a href="#toc5" tabindex="0">構文と引数</a></li><li><a href="#toc6" tabindex="0">LAMBDAを省略できない理由</a></li></ol></li><li><a href="#toc7" tabindex="0">基本の使い方</a><ol><li><a href="#toc8" tabindex="0">列ごとにSUMを求める</a></li><li><a href="#toc9" tabindex="0">列ごとにAVERAGE・MAXを求める</a></li></ol></li><li><a href="#toc10" tabindex="0">応用例</a><ol><li><a href="#toc11" tabindex="0">BYCOL × IFで条件付き列集計</a></li><li><a href="#toc12" tabindex="0">複合計算（SUM÷COUNTなど）をネストする</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">#SPILL!エラー｜隣のセルが空白か確認</a></li><li><a href="#toc15" tabindex="0">LAMBDA引数ミス｜引数の数が合わないとき</a></li><li><a href="#toc16" tabindex="0">バージョン非対応｜M365以外で使えない場合</a></li></ol></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">BYCOL関数とは？</span></h2>



<p>ExcelのBYCOL関数は、配列の「列ごと」にLAMBDA関数を適用し、1行にまとめた結果を返す関数です。読み方は「バイコル」。「BY COLumn（列ごとに）」という名前の通り、表を縦方向に分割して各列を1つずつ処理するイメージで使います。</p>



<p>従来のExcelで列ごとの集計を行う場合、SUMやAVERAGEを列の数だけ横にコピーするのが一般的でした。BYCOL関数を使えば、1つの数式で「すべての列に同じ処理」を適用できます。結果はスピル（自動的に隣のセルへ展開される機能）で横方向に並ぶため、数式の管理箇所が1つに集約され、修正や検算の手間が大きく減ります。</p>



<p>戻り値の形状は「1行×N列」の配列です。たとえば2行×3列の表を渡せば、結果は1行×3列の配列として返ります。元データの「列の数」がそのまま結果の「セルの数」になる、と覚えておくと迷いません。</p>



<h3 class="wp-block-heading"><span id="toc2">Microsoft 365専用・スプレッドシート版との違い</span></h3>



<p>BYCOL関数はMicrosoft 365時代の新世代関数で、対応バージョンは限定的です。利用できる環境は次のとおりです。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365 / Microsoft 365 for Mac</li><li>Excel for the web</li><li>Excel 2024 / Excel 2024 for Mac</li></ul>



<p>Excel 2019やExcel 2021では使えない点に注意してください。</p>



<p>GoogleスプレッドシートにもBYCOL関数は存在し、基本構文は <code>=BYCOL(配列または範囲, LAMBDA)</code> でExcel版とほぼ同じです。「Sheetsで使っていた数式をそのままExcelに持ってきたい」というケースでも、ほぼ書き換えなしで動くのが嬉しいポイントです。ただしスピルの干渉エラーの出方や、Excelテーブル内では動的配列関数が機能しないなど、Excel特有の注意点があります。</p>



<p>詳しいSheets版の書き方は、自サイトの<a href="https://mashukabu.com/spreadsheet-bycol-function/">スプレッドシートのBYCOL関数の使い方</a>も参考にしてください。両方の違いを押さえておくと、二重運用している環境でも迷わず使い分けられます。</p>



<h3 class="wp-block-heading"><span id="toc3">BYROW関数（行版）との対比</span></h3>



<p>BYCOL関数には「行版」とも言うべき兄弟関数、BYROW関数があります。BYROW関数は配列の「行ごと」にLAMBDAを適用し、「N行×1列」の配列を返します。「行はBYROW、列はBYCOL」と名前の頭文字で覚えると混乱しません。</p>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>BYCOL関数</th><th>BYROW関数</th></tr></thead><tbody><tr><td>処理の向き</td><td>列ごと（縦のかたまりを処理）</td><td>行ごと（横のかたまりを処理）</td></tr><tr><td>戻り値の形</td><td>1行×N列</td><td>N行×1列</td></tr><tr><td>典型用途</td><td>列ごとの合計・平均・最大値</td><td>行ごとの合計・平均・最大値</td></tr><tr><td>スピル方向</td><td>横方向</td><td>縦方向</td></tr></tbody></table></figure>



<p>どちらもLAMBDA関数を使って「各列/各行にどんな処理を適用するか」を自由に指定できます。行ごとの集計が必要ならBYROW、列ごとの集計ならBYCOL、と目的に合わせて選び分けるだけです。</p>



<h2 class="wp-block-heading"><span id="toc4">BYCOL関数の書き方</span></h2>



<p>BYCOL関数は引数が2つだけのシンプルな構造ですが、第2引数にLAMBDAが必須という点だけは他の関数と毛色が違います。ここで構文を正確に押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc5">構文と引数</span></h3>



<p>BYCOL関数の基本構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=BYCOL(array, lambda(column))</code></pre>



<p>引数の意味は下の表で整理します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須</th><th>役割</th></tr></thead><tbody><tr><td><code>array</code></td><td>必須</td><td>処理したい配列またはセル範囲。A1:C10のような長方形の範囲を渡す</td></tr><tr><td><code>lambda(column)</code></td><td>必須</td><td>各列に適用するLAMBDA関数。<code>column</code>は1列分のデータを表す仮引数</td></tr></tbody></table></figure>



<p><code>array</code> には通常のセル範囲だけでなく、他の関数が返す配列もそのまま渡せます。<code>lambda(column)</code> の <code>column</code> という名前は自分で好きな名前に変えても構いません。たとえば <code>LAMBDA(col, SUM(col))</code> のように短い名前を使うと、数式が読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc6">LAMBDAを省略できない理由</span></h3>



<p>「SUMだけを使いたいのだから、LAMBDAは省略したい」と思うかもしれません。しかしBYCOL関数では、第2引数のLAMBDAは省略できません。理由は、BYCOL関数自体が「何の処理をするか」を知らない汎用関数だからです。</p>



<p>BYCOL関数は「各列を順番にLAMBDAへ渡す」という役割しか持ちません。列ごとに何を計算するかはLAMBDAの中で決める必要があります。次の2つを見比べると違いが明確です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, SUM)</code></pre>



<p>上の書き方はNGです。SUMをLAMBDAで包まずに渡しているためエラーになります。正しくは次のように書きます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(col)))</code></pre>



<p><code>LAMBDA(仮引数, 計算式)</code> の形で必ず包んであげてください。</p>



<h2 class="wp-block-heading"><span id="toc7">基本の使い方</span></h2>



<p>ここからはBYCOL関数を使った基本的な集計パターンを紹介します。どれも実務の集計表で頻出するものばかりです。</p>



<h3 class="wp-block-heading"><span id="toc8">列ごとにSUMを求める</span></h3>



<p>まずは定番の「列ごとの合計」から。A1:C5に店舗別の売上が入っていて、各列（＝各店舗）の合計を一発で出したい場合の数式は次のとおりです。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, SUM(col)))</code></pre>



<p>この数式をE1に入力すると、E1:G1の3セルに各列の合計がスピルで展開されます。列数が10や20に増えても、範囲を <code>A1:T5</code> のように広げるだけでOKです。SUM関数をコピペする必要はありません。</p>



<p>Microsoft公式ドキュメントでは、各列の最大値を求める <code>=BYCOL(A1:C2, LAMBDA(array, MAX(array)))</code> が使用例として紹介されています。LAMBDAの仮引数名は <code>array</code> でも <code>col</code> でも動作は同じです。</p>



<h3 class="wp-block-heading"><span id="toc9">列ごとにAVERAGE・MAXを求める</span></h3>



<p>SUM以外の集計関数も同じ要領です。AVERAGEで平均、MAXで最大値、MINで最小値がそれぞれ1つの数式で取れます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, AVERAGE(col)))</code></pre>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, MAX(col)))</code></pre>



<pre class="wp-block-code"><code>=BYCOL(A1:C5, LAMBDA(col, MIN(col)))</code></pre>



<p>これらを縦に並べて書けば、1つのセル範囲に「合計・平均・最大」を整然と出せます。従来なら関数を手で入力していた作業が、数式の使い回しで済むようになるのが最大のメリットです。</p>



<h2 class="wp-block-heading"><span id="toc10">応用例</span></h2>



<p>基本の使い方を押さえたら、実務でよく出てくる応用パターンにも挑戦してみましょう。BYCOL関数はLAMBDAの中身を自由に書けるため、組み合わせ次第で表現力がぐっと広がります。</p>



<h3 class="wp-block-heading"><span id="toc11">BYCOL × IFで条件付き列集計</span></h3>



<p>「各列のうち、100以上の値だけを合計したい」といった条件付き集計もBYCOL関数で実現できます。LAMBDAの中にIF関数を仕込み、条件を満たす要素だけをSUMに渡す形です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(IF(col&gt;=100, col, 0))))</code></pre>



<p>この数式は各列について「100以上ならその値、未満なら0」を返し、その合計を取ります。SUMIF関数は範囲と条件を直接指定する使い方が主流ですが、BYCOL内ではLAMBDAの仮引数を条件判定に使えるため、より柔軟な集計が組めます。</p>



<p>同じ考え方で、COUNTIFのように「条件に合う件数」を列ごとに数えることもできます。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(--(col&gt;=100))))</code></pre>



<p><code>--(col>=100)</code> は、TRUE/FALSEを1/0に変換する定番テクニックです。BYCOLと組み合わせると、列ごとの条件一致件数がスピルで一気に並びます。</p>



<h3 class="wp-block-heading"><span id="toc12">複合計算（SUM÷COUNTなど）をネストする</span></h3>



<p>LAMBDAの中では複数の関数をネストして自由に計算できます。たとえば「各列の平均を自前で計算したい」ときは、SUMとCOUNTを組み合わせる書き方が可能です。</p>



<pre class="wp-block-code"><code>=BYCOL(A1:C10, LAMBDA(col, SUM(col)/COUNT(col)))</code></pre>



<p>単純な平均ならAVERAGEで十分ですが、分母と分子に別々の条件を絡めたいときに威力を発揮します。公式ドキュメントでは <code>=BYCOL(A1:C2, LAMBDA(array, SUMSQ(array)))</code> のように二乗和を求める例も紹介されています。通常の数式で書ける計算ならほぼ何でも詰め込める、と考えてOKです。</p>



<p>より複雑な式では、LET関数で中間変数を定義すると可読性が上がります。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-let/">ExcelのLET関数の使い方</a>もあわせて参照してみてください。</p>



<h2 class="wp-block-heading"><span id="toc13">よくあるエラーと対処法</span></h2>



<p>BYCOL関数は新しい関数のため、初めて触るときに独特のエラーに遭遇することがあります。公式ドキュメントに記載されている代表的なエラーと対処法をまとめました。</p>



<h3 class="wp-block-heading"><span id="toc14">#SPILL!エラー｜隣のセルが空白か確認</span></h3>



<p>BYCOL関数の結果は横方向にスピルするため、結果が展開される領域が他のデータで埋まっていると <code>#SPILL!</code> エラーが発生します。Microsoft公式によれば、主な原因は次の3つです。</p>



<ul class="wp-block-list"><li>スピル範囲に既存データが残っている</li><li>スピル範囲に結合セルが含まれている</li><li>Excelテーブル内で動的配列関数を使っている（テーブル内ではスピルが機能しない）</li></ul>



<p>対処はシンプルで、スピル先のセルを空にすればOKです。エラーセルの横に表示される警告アイコンをクリックし、「妨害しているセルを選択」ボタンを押すと、原因となっているセルがハイライトされます。その位置のデータを退避するか、数式の入力位置を別の場所に変えましょう。</p>



<p>Excelテーブル内で使いたい場合は、一度テーブル外のセルに数式を書き、結果だけをテーブルに値貼り付けする運用がおすすめです。</p>



<h3 class="wp-block-heading"><span id="toc15">LAMBDA引数ミス｜引数の数が合わないとき</span></h3>



<p><code>#VALUE!</code> エラーや <code>#CALC!</code> エラーが出たときは、LAMBDA関数の書き方を見直します。公式ドキュメントでは次のように区別されています。</p>



<ul class="wp-block-list"><li><code>#VALUE!</code>：無効なLAMBDA関数、またはLAMBDAのパラメータ数が正しくない（Incorrect Parameters）</li><li><code>#CALC!</code>：LAMBDA関数が提供されていない、またはLAMBDAが単一値以外を返している</li></ul>



<p>典型的なミスは、LAMBDAの仮引数を増やしすぎるパターンです。BYCOL関数のLAMBDAは仮引数1つだけを受け取ります。<code>LAMBDA(col, row, SUM(col))</code> のように引数を2つ書くと <code>#VALUE!</code> になります。</p>



<p>また <code>#CALC!</code> は、LAMBDAの中身が配列をそのまま返してしまった場合に出ます。SUMやAVERAGEのような集約関数で「1つの値」に畳み込む処理を必ず最後に置いてください。</p>



<h3 class="wp-block-heading"><span id="toc16">バージョン非対応｜M365以外で使えない場合</span></h3>



<p>Excel 2019やExcel 2021でBYCOL関数を使おうとすると、関数名が認識されず <code>#NAME?</code> エラーになります。BYCOL関数はMicrosoft 365系とExcel 2024系でのみ使える新しい関数だからです。</p>



<p>バージョンが原因かどうかは、「ファイル」→「アカウント」画面で確認できます。製品名が「Microsoft 365」や「Excel 2024」になっていれば対応済みです。「Excel 2021」「Excel 2019」と表示される場合は、そのPC環境ではBYCOL関数自体が存在しません。</p>



<p>対応バージョンのPCで数式を書き、値貼り付けで共有するか、SUMを列ごとに並べる従来の書き方にフォールバックする必要があります。Microsoft 365にアップグレードできるならそれが最速の解決策です。</p>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<p>ExcelのBYCOL関数は、列ごとの集計を1つの数式にまとめてくれる頼もしい関数です。SUM・AVERAGE・MAXなどの定番集計はもちろん、IFと組み合わせた条件付き集計や、SUM/COUNTを組み合わせたカスタム計算もLAMBDA内で自由に書けます。</p>



<p>ポイントを改めて整理すると次のとおりです。</p>



<ul class="wp-block-list"><li>構文は <code>=BYCOL(array, lambda(column))</code> で、LAMBDAは省略不可</li><li>戻り値は「1行×N列」の配列（列数がそのまま結果のセル数になる）</li><li>Microsoft 365・Excel 2024系でのみ動作。Excel 2021以前は <code>#NAME?</code> エラー</li><li><code>#SPILL!</code> エラーはスピル先の空き・結合セル・テーブル内使用を疑う</li><li>行ごとの集計が必要ならBYROW関数、列ごとならBYCOL関数で使い分ける</li></ul>



<p>LAMBDA関数の書き方に不安があるなら、先に<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基本構文を押さえておくとBYCOLの理解が一気に進みます。コピペ集計から卒業して、スピル時代のスマートな集計術を自分の武器にしていきましょう。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-bycol/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのBYCOL関数の使い方｜各列にLAMBDA適用</title>
		<link>https://mashukabu.com/spreadsheet-bycol-function/</link>
					<comments>https://mashukabu.com/spreadsheet-bycol-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:57 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BYCOL関数]]></category>
		<category><![CDATA[BYROW関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[MAP関数]]></category>
		<category><![CDATA[列ごとの集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4905</guid>

					<description><![CDATA[スプレッドシートのBYCOL関数で各列にLAMBDA処理を一括適用する方法を解説。BYROW関数・MAP関数との違いや、列ごとの合計・平均・最大値を一行で取得する実務パターンまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで「列ごとの合計」や「列ごとの平均」を出したいときに困りますよね。列の数だけSUM関数やAVERAGE関数を並べるのは手間ですし、列が増えるたびに数式をコピーするのも面倒です。</p>



<p>BYCOL関数を使えば、すべての列に同じ計算を一括で適用できます。LAMBDA関数と組み合わせて「各列にこの処理をして」と指定するだけです。</p>



<p>この記事では、BYCOL関数の基本から、BYROW関数やMAP関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">BYCOL関数とは？</a><ol><li><a href="#toc2" tabindex="0">BYCOL関数の基本構文</a></li><li><a href="#toc3" tabindex="0">LAMBDA関数とは？</a></li></ol></li><li><a href="#toc4" tabindex="0">BYCOL関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">サンプルデータ</a></li><li><a href="#toc6" tabindex="0">各列の合計を一括で求める</a></li><li><a href="#toc7" tabindex="0">各列の平均を一括で求める</a></li><li><a href="#toc8" tabindex="0">各列の最大値・最小値を求める</a></li></ol></li><li><a href="#toc9" tabindex="0">BYCOL関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 列ごとにデータの件数をカウントする</a></li><li><a href="#toc11" tabindex="0">パターン2: 列ごとに条件付きカウントする</a></li><li><a href="#toc12" tabindex="0">パターン3: 列ごとにユニークな値の数を数える</a></li><li><a href="#toc13" tabindex="0">パターン4: 列ごとの標準偏差を求める</a></li><li><a href="#toc14" tabindex="0">パターン5: 文字列の列ごとの結合</a></li></ol></li><li><a href="#toc15" tabindex="0">BYROW関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">BYCOL関数が向いている場面</a></li><li><a href="#toc17" tabindex="0">BYROW関数が向いている場面</a></li></ol></li><li><a href="#toc18" tabindex="0">MAP関数との違い・使い分け</a><ol><li><a href="#toc19" tabindex="0">MAP関数の使用例</a></li></ol></li><li><a href="#toc20" tabindex="0">LAMBDA系関数の全体像</a></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">BYCOL関数とは？</span></h2>



<p>BYCOL関数（読み方: バイコル関数）は、配列やセル範囲の<strong>各列に対してLAMBDA関数を適用する</strong>関数です。結果は横1行に返ります。「by column（列ごとに）」が名前の由来で、列単位で処理を繰り返すイメージですね。</p>



<p>たとえば、3行x4列の売上データにBYCOL関数でSUM処理を適用すると、4列それぞれの合計が横1行に並びます。列を追加しても数式を変更する必要がなく、自動で集計範囲が広がりますよ。</p>



<p>BYCOL関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>各列に同じ計算（合計・平均・最大値など）を一括で適用する</li><li>LAMBDA関数で処理内容を自由にカスタマイズできる</li><li>結果を横1行で返すため、集計行として使いやすい</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BYCOL関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数がないため、Excelで同様の処理をしたい場合は、各列にSUM関数やAVERAGE関数を個別に入力してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">BYCOL関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=BYCOL(配列, LAMBDA(列, 処理))</code></pre>



<p>カッコの中に、処理対象の配列と、各列に適用するLAMBDA関数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>処理対象のセル範囲または配列</td></tr><tr><td>LAMBDA(列, 処理)</td><td>必須</td><td>各列に適用する関数。「列」は各列を受け取る仮引数</td></tr></tbody></table></figure>



<p>LAMBDA関数の仮引数（上の例では「列」）には好きな名前を付けられます。<code>col</code>や<code>c</code>でもOKです。この仮引数に各列のデータが1列ずつ渡されて、処理が実行されます。</p>



<h3 class="wp-block-heading"><span id="toc3">LAMBDA関数とは？</span></h3>



<p>BYCOL関数を理解するには、LAMBDA関数の基本を知っておく必要があります。</p>



<p>LAMBDA関数は「自分だけの関数を作れる」関数です。引数と処理内容を自分で定義できます。</p>



<pre class="wp-block-code"><code>=LAMBDA(引数, 処理)(値)</code></pre>



<p>たとえば <code>=LAMBDA(x, x<em>2)(5)</code> と書くと、xに5が入って「5</em>2=10」が返ります。BYCOL関数の中では、このLAMBDA関数に各列のデータが自動的に渡される仕組みです。</p>



<h2 class="wp-block-heading"><span id="toc4">BYCOL関数の基本的な使い方</span></h2>



<p>ここでは、月別の売上データをBYCOL関数で列ごとに集計する例を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">サンプルデータ</span></h3>



<p>A1:D4に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>4月</td><td>5月</td><td>6月</td></tr><tr><td>2</td><td>東京</td><td>100</td><td>120</td><td>110</td></tr><tr><td>3</td><td>大阪</td><td>80</td><td>90</td><td>85</td></tr><tr><td>4</td><td>名古屋</td><td>60</td><td>70</td><td>65</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">各列の合計を一括で求める</span></h3>



<p>B2:D4の数値部分に対して、列ごとの合計を求めます。出力先のセル（たとえばB6）に以下の数式を入力して、Enterを押します。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D4, LAMBDA(col, SUM(col)))</code></pre>



<p>結果が横1行に展開されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>6</td><td>240</td><td>280</td><td>260</td></tr></tbody></table></figure>



<p>4月の合計は240、5月は280、6月は260です。3列分の合計が一度に求まりましたね。</p>



<h3 class="wp-block-heading"><span id="toc7">各列の平均を一括で求める</span></h3>



<p>SUM関数の部分をAVERAGE関数に変えるだけで、列ごとの平均が出せます。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D4, LAMBDA(col, AVERAGE(col)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>7</td><td>80</td><td>93.33</td><td>86.67</td></tr></tbody></table></figure>



<p>LAMBDA関数の処理部分を入れ替えるだけで、さまざまな集計に対応できるのがBYCOL関数の強みです。</p>



<h3 class="wp-block-heading"><span id="toc8">各列の最大値・最小値を求める</span></h3>



<p>MAX関数やMIN関数も同じように使えます。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D4, LAMBDA(col, MAX(col)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>8</td><td>100</td><td>120</td><td>110</td></tr></tbody></table></figure>



<p>各月の最大売上が横1行に並びます。どの月が最も好調だったか、一目でわかりますよ。</p>



<h2 class="wp-block-heading"><span id="toc9">BYCOL関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 列ごとにデータの件数をカウントする</span></h3>



<p>各列に何件のデータが入っているかをカウントする例です。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D10, LAMBDA(col, COUNTA(col)))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>を使えば、空白以外のセルの数を列ごとにカウントできます。入力漏れのチェックに活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 列ごとに条件付きカウントする</span></h3>



<p>条件に合うデータだけを列ごとにカウントすることもできます。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D10, LAMBDA(col, COUNTIF(col, &quot;&gt;&quot;&amp;100)))</code></pre>



<p>各列で「100を超えるデータが何件あるか」を一括で求めています。<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>を組み合わせれば、閾値を超えた件数の一覧が簡単に作れますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 列ごとにユニークな値の数を数える</span></h3>



<p>各列に重複なしで何種類の値があるかを数える例です。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D10, LAMBDA(col, COUNTA(UNIQUE(col))))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>で重複を除外してからCOUNTA関数でカウントしています。カテゴリの多様性を列ごとにチェックしたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: 列ごとの標準偏差を求める</span></h3>



<p>統計的な分析にも使えます。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D10, LAMBDA(col, STDEV(col)))</code></pre>



<p>各列のばらつき度合いを一括で算出できます。月ごとの売上のばらつきを比較したい場面で活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: 文字列の列ごとの結合</span></h3>



<p>数値だけでなく、文字列の処理にも使えます。</p>



<pre class="wp-block-code"><code>=BYCOL(A2:A10, LAMBDA(col, TEXTJOIN(&quot;, &quot;, TRUE, col)))</code></pre>



<p>各列のデータをカンマ区切りで1つのセルにまとめます。<a href="https://mashukabu.com/spreadsheet-textjoin-function/">TEXTJOIN関数</a>と組み合わせれば、リスト化がワンステップで完了です。</p>



<h2 class="wp-block-heading"><span id="toc15">BYROW関数との違い・使い分け</span></h2>



<p>BYCOL関数とペアで覚えたいのが、BYROW関数です。名前のとおり、処理の方向が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>BYCOL関数</th><th>BYROW関数</th></tr></thead><tbody><tr><td>処理単位</td><td>列ごと</td><td>行ごと</td></tr><tr><td>結果の方向</td><td>横1行に展開</td><td>縦1列に展開</td></tr><tr><td>典型的な用途</td><td>列ごとの合計・平均</td><td>行ごとの合計・平均</td></tr><tr><td>構文</td><td><code>=BYCOL(配列, LAMBDA(col, ...))</code></td><td><code>=BYROW(配列, LAMBDA(row, ...))</code></td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>月別・カテゴリ別の集計（列方向）</strong> → BYCOL関数</li><li><strong>個人別・行方向の集計（行方向）</strong> → BYROW関数</li></ul>



<h3 class="wp-block-heading"><span id="toc16">BYCOL関数が向いている場面</span></h3>



<p>BYCOL関数は「列ごとの集計行を作りたい」ときに最適です。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D4, LAMBDA(col, SUM(col)))</code></pre>



<p>月別の売上表の最終行に「合計」行を作る場面を思い浮かべてください。各列の合計を1つの数式で出せるので、列が追加されても数式の修正が不要です。</p>



<h3 class="wp-block-heading"><span id="toc17">BYROW関数が向いている場面</span></h3>



<p>BYROW関数は「行ごとの集計列を作りたい」ときに使います。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D4, LAMBDA(row, SUM(row)))</code></pre>



<p>担当者ごと・商品ごとに行方向の合計を出したい場面で活躍します。結果は縦1列に展開されますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>BYCOL関数とBYROW関数を同じ表に使えば、行方向と列方向の集計を両方自動化できます。「列の合計はBYCOL、行の合計はBYROW」と覚えておくと迷いません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">MAP関数との違い・使い分け</span></h2>



<p>BYCOL関数と混同しやすいのがMAP関数です。どちらもLAMBDA関数と組み合わせて使いますが、処理の粒度が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>BYCOL関数</th><th>MAP関数</th></tr></thead><tbody><tr><td>処理単位</td><td>列（複数セルのまとまり）</td><td>セル（1つずつ）</td></tr><tr><td>結果の形</td><td>横1行</td><td>元の配列と同じ形</td></tr><tr><td>向いている処理</td><td>集計（SUM, AVERAGE, MAX等）</td><td>変換・加工（四捨五入、条件分岐等）</td></tr><tr><td>引数のLAMBDA</td><td>列全体を受け取る</td><td>各セルの値を受け取る</td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>列ごとにまとめて集計したい</strong> → BYCOL関数</li><li><strong>各セルを個別に変換・加工したい</strong> → MAP関数</li></ul>



<h3 class="wp-block-heading"><span id="toc19">MAP関数の使用例</span></h3>



<p>MAP関数は各セルに対して処理を適用します。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, LAMBDA(val, IF(val &gt;= 100, &quot;達成&quot;, &quot;未達&quot;)))</code></pre>



<p>この例では、各セルの値が100以上かどうかを判定しています。結果は元の3行x3列と同じ形で返ります。</p>



<p>BYCOL関数で同じことをしようとすると「列全体を受け取る」ため、セル単位の変換には向きません。セルごとの加工はMAP関数、列ごとの集計はBYCOL関数と使い分けてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc20">LAMBDA系関数の全体像</span></h2>



<p>スプレッドシートには、LAMBDA関数と組み合わせて使う関数が複数あります。全体像を把握しておくと、どの場面でどの関数を使うか判断しやすくなりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>処理単位</th><th>結果の形</th><th>主な用途</th></tr></thead><tbody><tr><td>BYCOL</td><td>列ごと</td><td>横1行</td><td>列ごとの集計</td></tr><tr><td>BYROW</td><td>行ごと</td><td>縦1列</td><td>行ごとの集計</td></tr><tr><td>MAP</td><td>セルごと</td><td>元と同じ形</td><td>セルごとの変換・加工</td></tr><tr><td>REDUCE</td><td>配列全体</td><td>1つの値</td><td>全体を1つに集約</td></tr><tr><td>SCAN</td><td>累積</td><td>縦1列</td><td>累積計算の中間結果</td></tr><tr><td>MAKEARRAY</td><td>行×列</td><td>新しい配列</td><td>計算で配列を生成</td></tr></tbody></table></figure>



<p>BYCOL関数は「列ごとに集計して横1行にまとめる」という、かなり限定的な用途の関数です。そのぶん使い方が明快で、迷わずに使えるのがメリットですね。</p>



<h2 class="wp-block-heading"><span id="toc21">よくあるエラーと対処法</span></h2>



<p>BYCOL関数はLAMBDA関数と組み合わせるため、構文のミスが起こりやすいです。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「BYCOL」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>BYCOL関数はGoogleスプレッドシート専用です</td></tr><tr><td><code>#NAME?</code></td><td>LAMBDA関数の仮引数名が不正</td><td>仮引数名にセル参照（A1等）やスペースは使えません</td></tr><tr><td><code>#VALUE!</code></td><td>LAMBDAが1つの値を返さない</td><td>BYCOL関数のLAMBDAは各列に対して1つの値を返す必要があります。配列を返す処理は使えません</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルにデータがある</td><td>結果が横に展開されるため、出力先の右側のセルを空にしてください</td></tr><tr><td><code>#ERROR!</code></td><td>LAMBDAの引数の数が合わない</td><td>LAMBDAの仮引数は1つ（列を受け取る引数）にしてください</td></tr><tr><td>結果が0になる</td><td>文字列の列にSUM関数を使った</td><td>文字列を含む列には、COUNTA関数やTEXTJOIN関数を使ってください</td></tr></tbody></table></figure>



<p>特に多いのが「LAMBDAが1つの値を返さない」エラーです。BYCOL関数は各列に対して1つの値（スカラー値）を返すことを期待しています。SORT関数やFILTER関数のように配列を返す処理はNGです。LAMBDA内に書くと<code>#VALUE!</code>エラーになるので注意してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LAMBDA関数の仮引数名で迷ったら、<code>col</code>（column の略）を使うのがおすすめです。BYROW関数では<code>row</code>、MAP関数では<code>val</code>や<code>v</code>を使うと、どの関数を使っているか一目でわかります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc22">まとめ</span></h2>



<p>BYCOL関数は、配列の各列にLAMBDA関数で処理を適用し、結果を横1行に返す関数です。列ごとの集計をまとめて自動化できるので、列数が多い表の管理がグッと楽になります。</p>



<p>この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>BYCOL関数は<code>=BYCOL(配列, LAMBDA(col, 処理))</code>で、各列に同じ処理を一括適用する</li><li>SUM、AVERAGE、MAX、COUNTAなど、1つの値を返す関数ならなんでもLAMBDAに組み込める</li><li>BYROW関数は行方向の集計、MAP関数はセルごとの変換に使い分ける</li><li>LAMBDAは各列に対して1つの値を返す必要がある（配列を返すとエラー）</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li></ul>



<p>まずは<code>=BYCOL(B2:D4, LAMBDA(col, SUM(col)))</code>のシンプルな列合計から試してみてください。一度使い方を覚えれば、AVERAGE、MAX、COUNTAなど、処理部分を入れ替えるだけでさまざまな集計に応用できますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-byrow-function/">スプレッドシートのBYROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-flatten-function/">スプレッドシートのFLATTEN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-counta-function/">スプレッドシートのCOUNTA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-textjoin-function/">スプレッドシートのTEXTJOIN関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-bycol-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのBYROW関数の使い方｜各行にLAMBDA適用</title>
		<link>https://mashukabu.com/spreadsheet-byrow-function/</link>
					<comments>https://mashukabu.com/spreadsheet-byrow-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:49 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[BYCOL関数]]></category>
		<category><![CDATA[BYROW関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[MAP関数]]></category>
		<category><![CDATA[行ごとの集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4903</guid>

					<description><![CDATA[スプレッドシートのBYROW関数で各行にLAMBDA処理を一括適用する方法を解説。BYCOL関数・MAP関数との違いや、行ごとの合計・平均・最大値を一列で取得する実務パターンまで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで「行ごとの合計」や「行ごとの平均」を出したいときに困りますよね。行の数だけSUM関数やAVERAGE関数を並べるのは手間ですし、行が増えるたびに数式をコピーするのも面倒です。</p>



<p>BYROW関数を使えば、すべての行に同じ計算を一括で適用できます。LAMBDA関数と組み合わせて「各行にこの処理をして」と指定するだけです。</p>



<p>この記事では、BYROW関数の基本から、BYCOL関数やMAP関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">BYROW関数とは？</a><ol><li><a href="#toc2" tabindex="0">BYROW関数の基本構文</a></li><li><a href="#toc3" tabindex="0">LAMBDA関数のおさらい</a></li></ol></li><li><a href="#toc4" tabindex="0">BYROW関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">サンプルデータ</a></li><li><a href="#toc6" tabindex="0">各行の合計を一括で求める</a></li><li><a href="#toc7" tabindex="0">各行の平均を一括で求める</a></li><li><a href="#toc8" tabindex="0">各行の最大値・最小値を求める</a></li></ol></li><li><a href="#toc9" tabindex="0">BYROW関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 行ごとにデータの件数をカウントする</a></li><li><a href="#toc11" tabindex="0">パターン2: 行ごとに条件付きカウントする</a></li><li><a href="#toc12" tabindex="0">パターン3: 行ごとにユニークな値の数を数える</a></li><li><a href="#toc13" tabindex="0">パターン4: 行ごとの標準偏差を求める</a></li><li><a href="#toc14" tabindex="0">パターン5: 文字列の行ごとの結合</a></li></ol></li><li><a href="#toc15" tabindex="0">BYCOL関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">BYROW関数が向いている場面</a></li><li><a href="#toc17" tabindex="0">BYCOL関数が向いている場面</a></li></ol></li><li><a href="#toc18" tabindex="0">MAP関数との違い・使い分け</a><ol><li><a href="#toc19" tabindex="0">MAP関数の使用例</a></li></ol></li><li><a href="#toc20" tabindex="0">LAMBDA系関数の全体像</a></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">BYROW関数とは？</span></h2>



<p>BYROW関数（読み方: バイロウ関数）は、配列やセル範囲の<strong>各行に対してLAMBDA関数を適用する</strong>関数です。結果は縦1列に返ります。「by row（行ごとに）」が名前の由来で、行単位で処理を繰り返すイメージですね。</p>



<p>たとえば、4行x3列の売上データにBYROW関数でSUM処理を適用すると、4行それぞれの合計が縦1列に並びます。行を追加しても数式を変更する必要がなく、自動で集計範囲が広がりますよ。</p>



<p>BYROW関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>各行に同じ計算（合計・平均・最大値など）を一括で適用する</li><li>LAMBDA関数で処理内容を自由にカスタマイズできる</li><li>結果を縦1列で返すため、集計列として使いやすい</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>BYROW関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数がないため、Excelで同様の処理をしたい場合は、各行にSUM関数やAVERAGE関数を個別に入力してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">BYROW関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=BYROW(配列, LAMBDA(行, 処理))</code></pre>



<p>カッコの中に、処理対象の配列と、各行に適用するLAMBDA関数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>処理対象のセル範囲または配列</td></tr><tr><td>LAMBDA(行, 処理)</td><td>必須</td><td>各行に適用する関数。「行」は各行を受け取る仮引数</td></tr></tbody></table></figure>



<p>LAMBDA関数の仮引数（上の例では「行」）には好きな名前を付けられます。<code>row</code>や<code>r</code>でもOKです。この仮引数に各行のデータが1行ずつ渡されて、処理が実行されます。</p>



<h3 class="wp-block-heading"><span id="toc3">LAMBDA関数のおさらい</span></h3>



<p>BYROW関数を使うには、LAMBDA関数の基本を知っておく必要があります。LAMBDA関数の詳しい仕組みは<a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL関数の記事</a>で解説していますので、ここではポイントだけ押さえましょう。</p>



<p>LAMBDA関数は「自分だけの関数を作れる」関数です。引数と処理内容を自分で定義できます。</p>



<pre class="wp-block-code"><code>=LAMBDA(引数, 処理)(値)</code></pre>



<p>たとえば <code>=LAMBDA(x, x<em>2)(5)</code> と書くと、xに5が入って「5</em>2=10」が返ります。BYROW関数の中では、このLAMBDA関数に各行のデータが自動的に渡される仕組みです。</p>



<h2 class="wp-block-heading"><span id="toc4">BYROW関数の基本的な使い方</span></h2>



<p>ここでは、担当者別の売上データをBYROW関数で行ごとに集計する例を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">サンプルデータ</span></h3>



<p>A1:D4に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>4月</td><td>5月</td><td>6月</td></tr><tr><td>2</td><td>東京</td><td>100</td><td>120</td><td>110</td></tr><tr><td>3</td><td>大阪</td><td>80</td><td>90</td><td>85</td></tr><tr><td>4</td><td>名古屋</td><td>60</td><td>70</td><td>65</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">各行の合計を一括で求める</span></h3>



<p>B2:D4の数値部分に対して、行ごとの合計を求めます。出力先のセル（たとえばE2）に以下の数式を入力して、Enterを押します。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D4, LAMBDA(row, SUM(row)))</code></pre>



<p>結果が縦1列に展開されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th></tr></thead><tbody><tr><td>2</td><td>330</td></tr><tr><td>3</td><td>255</td></tr><tr><td>4</td><td>195</td></tr></tbody></table></figure>



<p>東京の合計は330、大阪は255、名古屋は195です。3行分の合計が一度に求まりましたね。</p>



<h3 class="wp-block-heading"><span id="toc7">各行の平均を一括で求める</span></h3>



<p>SUM関数の部分をAVERAGE関数に変えるだけで、行ごとの平均が出せます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D4, LAMBDA(row, AVERAGE(row)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th></tr></thead><tbody><tr><td>2</td><td>110</td></tr><tr><td>3</td><td>85</td></tr><tr><td>4</td><td>65</td></tr></tbody></table></figure>



<p>LAMBDA関数の処理部分を入れ替えるだけで、さまざまな集計に対応できるのがBYROW関数の強みです。</p>



<h3 class="wp-block-heading"><span id="toc8">各行の最大値・最小値を求める</span></h3>



<p>MAX関数やMIN関数も同じように使えます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D4, LAMBDA(row, MAX(row)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>E</th></tr></thead><tbody><tr><td>2</td><td>120</td></tr><tr><td>3</td><td>90</td></tr><tr><td>4</td><td>70</td></tr></tbody></table></figure>



<p>各担当者の最大売上が縦1列に並びます。どの月が最も好調だったか、担当者ごとに一目でわかりますよ。</p>



<h2 class="wp-block-heading"><span id="toc9">BYROW関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 行ごとにデータの件数をカウントする</span></h3>



<p>各行に何件のデータが入っているかをカウントする例です。</p>



<pre class="wp-block-code"><code>=BYROW(B2:F10, LAMBDA(row, COUNTA(row)))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>を使えば、空白以外のセルの数を行ごとにカウントできます。入力漏れのチェックに活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 行ごとに条件付きカウントする</span></h3>



<p>条件に合うデータだけを行ごとにカウントすることもできます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:F10, LAMBDA(row, COUNTIF(row, &quot;&gt;&quot;&amp;100)))</code></pre>



<p>各行で「100を超えるデータが何件あるか」を一括で求めています。<a href="https://mashukabu.com/spreadsheet-countif-function/">COUNTIF関数</a>を組み合わせれば、閾値を超えた月の数が担当者ごとに簡単にわかりますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 行ごとにユニークな値の数を数える</span></h3>



<p>各行に重複なしで何種類の値があるかを数える例です。</p>



<pre class="wp-block-code"><code>=BYROW(B2:F10, LAMBDA(row, COUNTA(UNIQUE(TRANSPOSE(row)))))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-unique-function/">UNIQUE関数</a>は縦方向に重複を除外するため、行データをTRANSPOSE関数で縦に変換してから処理しています。カテゴリの多様性を行ごとにチェックしたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: 行ごとの標準偏差を求める</span></h3>



<p>統計的な分析にも使えます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:F10, LAMBDA(row, STDEV(row)))</code></pre>



<p>各行のばらつき度合いを一括で算出できます。担当者ごとの売上のばらつきを比較したい場面で活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: 文字列の行ごとの結合</span></h3>



<p>数値だけでなく、文字列の処理にも使えます。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D10, LAMBDA(row, TEXTJOIN(&quot;, &quot;, TRUE, row)))</code></pre>



<p>各行のデータをカンマ区切りで1つのセルにまとめます。<a href="https://mashukabu.com/spreadsheet-textjoin-function/">TEXTJOIN関数</a>と組み合わせれば、リスト化がワンステップで完了です。</p>



<h2 class="wp-block-heading"><span id="toc15">BYCOL関数との違い・使い分け</span></h2>



<p>BYROW関数とペアで覚えたいのが、<a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL関数</a>です。名前のとおり、処理の方向が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>BYROW関数</th><th>BYCOL関数</th></tr></thead><tbody><tr><td>処理単位</td><td>行ごと</td><td>列ごと</td></tr><tr><td>結果の方向</td><td>縦1列に展開</td><td>横1行に展開</td></tr><tr><td>典型的な用途</td><td>行ごとの合計・平均</td><td>列ごとの合計・平均</td></tr><tr><td>構文</td><td><code>=BYROW(配列, LAMBDA(row, ...))</code></td><td><code>=BYCOL(配列, LAMBDA(col, ...))</code></td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>担当者別・行方向の集計（行方向）</strong> → BYROW関数</li><li><strong>月別・カテゴリ別の集計（列方向）</strong> → BYCOL関数</li></ul>



<h3 class="wp-block-heading"><span id="toc16">BYROW関数が向いている場面</span></h3>



<p>BYROW関数は「行ごとの集計列を作りたい」ときに最適です。</p>



<pre class="wp-block-code"><code>=BYROW(B2:D4, LAMBDA(row, SUM(row)))</code></pre>



<p>担当者ごとの売上表の右端に「合計」列を作る場面を思い浮かべてください。各行の合計を1つの数式で出せるので、行が追加されても数式の修正が不要です。</p>



<h3 class="wp-block-heading"><span id="toc17">BYCOL関数が向いている場面</span></h3>



<p>BYCOL関数は「列ごとの集計行を作りたい」ときに使います。</p>



<pre class="wp-block-code"><code>=BYCOL(B2:D4, LAMBDA(col, SUM(col)))</code></pre>



<p>月別の売上表の最終行に「合計」行を作る場面で活躍します。結果は横1行に展開されますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>BYROW関数とBYCOL関数を同じ表に使えば、行方向と列方向の集計を両方自動化できます。「行の合計はBYROW、列の合計はBYCOL」と覚えておくと迷いません。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">MAP関数との違い・使い分け</span></h2>



<p>BYROW関数と混同しやすいのがMAP関数です。どちらもLAMBDA関数と組み合わせて使いますが、処理の粒度が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>BYROW関数</th><th>MAP関数</th></tr></thead><tbody><tr><td>処理単位</td><td>行（複数セルのまとまり）</td><td>セル（1つずつ）</td></tr><tr><td>結果の形</td><td>縦1列</td><td>元の配列と同じ形</td></tr><tr><td>向いている処理</td><td>集計（SUM, AVERAGE, MAX等）</td><td>変換・加工（四捨五入、条件分岐等）</td></tr><tr><td>引数のLAMBDA</td><td>行全体を受け取る</td><td>各セルの値を受け取る</td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>行ごとにまとめて集計したい</strong> → BYROW関数</li><li><strong>各セルを個別に変換・加工したい</strong> → MAP関数</li></ul>



<h3 class="wp-block-heading"><span id="toc19">MAP関数の使用例</span></h3>



<p>MAP関数は各セルに対して処理を適用します。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, LAMBDA(val, IF(val &gt;= 100, &quot;達成&quot;, &quot;未達&quot;)))</code></pre>



<p>この例では、各セルの値が100以上かどうかを判定しています。結果は元の3行x3列と同じ形で返ります。</p>



<p>BYROW関数で同じことをしようとすると「行全体を受け取る」ため、セル単位の変換には向きません。セルごとの加工はMAP関数、行ごとの集計はBYROW関数と使い分けてくださいね。</p>



<h2 class="wp-block-heading"><span id="toc20">LAMBDA系関数の全体像</span></h2>



<p>スプレッドシートには、LAMBDA関数と組み合わせて使う関数が複数あります。全体像を把握しておくと、どの場面でどの関数を使うか判断しやすくなりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>処理単位</th><th>結果の形</th><th>主な用途</th></tr></thead><tbody><tr><td>BYROW</td><td>行ごと</td><td>縦1列</td><td>行ごとの集計</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL</a></td><td>列ごと</td><td>横1行</td><td>列ごとの集計</td></tr><tr><td>MAP</td><td>セルごと</td><td>元と同じ形</td><td>セルごとの変換・加工</td></tr><tr><td>REDUCE</td><td>配列全体</td><td>1つの値</td><td>全体を1つに集約</td></tr><tr><td>SCAN</td><td>累積</td><td>縦1列</td><td>累積計算の中間結果</td></tr><tr><td>MAKEARRAY</td><td>行x列</td><td>新しい配列</td><td>計算で配列を生成</td></tr></tbody></table></figure>



<p>BYROW関数は「行ごとに集計して縦1列にまとめる」という、かなり限定的な用途の関数です。そのぶん使い方が明快で、迷わずに使えるのがメリットですね。</p>



<h2 class="wp-block-heading"><span id="toc21">よくあるエラーと対処法</span></h2>



<p>BYROW関数はLAMBDA関数と組み合わせるため、構文のミスが起こりやすいです。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「BYROW」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>BYROW関数はGoogleスプレッドシート専用です</td></tr><tr><td><code>#NAME?</code></td><td>LAMBDA関数の仮引数名が不正</td><td>仮引数名にセル参照（A1等）やスペースは使えません</td></tr><tr><td><code>#VALUE!</code></td><td>LAMBDAが1つの値を返さない</td><td>BYROW関数のLAMBDAは各行に対して1つの値を返す必要があります。配列を返す処理は使えません</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルにデータがある</td><td>結果が縦に展開されるため、出力先の下側のセルを空にしてください</td></tr><tr><td><code>#ERROR!</code></td><td>LAMBDAの引数の数が合わない</td><td>LAMBDAの仮引数は1つ（行を受け取る引数）にしてください</td></tr><tr><td>結果が0になる</td><td>文字列の行にSUM関数を使った</td><td>文字列を含む行には、COUNTA関数やTEXTJOIN関数を使ってください</td></tr></tbody></table></figure>



<p>特に多いのが「LAMBDAが1つの値を返さない」エラーです。BYROW関数は各行に対して1つの値（スカラー値）を返すことを期待しています。SORT関数やFILTER関数のように配列を返す処理はNGです。LAMBDAの中に書くと<code>#VALUE!</code>エラーになるので注意してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LAMBDA関数の仮引数名で迷ったら、<code>row</code>を使うのがおすすめです。BYCOL関数では<code>col</code>、MAP関数では<code>val</code>や<code>v</code>を使うと、どの関数を使っているか一目でわかります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc22">まとめ</span></h2>



<p>BYROW関数は、配列の各行にLAMBDA関数で処理を適用し、結果を縦1列に返す関数です。行ごとの集計をまとめて自動化できるので、行数が多い表の管理がグッと楽になります。</p>



<p>この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>BYROW関数は<code>=BYROW(配列, LAMBDA(row, 処理))</code>で、各行に同じ処理を一括適用する</li><li>SUM、AVERAGE、MAX、COUNTAなど、1つの値を返す関数ならなんでもLAMBDAに組み込める</li><li>BYCOL関数は列方向の集計、MAP関数はセルごとの変換に使い分ける</li><li>LAMBDAは各行に対して1つの値を返す必要がある（配列を返すとエラー）</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li></ul>



<p>まずは<code>=BYROW(B2:D4, LAMBDA(row, SUM(row)))</code>のシンプルな行合計から試してみてください。一度使い方を覚えれば、AVERAGE、MAX、COUNTAなど、処理部分を入れ替えるだけでさまざまな集計に応用できますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-bycol-function/">スプレッドシートのBYCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-countif-function/">スプレッドシートのCOUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-counta-function/">スプレッドシートのCOUNTA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-textjoin-function/">スプレッドシートのTEXTJOIN関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-byrow-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのMAP関数の使い方｜各値にLAMBDA適用</title>
		<link>https://mashukabu.com/spreadsheet-map-function/</link>
					<comments>https://mashukabu.com/spreadsheet-map-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:28:38 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA関数]]></category>
		<category><![CDATA[BYCOL関数]]></category>
		<category><![CDATA[BYROW関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[MAP関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4719</guid>

					<description><![CDATA[スプレッドシートのMAP関数で各セルにLAMBDA処理を一括適用する方法を解説。ARRAYFORMULA関数との違いや、BYCOL・BYROW関数との使い分け、複数配列の同時処理パターンまでわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p>スプレッドシートで「全セルに同じ加工をしたい」場面、ありませんか？ 数値の四捨五入、条件に応じたラベル付け、文字列の変換など、1つずつ数式をコピーしていくのは手間がかかります。</p>



<p>MAP関数を使えば、配列のすべてのセルにLAMBDA関数で処理を一括適用できます。しかも複数の配列を同時に処理できるのが、MAP関数ならではの強みです。</p>



<p>この記事では、MAP関数の基本から、ARRAYFORMULA関数やBYCOL・BYROW関数との違いまでわかりやすく解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">MAP関数とは？</a><ol><li><a href="#toc2" tabindex="0">MAP関数の基本構文</a></li><li><a href="#toc3" tabindex="0">LAMBDA関数のおさらい</a></li></ol></li><li><a href="#toc4" tabindex="0">MAP関数の基本的な使い方</a><ol><li><a href="#toc5" tabindex="0">サンプルデータ</a></li><li><a href="#toc6" tabindex="0">各セルを四捨五入する</a></li><li><a href="#toc7" tabindex="0">条件分岐を一括適用する</a></li><li><a href="#toc8" tabindex="0">複数の配列を同時に処理する</a></li></ol></li><li><a href="#toc9" tabindex="0">MAP関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 空白セルにデフォルト値を埋める</a></li><li><a href="#toc11" tabindex="0">パターン2: 数値にカンマ区切りの書式を適用する</a></li><li><a href="#toc12" tabindex="0">パターン3: 税込価格を一括計算する</a></li><li><a href="#toc13" tabindex="0">パターン4: 2つの列を結合してフルネームを作る</a></li><li><a href="#toc14" tabindex="0">パターン5: エラー値を安全に処理する</a></li></ol></li><li><a href="#toc15" tabindex="0">ARRAYFORMULA関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">ARRAYFORMULA関数で書ける例</a></li><li><a href="#toc17" tabindex="0">MAP関数でないとできない例</a></li></ol></li><li><a href="#toc18" tabindex="0">BYCOL・BYROW関数との違い・使い分け</a></li><li><a href="#toc19" tabindex="0">LAMBDA系関数の全体像</a></li><li><a href="#toc20" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc21" tabindex="0">まとめ</a><ol><li><a href="#toc22" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">MAP関数とは？</span></h2>



<p>MAP関数（読み方: マップ関数）は、配列やセル範囲の<strong>各セルに対してLAMBDA関数を適用する</strong>関数です。結果は元の配列と同じサイズで返ります。「map（対応づける）」が名前の由来で、各値を別の値に変換するイメージですね。</p>



<p>たとえば、3行x3列の売上データにMAP関数でROUND処理を適用すると、9つのセルすべてが四捨五入された値に置き換わります。元の表と同じ形のまま一括で変換できるのがポイントです。</p>



<p>MAP関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>各セルに同じ処理（四捨五入、条件分岐、文字変換など）を一括適用する</li><li>LAMBDA関数で処理内容を自由にカスタマイズできる</li><li>複数の配列を同時に渡して、対応するセル同士を処理できる</li></ul>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>MAP関数はGoogleスプレッドシート独自の関数です。Excelには同じ名前の関数がないため、Excelで同様の処理をしたい場合は、ARRAYFORMULA関数や配列数式で代用してください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">MAP関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=MAP(配列, LAMBDA(値, 処理))</code></pre>



<p>カッコの中に、処理対象の配列と、各セルに適用するLAMBDA関数を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列</td><td>必須</td><td>処理対象のセル範囲または配列（複数指定可）</td></tr><tr><td>LAMBDA(値, 処理)</td><td>必須</td><td>各セルに適用する関数。「値」は各セルを受け取る仮引数</td></tr></tbody></table></figure>



<p>LAMBDA関数の仮引数（上の例では「値」）には好きな名前を付けられます。<code>val</code>や<code>v</code>でもOKです。この仮引数に各セルのデータが1つずつ渡されて、処理が実行されます。</p>



<p><strong>複数配列を渡す場合</strong>の構文はこうなります。</p>



<pre class="wp-block-code"><code>=MAP(配列1, 配列2, LAMBDA(値1, 値2, 処理))</code></pre>



<p>配列1と配列2の同じ位置にあるセルが、それぞれ値1・値2としてLAMBDA関数に渡されます。配列は3つ以上でも指定可能です。ただし、すべての配列は同じサイズ（行数×列数）にしてください。</p>



<h3 class="wp-block-heading"><span id="toc3">LAMBDA関数のおさらい</span></h3>



<p>MAP関数を理解するには、LAMBDA関数の基本を知っておく必要があります。詳しくは<a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL関数の記事</a>で解説していますが、ここでもかんたんにおさらいしておきますね。</p>



<p>LAMBDA関数は「自分だけの関数を作れる」関数です。引数と処理内容を自分で定義できます。</p>



<pre class="wp-block-code"><code>=LAMBDA(引数, 処理)(値)</code></pre>



<p>たとえば <code>=LAMBDA(x, x<em>2)(5)</code> と書くと、xに5が入って「5</em>2=10」が返ります。MAP関数の中では、このLAMBDA関数に各セルの値が自動的に渡される仕組みです。</p>



<h2 class="wp-block-heading"><span id="toc4">MAP関数の基本的な使い方</span></h2>



<p>ここでは、売上データをMAP関数で一括変換する例を紹介します。</p>



<h3 class="wp-block-heading"><span id="toc5">サンプルデータ</span></h3>



<p>A1:D4に以下のデータが入っているとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A</th><th>B</th><th>C</th><th>D</th></tr></thead><tbody><tr><td>1</td><td>&nbsp;</td><td>4月</td><td>5月</td><td>6月</td></tr><tr><td>2</td><td>東京</td><td>98.7</td><td>120.3</td><td>110.5</td></tr><tr><td>3</td><td>大阪</td><td>82.4</td><td>91.8</td><td>85.2</td></tr><tr><td>4</td><td>名古屋</td><td>63.1</td><td>74.6</td><td>68.9</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">各セルを四捨五入する</span></h3>



<p>B2:D4の数値を一括で四捨五入します。出力先のセル（たとえばF2）に以下の数式を入力して、Enterを押します。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, LAMBDA(val, ROUND(val, 0)))</code></pre>



<p>結果が元の3行x3列と同じ形で返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th><th>H</th></tr></thead><tbody><tr><td>2</td><td>99</td><td>120</td><td>111</td></tr><tr><td>3</td><td>82</td><td>92</td><td>85</td></tr><tr><td>4</td><td>63</td><td>75</td><td>69</td></tr></tbody></table></figure>



<p>すべてのセルがROUND関数で四捨五入されました。9つのセルに個別にROUND関数を入力する手間が省けますね。</p>



<h3 class="wp-block-heading"><span id="toc7">条件分岐を一括適用する</span></h3>



<p>各セルの値を条件で判定し、ラベルを付ける例です。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, LAMBDA(val, IF(val &gt;= 100, &quot;達成&quot;, &quot;未達&quot;)))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>F</th><th>G</th><th>H</th></tr></thead><tbody><tr><td>2</td><td>未達</td><td>達成</td><td>達成</td></tr><tr><td>3</td><td>未達</td><td>未達</td><td>未達</td></tr><tr><td>4</td><td>未達</td><td>未達</td><td>未達</td></tr></tbody></table></figure>



<p><a href="https://mashukabu.com/spreadsheet-if-function/">IF関数</a>と組み合わせれば、全セルに条件分岐を一括適用できます。目標達成の判定表が一発で完成です。</p>



<h3 class="wp-block-heading"><span id="toc8">複数の配列を同時に処理する</span></h3>



<p>MAP関数ならではの機能が、複数の配列を同時に処理できることです。</p>



<p>たとえば、売上データ（B2:D4）と目標データ（F2:H4）の2つの表がある場合を考えてみましょう。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, F2:H4, LAMBDA(actual, target, actual - target))</code></pre>



<p>各セルの「売上 &#8211; 目標」の差額が一括で計算されます。2つの表の同じ位置にあるセルが、LAMBDAの引数に1つずつ渡される仕組みです。</p>



<p>この使い方はBYCOL関数やBYROW関数にはありません。「複数の表を突き合わせてセルごとに処理したい」場面では、MAP関数の出番ですよ。</p>



<h2 class="wp-block-heading"><span id="toc9">MAP関数の実務活用パターン</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1: 空白セルにデフォルト値を埋める</span></h3>



<p>データに空白セルが混じっているとき、一括で「0」や「-」に置き換えます。</p>



<pre class="wp-block-code"><code>=MAP(B2:D10, LAMBDA(val, IF(val=&quot;&quot;, 0, val)))</code></pre>



<p>空白だったセルが0に置き換わり、それ以外はそのまま残ります。集計前のデータクリーニングに便利なパターンです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 数値にカンマ区切りの書式を適用する</span></h3>



<p>大きな数値をカンマ区切りの文字列に変換します。</p>



<pre class="wp-block-code"><code>=MAP(B2:D10, LAMBDA(val, TEXT(val, &quot;#,##0&quot;)))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-text-function/">TEXT関数</a>と組み合わせれば、表示形式の一括変換がワンステップで完了します。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 税込価格を一括計算する</span></h3>



<p>税抜き価格の表から、税込価格の表を一発で作ります。</p>



<pre class="wp-block-code"><code>=MAP(B2:D10, LAMBDA(val, ROUND(val * 1.1, 0)))</code></pre>



<p>消費税10%を掛けてROUND関数で整数に丸めています。価格表の更新に使えるパターンです。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: 2つの列を結合してフルネームを作る</span></h3>



<p>姓（A列）と名（B列）を結合して、フルネームを作る例です。</p>



<pre class="wp-block-code"><code>=MAP(A2:A10, B2:B10, LAMBDA(sei, mei, sei &amp; &quot; &quot; &amp; mei))</code></pre>



<p>複数配列の同時処理を使えば、姓と名を1つの列にまとめる作業が一括で片付きます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: エラー値を安全に処理する</span></h3>



<p>計算結果にエラーが含まれる可能性がある場合、エラーを別の値に置き換えます。</p>



<pre class="wp-block-code"><code>=MAP(B2:D10, LAMBDA(val, IFERROR(val / A2, &quot;N/A&quot;)))</code></pre>



<p><a href="https://mashukabu.com/spreadsheet-iferror-function/">IFERROR関数</a>を組み込めば、エラーが出たセルだけを「N/A」に置き換えられます。他のセルは正常に計算されますよ。</p>



<h2 class="wp-block-heading"><span id="toc15">ARRAYFORMULA関数との違い・使い分け</span></h2>



<p>MAP関数と似た機能を持つのが<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>です。どちらも「範囲に処理を一括適用する」関数ですが、得意分野が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAP関数</th><th>ARRAYFORMULA関数</th></tr></thead><tbody><tr><td>処理の定義方法</td><td>LAMBDA関数で自由に記述</td><td>既存関数をそのまま使用</td></tr><tr><td>複数配列の同時処理</td><td>対応（配列をいくつでも渡せる）</td><td>非対応（1つの数式で処理）</td></tr><tr><td>複雑な条件分岐</td><td>得意（LAMBDA内で自由に組める）</td><td>シンプルな条件のみ</td></tr><tr><td>学習コスト</td><td>やや高い（LAMBDA関数の理解が必要）</td><td>低い（既存関数を囲むだけ）</td></tr><tr><td>パフォーマンス</td><td>大量データではやや遅い</td><td>高速</td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>既存関数をそのまま範囲に適用したい</strong> → ARRAYFORMULA関数</li><li><strong>LAMBDAで複雑な処理を定義したい・複数配列を同時に処理したい</strong> → MAP関数</li></ul>



<h3 class="wp-block-heading"><span id="toc16">ARRAYFORMULA関数で書ける例</span></h3>



<p>たとえば「各セルに2を掛ける」程度のシンプルな処理なら、ARRAYFORMULA関数のほうが簡潔です。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(B2:D4 * 2)</code></pre>



<p>MAP関数で書くと <code>=MAP(B2:D4, LAMBDA(val, val * 2))</code> になります。結果は同じですが、ARRAYFORMULA関数のほうが短くて読みやすいですよね。</p>



<h3 class="wp-block-heading"><span id="toc17">MAP関数でないとできない例</span></h3>



<p>一方、複数の配列を突き合わせて処理するケースはMAP関数の出番です。</p>



<pre class="wp-block-code"><code>=MAP(B2:D4, F2:H4, LAMBDA(actual, target, IF(actual &gt;= target, &quot;OK&quot;, &quot;NG&quot;)))</code></pre>



<p>「売上」と「目標」の2つの表を突き合わせて、達成・未達を判定しています。ARRAYFORMULA関数でも <code>=ARRAYFORMULA(IF(B2:D4>=F2:H4,"OK","NG"))</code> と書けますが、LAMBDAで複雑な処理を組み立てられるのはMAP関数だけです。</p>



<h2 class="wp-block-heading"><span id="toc18">BYCOL・BYROW関数との違い・使い分け</span></h2>



<p>LAMBDA系関数には<a href="https://mashukabu.com/spreadsheet-bycol-function/">BYCOL関数</a>と<a href="https://mashukabu.com/spreadsheet-byrow-function/">BYROW関数</a>もありますが、処理の粒度がまったく異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAP関数</th><th>BYCOL関数</th><th>BYROW関数</th></tr></thead><tbody><tr><td>処理単位</td><td>セル（1つずつ）</td><td>列（まとめて）</td><td>行（まとめて）</td></tr><tr><td>結果の形</td><td>元の配列と同じサイズ</td><td>横1行</td><td>縦1列</td></tr><tr><td>向いている処理</td><td>変換・加工</td><td>列ごとの集計</td><td>行ごとの集計</td></tr><tr><td>LAMBDAに渡される値</td><td>各セルの値</td><td>各列全体（配列）</td><td>各行全体（配列）</td></tr><tr><td>複数配列の同時処理</td><td>対応</td><td>非対応</td><td>非対応</td></tr></tbody></table></figure>



<p><strong>使い分けの目安はこうです。</strong></p>



<ul class="wp-block-list"><li><strong>各セルを個別に変換したい</strong> → MAP関数</li><li><strong>列ごとにまとめて集計したい</strong> → BYCOL関数</li><li><strong>行ごとにまとめて集計したい</strong> → BYROW関数</li></ul>



<p>MAP関数は「セルごと」、BYCOL・BYROWは「まとめて集計」。この違いを押さえておけば迷いませんよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「合計や平均を出したい」ならBYCOL・BYROW関数、「各セルの値を変換・加工したい」ならMAP関数です。「集計か変換か」で選んでくださいね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc19">LAMBDA系関数の全体像</span></h2>



<p>スプレッドシートには、LAMBDA関数と組み合わせて使う関数が複数あります。全体像を把握しておくと、どの場面でどの関数を使うか判断しやすくなりますよ。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>処理単位</th><th>結果の形</th><th>主な用途</th></tr></thead><tbody><tr><td>MAP</td><td>セルごと</td><td>元と同じ形</td><td>セルごとの変換・加工</td></tr><tr><td>BYCOL</td><td>列ごと</td><td>横1行</td><td>列ごとの集計</td></tr><tr><td>BYROW</td><td>行ごと</td><td>縦1列</td><td>行ごとの集計</td></tr><tr><td>REDUCE</td><td>配列全体</td><td>1つの値</td><td>全体を1つに集約</td></tr><tr><td>SCAN</td><td>累積</td><td>縦1列</td><td>累積計算の中間結果</td></tr><tr><td>MAKEARRAY</td><td>行×列</td><td>新しい配列</td><td>計算で配列を生成</td></tr></tbody></table></figure>



<p>MAP関数は「各セルを個別に変換する」という、最も直感的な使い方の関数です。配列処理のファーストチョイスとして覚えておくと便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc20">よくあるエラーと対処法</span></h2>



<p>MAP関数はLAMBDA関数と組み合わせるため、構文のミスが起こりやすいです。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#NAME?</code></td><td>関数名のスペルミス</td><td>「MAP」のスペルを確認してください</td></tr><tr><td><code>#NAME?</code></td><td>Excelで使用しようとした</td><td>MAP関数はGoogleスプレッドシート専用です</td></tr><tr><td><code>#NAME?</code></td><td>LAMBDA関数の仮引数名が不正</td><td>仮引数名にセル参照（A1等）やスペースは使えません</td></tr><tr><td><code>#VALUE!</code></td><td>複数配列のサイズが不一致</td><td>MAP関数に複数の配列を渡す場合、すべて同じ行数×列数にしてください</td></tr><tr><td><code>#REF!</code></td><td>出力先のセルにデータがある</td><td>結果が元の配列と同じサイズで展開されるため、出力先に十分な空きスペースを確保してください</td></tr><tr><td><code>#ERROR!</code></td><td>LAMBDAの引数の数が合わない</td><td>配列が1つならLAMBDAの仮引数も1つ、配列が2つなら仮引数も2つにしてください</td></tr></tbody></table></figure>



<p>特に多いのが「複数配列のサイズ不一致」エラーです。MAP関数に複数の配列を渡すとき、たとえばB2:D4（3行3列）とF2:H5（4行3列）のように行数が違うと<code>#VALUE!</code>になります。範囲を揃えてから試してくださいね。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>LAMBDA関数の仮引数名で迷ったら、<code>val</code>や<code>v</code>を使うのがおすすめです。複数配列を渡すときは、<code>a</code>と<code>b</code>や、意味のある名前（<code>actual</code>と<code>target</code>など）を使うと読みやすくなります。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc21">まとめ</span></h2>



<p>MAP関数は、配列の各セルにLAMBDA関数で処理を適用し、結果を元の配列と同じサイズで返す関数です。セルごとの変換・加工を一括で自動化できるので、データクリーニングや表の加工がグッと楽になります。</p>



<p>この記事のポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li>MAP関数は<code>=MAP(配列, LAMBDA(val, 処理))</code>で、各セルに同じ処理を一括適用する</li><li>複数の配列を渡して、対応するセル同士を処理できるのがMAP関数ならではの強み</li><li>シンプルな計算はARRAYFORMULA関数、LAMBDA処理や複数配列はMAP関数と使い分ける</li><li>BYCOL・BYROW関数は集計向き、MAP関数は変換・加工向き</li><li>Googleスプレッドシート独自の関数で、Excelでは使えない</li></ul>



<p>まずは<code>=MAP(B2:D4, LAMBDA(val, ROUND(val, 0)))</code>のシンプルな四捨五入から試してみてください。一度使い方を覚えれば、IF関数やTEXT関数など、処理部分を入れ替えるだけでさまざまな変換に応用できますよ。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc22">この記事で紹介した関数・関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-bycol-function/">スプレッドシートのBYCOL関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-byrow-function/">スプレッドシートのBYROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-makearray-function/">スプレッドシートのMAKEARRAY関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-if-function/">スプレッドシートのIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-iferror-function/">スプレッドシートのIFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-text-function/">スプレッドシートのTEXT関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-map-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
