<?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>行集計 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/%e8%a1%8c%e9%9b%86%e8%a8%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Apr 2026 12:10:17 +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>行集計 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのBYROW関数の使い方｜行ごとに関数を適用</title>
		<link>https://mashukabu.com/excel-function-howto-use-byrow/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-byrow/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 12:10:17 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[BYROW]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[中級者向け]]></category>
		<category><![CDATA[行集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5901</guid>

					<description><![CDATA[ExcelのBYROW関数の使い方を初心者向けに解説。行ごとにSUM・AVERAGEを一発で集計できます。BYCOL関数との違いをわかりやすい比較表で整理。#SPILL!・#VALUE!・#CALC!エラーの対処法も網羅しています。]]></description>
										<content:encoded><![CDATA[

  <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">はじめに</a></li><li><a href="#toc2" tabindex="0">BYROW関数とは？</a><ol><li><a href="#toc3" tabindex="0">BYCOLとの違いを比較表で確認</a></li><li><a href="#toc4" tabindex="0">対応バージョン（Microsoft 365 / Excel 2024）</a></li></ol></li><li><a href="#toc5" tabindex="0">BYROW関数の書き方</a><ol><li><a href="#toc6" tabindex="0">構文と引数の説明</a></li><li><a href="#toc7" tabindex="0">LAMBDAが必須な理由</a></li></ol></li><li><a href="#toc8" tabindex="0">基本の使い方</a><ol><li><a href="#toc9" tabindex="0">行ごとの合計（SUM）</a></li><li><a href="#toc10" tabindex="0">行ごとの平均（AVERAGE）</a></li><li><a href="#toc11" tabindex="0">行ごとの最大値（MAX）</a></li></ol></li><li><a href="#toc12" tabindex="0">応用例</a><ol><li><a href="#toc13" tabindex="0">BYROW × IFで条件付き行集計</a></li><li><a href="#toc14" tabindex="0">複合計算をネストする</a></li></ol></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#SPILL! エラー</a></li><li><a href="#toc17" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc18" tabindex="0">#CALC! エラー</a></li><li><a href="#toc19" tabindex="0">#NAME? エラー</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>ExcelでSUMやAVERAGEを行ごとに何十行もコピペして集計していませんか。行が増えるたびに数式を貼り直すのは地味に時間がかかります。そして1箇所ズレるだけで集計ミスが発生することもありますよね。</p>



<p>そんな課題を一発で解決してくれるのが、Microsoft 365に搭載されている<strong>BYROW関数</strong>です。BYROW関数を使えば、表全体に対して「行ごとに合計」「行ごとに平均」といった処理を、1つの数式でまとめて実行できます。スピル（数式の結果が自動で隣接セルに展開される機能）によって、結果は縦1列にきれいに並びます。</p>



<p>この記事では、BYROW関数の構文から基本の使い方、BYCOL関数との違い、エラー対処法までを網羅的に解説します。実務ですぐ使えるサンプルを中心にまとめました。読み終わる頃には、行ごとの集計を「1つの数式でサクッと片付けられる人」になっているはずです。</p>



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



<p>BYROW関数（読み方：バイロウ）は、配列の各行に対してLAMBDA関数を適用し、1列の配列として結果を返す関数です。関数名は「BY（〜ごとに）＋ROW（行）」に由来します。LAMBDA関数とは、自作の処理を関数化する仕組みのことです。</p>



<p>たとえば「3行×4列の売上表」に対してBYROWでSUMを適用すると、各行の合計値が縦1列に3つ並びます。従来のSUMをD1、D2、D3&#8230;と個別にコピペしていた作業を、1つの数式に置き換えられるのが最大のメリットです。</p>



<p>BYROW関数は<strong>LAMBDAヘルパー関数</strong>と呼ばれるグループの1つです。2022年2月にMicrosoft 365向けに追加されました。同じグループにはBYCOL、MAP、REDUCE、SCAN、MAKEARRAY、ISOMITTEDがあります。いずれもLAMBDAと組み合わせて配列処理を柔軟に行うための関数です。</p>



<p>スピル機能を前提としているため、1つのセルに数式を入力するだけで結果が自動展開されます。行数が可変のデータでも、数式側を書き換える必要はほぼありません。</p>



<h3 class="wp-block-heading"><span id="toc3">BYCOLとの違いを比較表で確認</span></h3>



<p>BYROWとBYCOLは兄弟のような関係で、処理の向きが違うだけで構造はほぼ同じです。どちらを使うべきか迷ったら、下の比較表でサクッと整理しましょう。</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列×N行（縦長）</td><td>N列×1行（横長）</td></tr><tr><td>スピル方向</td><td>縦方向</td><td>横方向</td></tr><tr><td>典型用途</td><td>行ごとの合計・平均</td><td>列ごとの月次集計</td></tr><tr><td>LAMBDA引数</td><td>row（1行分の配列）</td><td>col（1列分の配列）</td></tr></tbody></table></figure>



<p>行ごとの集計（生徒ごとの合計点、商品ごとの売上など）にはBYROW。列ごとの集計（月ごとの売上、項目ごとの平均など）にはBYCOL。こう覚えておけば間違いありません。列方向の処理については<a href="https://mashukabu.com/excel-function-howto-use-bycol/">ExcelのBYCOL関数の使い方</a>で詳しく解説しているので、セットで読むとLAMBDAヘルパー関数の理解が一気に深まります。</p>



<h3 class="wp-block-heading"><span id="toc4">対応バージョン（Microsoft 365 / Excel 2024）</span></h3>



<p>BYROW関数はMicrosoft公式ドキュメントによると、以下の環境で利用できます。</p>



<ul class="wp-block-list"><li>Excel for Microsoft 365</li><li>Excel for Microsoft 365 for Mac</li><li>Excel for the web（ブラウザ版）</li><li>Excel 2024</li><li>Excel 2024 for Mac</li></ul>



<p>一方、<strong>Excel 2021やExcel 2019以前では使えません</strong>。古いバージョンで使うと#NAME?エラーが返ります。オフィスのPCが買い切り版の古いExcelだった場合は、Microsoft 365への移行を検討するか、従来のSUM配列数式で代替する必要があります。</p>



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



<p>BYROW関数は引数が2つだけのシンプルな構造です。ただしLAMBDA関数との組み合わせが必須のため、初見だと少し戸惑うかもしれません。ここで構文と引数をしっかり押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">構文と引数の説明</span></h3>



<p>BYROW関数の公式な構文は次の通りです。</p>



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



<p>2つの引数の役割は以下の通りです。</p>



<ul class="wp-block-list"><li><strong>array</strong>（必須）：処理対象の配列または範囲。たとえば<code>A1:C3</code>のような複数行・複数列の範囲を指定します。</li><li><strong>lambda</strong>（必須）：1つのパラメータ（row）を受け取り、1つの値を返すLAMBDA関数。<code>row</code>には各行が1行分の配列として順番に渡されます。</li></ul>



<p>戻り値は「N列×M行の配列」を渡すと「1列×M行の配列」を返します。3行×4列を渡せば、縦に3つ並んだ結果が返ってくるイメージです。</p>



<p>具体例で見てみましょう。A1:C3に数値が入っているとします。</p>



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



<p>この数式は「A1:C3の各行に対してSUMを適用し、1列×3行の結果を返す」という意味になります。1行目の合計、2行目の合計、3行目の合計が縦に並んでスピルします。</p>



<h3 class="wp-block-heading"><span id="toc7">LAMBDAが必須な理由</span></h3>



<p>BYROW関数の第2引数には、必ずLAMBDA関数を渡す必要があります。単に<code>SUM</code>とだけ書いても動作しません。</p>



<pre class="wp-block-code"><code># NG：これは動かない
=BYROW(A1:C3, SUM)

# OK：LAMBDAでラップする
=BYROW(A1:C3, LAMBDA(row, SUM(row)))</code></pre>



<p>理由は、BYROWが「各行をどう処理するか」を呼び出し側にカスタマイズさせる設計だからです。LAMBDAを使うことで、SUM以外にもAVERAGEや独自の計算式を自由に組み込めます。LAMBDA関数の基礎が不安な方は、先に<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基本構文を確認しておくとスムーズです。</p>



<p>なお、LAMBDAの引数名（ここでは<code>row</code>）は自由に決められます。<code>r</code>でも<code>gyo</code>でも動作しますが、可読性を重視して<code>row</code>にしておくのが無難です。</p>



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



<p>ここからは、実務でよく使うSUM・AVERAGE・MAXを例に、BYROW関数の基本パターンを見ていきます。どれも同じ構造で応用が効くので、1つ覚えれば他もすぐ書けるようになります。</p>



<h3 class="wp-block-heading"><span id="toc9">行ごとの合計（SUM）</span></h3>



<p>もっとも使用頻度が高いのが、行ごとの合計です。たとえば下のような売上表があるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th></tr></thead><tbody><tr><td>100</td><td>200</td><td>150</td></tr><tr><td>80</td><td>90</td><td>110</td></tr><tr><td>200</td><td>180</td><td>220</td></tr></tbody></table></figure>



<p>この3行それぞれの合計を、D1セルに1つの数式で出すには次のように書きます。</p>



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



<p>D1に入力した瞬間、D1には450、D2には280、D3には600がスピルされます。行が増えたら範囲を<code>A1:C10</code>のように広げるだけで、数式のコピペは不要です。</p>



<p>従来の方法ではD1に<code>=SUM(A1:C1)</code>と書いてD3まで引っ張る必要がありました。BYROWなら1つの数式で完結するため、数式のメンテナンス性が段違いです。</p>



<h3 class="wp-block-heading"><span id="toc10">行ごとの平均（AVERAGE）</span></h3>



<p>平均値もSUMと同じ感覚で書けます。LAMBDAの中身をSUMからAVERAGEに差し替えるだけです。</p>



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



<p>上のサンプル表に適用すると、D1には150、D2には約93.3、D3には200が縦に並びます。テストの点数表で生徒ごとの平均点を出したいときなどに、そのまま使えるパターンです。</p>



<p>小数点以下を整えたいときはROUND関数でラップできます。<code>LAMBDA(row, ROUND(AVERAGE(row), 1))</code>のように書けば、小数第1位で丸めた結果がスピルします。</p>



<h3 class="wp-block-heading"><span id="toc11">行ごとの最大値（MAX）</span></h3>



<p>最大値を取り出すパターンもほぼ同じ構造です。LAMBDAの中でMAXを呼び出します。</p>



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



<p>サンプル表に適用すると、D1には200、D2には110、D3には220が返ります。「各行で最も売れた商品の金額」や「生徒ごとの最高点」を一覧化したいときに便利です。</p>



<p>同じ要領でMIN・COUNT・COUNTAなども使えます。ポイントは「LAMBDAの中で<code>row</code>を引数として渡せる集計関数なら何でもOK」ということです。</p>



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



<p>基本を押さえたら、次は実務で差がつく応用パターンに進みましょう。BYROWはLAMBDAの中に任意の計算式を書けるため、条件付き集計やネスト計算にも対応できます。</p>



<h3 class="wp-block-heading"><span id="toc13">BYROW × IFで条件付き行集計</span></h3>



<p>BYROWの強みは、LAMBDAの中にIF関数を組み込んで条件付きの行集計ができる点です。たとえば「行の合計が100以上なら達成、未満なら未達」というフラグを立てたい場合、次のように書けます。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, IF(SUM(row)&gt;=100, &quot;達成&quot;, &quot;未達&quot;)))</code></pre>



<p>上のサンプル表なら、D1「達成」、D2「達成」、D3「達成」が縦に並びます。仮にB2を「10」、C2を「5」に変えれば、D2は「未達」に切り替わります。</p>



<p>SUMIFSでは書きにくい「行内の複雑な条件判定」もBYROWなら自然に書けます。たとえば「すべての列が50以上ならOK」のような判定も、<code>LAMBDA(row, IF(MIN(row)>=50, "OK", "NG"))</code>のように書けば一発です。</p>



<h3 class="wp-block-heading"><span id="toc14">複合計算をネストする</span></h3>



<p>BYROWのLAMBDA内部では、複数の関数を自由にネストできます。たとえば「各行の合計から最小値を引いた値」を出したい場合は次の通りです。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, SUM(row) - MIN(row)))</code></pre>



<p>さらに複雑な例として、「各行の最大値と最小値の差（レンジ）」を算出するパターンもあります。</p>



<pre class="wp-block-code"><code>=BYROW(A1:C3, LAMBDA(row, MAX(row) - MIN(row)))</code></pre>



<p>このように、LAMBDA内部は通常のExcel数式と同じ感覚で計算式を書けます。ただし<strong>LAMBDAは各行について必ず1つの値を返す必要がある</strong>点には注意が必要です。FILTERやSORTのように配列を返す関数を入れると、後述する#CALC!エラーが発生します。</p>



<p>なお、Googleスプレッドシート版のBYROWは2022年12月のアップデートで機能拡張されました。LAMBDA内にFILTER・SORT・UNIQUEなど配列を返す関数を使えるようになっています。Excel版とは仕様が異なるため、両方使う方は注意してください。</p>



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



<p>BYROW関数はLAMBDAと組み合わせる都合上、慣れないうちはエラーに遭遇しがちです。ここではMicrosoft公式ドキュメントに基づいて、発生しうる4種類のエラーと対処法をまとめておきます。</p>



<h3 class="wp-block-heading"><span id="toc16">#SPILL! エラー</span></h3>



<p>#SPILL!エラーは「スピル先にスペースが足りない」ときに発生します。BYROWは結果を縦方向に展開するため、スピル先のセルが空いていないと展開できません。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：スピル先の範囲に既存データが残っている、結合セルがある、またはテーブル内（Ctrl+Tで作成したテーブル）でBYROWを使っている。</li><li><strong>対処</strong>：スピル先のセルをクリアする、結合セルを解除する、テーブル外のセルに数式を入力する。</li></ul>



<p>テーブル機能の中ではスピル関数が動かないケースが多いです。BYROWを使うセルはテーブルの外に置くのが安全です。</p>



<h3 class="wp-block-heading"><span id="toc17">#VALUE! エラー</span></h3>



<p>#VALUE!エラーは、LAMBDA関数の書き方そのものに問題があるときに発生します。公式では「無効なLAMBDA関数またはパラメータ数が不正」と表現されています。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：LAMBDAが構文エラーになっている、または引数の数が合っていない（例：<code>LAMBDA(row, col, SUM(row))</code>のように余計なパラメータを渡している）。</li><li><strong>対処</strong>：LAMBDAの引数を1つ（<code>row</code>のみ）に修正する。そしてLAMBDAの中身が有効な数式になっているか確認する。</li></ul>



<p>BYROW用のLAMBDAは必ず<strong>単一パラメータ</strong>である必要があります。BYCOLから流用する場合、<code>col</code>を<code>row</code>に書き換え忘れて動かなくなるケースが多いので注意しましょう。</p>



<h3 class="wp-block-heading"><span id="toc18">#CALC! エラー</span></h3>



<p>#CALC!エラーはBYROW特有のつまずきポイントで、競合記事ではあまり触れられていません。ここが理解できると一気に使いこなせるようになります。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：LAMBDA関数が提供されていない、またはLAMBDAが単一値以外（配列・複数値）を返している。</li><li><strong>対処</strong>：LAMBDAの戻り値が必ず1つの値になるよう修正する。FILTER・SORT・UNIQUEなど配列を返す関数を直接使わない。</li></ul>



<p>具体例を見てみましょう。</p>



<pre class="wp-block-code"><code># NG：FILTERは配列を返すので#CALC!になる
=BYROW(A1:C3, LAMBDA(row, FILTER(row, row&gt;50)))

# OK：COUNTで単一値にして返す
=BYROW(A1:C3, LAMBDA(row, COUNT(FILTER(row, row&gt;50))))</code></pre>



<p>「LAMBDAは各行について必ず1つの値を返す」というルールを守れば、#CALC!エラーは回避できます。</p>



<h3 class="wp-block-heading"><span id="toc19">#NAME? エラー</span></h3>



<p>#NAME?エラーは、関数名が認識されないときに出ます。BYROWの場合、ほとんどがバージョン起因です。</p>



<ul class="wp-block-list"><li><strong>原因</strong>：Excel 2021やExcel 2019など非対応バージョンで使用している、または関数名のスペルミス（<code>BYROW</code>を<code>BIROW</code>と書いているなど）。</li><li><strong>対処</strong>：Microsoft 365またはExcel 2024を使う。スペルミスがないか確認する。</li></ul>



<p>職場のPCで#NAME?が出る場合は、まずExcelのバージョンを確認してください。「ファイル」→「アカウント」から製品バージョンが確認できます。Microsoft 365以外ならBYROWは使えません。</p>



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



<p>ExcelのBYROW関数について、構文から応用まで一気に解説しました。ポイントを�条書きで整理しておきます。</p>



<ul class="wp-block-list"><li><strong>BYROW関数</strong>は行ごとにLAMBDAを適用し、1列の結果をスピルで返す関数である。</li><li>構文は<code>=BYROW(array, lambda(row))</code>で、第2引数はLAMBDAが必須である。</li><li>対応バージョンはMicrosoft 365・Excel for the web・Excel 2024。Excel 2021以前では#NAME?エラーになる。</li><li>基本はSUM・AVERAGE・MAXを行ごとに適用するパターン。LAMBDA内部の関数を差し替えるだけで応用できる。</li><li>BYROW × IFで条件付き行集計ができる。SUMIFSで書きにくい複雑条件にも対応可能。</li><li>エラーは#SPILL!（スピル先不足）、#VALUE!（LAMBDAの書き方）、#CALC!（配列戻り値）、#NAME?（バージョン非対応）の4種類を押さえておけばOK。</li><li><strong>#CALC!エラー</strong>はLAMBDAが単一値以外を返した場合に発生する。FILTER・SORTなどをそのまま入れるとNG。</li></ul>



<p>BYROWを一度覚えると、従来の「1行ごとにSUMをコピペ」作業からは完全に卒業できます。行数が増えても数式を書き換える必要がなく、可読性もメンテ性もアップします。</p>



<p>次のステップとして、列方向の処理を扱う<a href="https://mashukabu.com/excel-function-howto-use-bycol/">ExcelのBYCOL関数の使い方</a>もセットで読んでおくとよいでしょう。LAMBDAヘルパー関数クラスター全体を体系的に理解できます。LAMBDA自体の書き方が気になった方は、<a href="https://mashukabu.com/excel-function-howto-use-lambda/">ExcelのLAMBDA関数の使い方</a>で基礎から復習しておくと安心です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-byrow/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
