<?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/%e7%b4%af%e8%a8%88/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Sun, 12 Apr 2026 15:36:47 +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のSCAN関数の使い方｜REDUCEとの違いと累計・残高推移への活用法</title>
		<link>https://mashukabu.com/excel-function-howto-use-scan/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-scan/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:47 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LAMBDA関数]]></category>
		<category><![CDATA[SCAN関数]]></category>
		<category><![CDATA[累計]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5914</guid>

					<description><![CDATA[ExcelのSCAN関数の使い方を解説。REDUCEとの違い（最終値のみ vs 全ステップを配列で返す）を表で整理し、累計売上・残高推移などの実務活用例をサンプル付きで紹介します。Microsoft 365 / Excel 2024以降対応。]]></description>
										<content:encoded><![CDATA[
<p>REDUCE関数で累計を求めようとして、「最終値しか返らない」と困ったことはありませんか。</p>



<p>そんなときに使えるのがSCAN関数です。各ステップの計算結果を配列でまとめて返してくれます。</p>



<p>この記事では、SCAN関数の構文とREDUCEとの違い、累計売上・残高推移への活用例を解説します。</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">SCAN関数とは？</a></li><li><a href="#toc2" tabindex="0">SCAN関数の基本構文と引数の意味</a><ol><li><a href="#toc3" tabindex="0">第1引数：初期値</a></li><li><a href="#toc4" tabindex="0">第2引数：配列</a></li><li><a href="#toc5" tabindex="0">第3引数：LAMBDA（アキュムレータ・値・計算式）</a></li></ol></li><li><a href="#toc6" tabindex="0">REDUCEとの違いを比較する</a><ol><li><a href="#toc7" tabindex="0">戻り値の違い（スカラー vs 配列）</a></li><li><a href="#toc8" tabindex="0">どちらを使うべきか？</a></li></ol></li><li><a href="#toc9" tabindex="0">基本例：累計売上を求める</a></li><li><a href="#toc10" tabindex="0">応用例：残高推移を一覧で表示する</a></li><li><a href="#toc11" tabindex="0">よくある間違いと注意点</a><ol><li><a href="#toc12" tabindex="0">初期値を省略するとどうなる？</a></li><li><a href="#toc13" tabindex="0">LAMBDAのパラメータは2つ必要</a></li><li><a href="#toc14" tabindex="0">対応バージョン（Microsoft 365 / Excel 2024以降）</a></li><li><a href="#toc15" tabindex="0">エラー一覧</a></li></ol></li><li><a href="#toc16" tabindex="0">まとめ：SCAN関数はこんな場面で使う</a></li></ol>
    </div>
  </div>

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



<p>SCAN関数（読み方：スキャン）は、配列の各要素を順番に処理して累積値を求める関数です。関数名は「SCAN（走査する）」に由来します。</p>



<p>一言で言うと「REDUCEの中間結果版」です。</p>



<p>REDUCEは処理が終わった後の最終値だけを返します。SCANは各ステップの計算結果をすべて配列で返します。この違いが、2つの関数を使い分けるポイントです。</p>



<p><strong>対応バージョン</strong>: Microsoft 365 / Excel 2024以降</p>



<p>Excel 2021ではSCAN関数は使用できません。お使いのバージョンをご確認ください。</p>



<h2 class="wp-block-heading"><span id="toc2">SCAN関数の基本構文と引数の意味</span></h2>



<pre class="wp-block-code"><code>=SCAN(初期値, 配列, LAMBDA(アキュムレータ, 値, 計算式))</code></pre>



<p>引数は3つです。順番に確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">第1引数：初期値</span></h3>



<p>累積処理の開始値を指定します。</p>



<figure class="wp-block-table"><table><thead><tr><th>用途</th><th>初期値</th></tr></thead><tbody><tr><td>合計・累計</td><td>0</td></tr><tr><td>積（かけ算）</td><td>1</td></tr><tr><td>残高推移</td><td>初期残高（例: 100000）</td></tr><tr><td>文字列連結</td><td>&#8220;&#8221;（空文字）</td></tr></tbody></table></figure>



<p>省略した場合は0として扱われます。</p>



<h3 class="wp-block-heading"><span id="toc4">第2引数：配列</span></h3>



<p>処理対象の配列や範囲を指定します。縦・横どちらの範囲でも指定できます。</p>



<h3 class="wp-block-heading"><span id="toc5">第3引数：LAMBDA（アキュムレータ・値・計算式）</span></h3>



<p>LAMBDAには2つのパラメータを指定します。</p>



<ul class="wp-block-list"><li><strong>アキュムレータ（a）</strong>: 前ステップまでの累積値</li><li><strong>値（v）</strong>: 配列の現在の要素</li></ul>



<p>この2つを使って、次の累積値を返す計算式を書きます。</p>



<h2 class="wp-block-heading"><span id="toc6">REDUCEとの違いを比較する</span></h2>



<p>SCAN関数とREDUCE関数は、構文がほぼ同じです。戻り値の形が違います。</p>



<p>詳しくは<a href="https://mashukabu.com/excel-function-howto-use-reduce/">ExcelのREDUCE関数の使い方｜配列を1つの値に集約する方法</a>をご覧ください。</p>



<h3 class="wp-block-heading"><span id="toc7">戻り値の違い（スカラー vs 配列）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>REDUCE</th><th>SCAN</th></tr></thead><tbody><tr><td>戻り値</td><td>最終値のみ（1セル）</td><td>全ステップの中間値（配列）</td></tr><tr><td>結果サイズ</td><td>単一セル</td><td>入力配列と同じサイズ</td></tr><tr><td>主な用途</td><td>合計・最大値など</td><td>累計・残高推移など</td></tr></tbody></table></figure>



<p>たとえば、B2:B6に<code>{10, 20, 30, 40, 50}</code>が入っているとします。</p>



<p>REDUCEを使うと結果は<code>150</code>の1セルです。SCANを使うと結果は<code>{10, 30, 60, 100, 150}</code>の5セルです。</p>



<p><!-- screenshot: SCAN vs REDUCE の比較結果。B2:B6に10,20,30,40,50。REDUCE結果=150、SCAN結果={10,30,60,100,150} --></p>



<h3 class="wp-block-heading"><span id="toc8">どちらを使うべきか？</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>欲しいもの</th><th>使う関数</th></tr></thead><tbody><tr><td>最終的な合計・集計値</td><td>REDUCE</td></tr><tr><td>各時点の累計・残高推移</td><td>SCAN</td></tr></tbody></table></figure>



<p>最終結果だけほしい場合はREDUCEを、途中経過も一覧にしたい場合はSCANを使ってください。</p>



<h2 class="wp-block-heading"><span id="toc9">基本例：累計売上を求める</span></h2>



<p>B2:B13に月別の売上が入っているとします。C2セルに以下の数式を入力します。</p>



<pre class="wp-block-code"><code>=SCAN(0, B2:B13, LAMBDA(a, v, a+v))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>初期値</td><td><code>0</code></td><td>累計の開始値（1月末累計 = 1月売上）</td></tr><tr><td>配列</td><td><code>B2:B13</code></td><td>月別売上の範囲</td></tr><tr><td>アキュムレータ <code>a</code></td><td>&#8212;</td><td>前月までの累計</td></tr><tr><td>値 <code>v</code></td><td>&#8212;</td><td>現在月の売上</td></tr><tr><td>計算式</td><td><code>a + v</code></td><td>今月末累計 = 前月累計 + 今月売上</td></tr></tbody></table></figure>



<p>結果はC2:C13に自動展開（スピル）されます。</p>



<p><!-- screenshot: 月別売上の累計。A列:月、B列:売上、C列:SCAN結果の累計売上 --></p>



<figure class="wp-block-table"><table><thead><tr><th>月</th><th>売上</th><th>累計売上</th></tr></thead><tbody><tr><td>1月</td><td>100,000</td><td>100,000</td></tr><tr><td>2月</td><td>80,000</td><td>180,000</td></tr><tr><td>3月</td><td>120,000</td><td>300,000</td></tr></tbody></table></figure>



<p>各月末時点の累計がひと目でわかる表になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><strong>スピルエラーに注意</strong>: 展開先（C2:C13）に別のデータが入っていると<code>#SPILL!</code>エラーになります。展開先を空にしておいてください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc10">応用例：残高推移を一覧で表示する</span></h2>



<p>初期残高を100,000円、入出金データをC2:C10に入力しているとします。D2セルに以下の数式を入力します。</p>



<pre class="wp-block-code"><code>=SCAN(100000, C2:C10, LAMBDA(残高, 取引, 残高+取引))</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>値</th><th>意味</th></tr></thead><tbody><tr><td>初期値</td><td><code>100000</code></td><td>初期残高（円）</td></tr><tr><td>配列</td><td><code>C2:C10</code></td><td>入出金範囲</td></tr><tr><td>アキュムレータ <code>残高</code></td><td>&#8212;</td><td>前時点の残高</td></tr><tr><td>値 <code>取引</code></td><td>&#8212;</td><td>現在の入出金額</td></tr><tr><td>計算式</td><td><code>残高 + 取引</code></td><td>取引後の残高</td></tr></tbody></table></figure>



<p><!-- screenshot: 残高推移の一覧。A列:日付、B列:摘要、C列:入出金、D列:SCAN結果の残高 --></p>



<figure class="wp-block-table"><table><thead><tr><th>日付</th><th>入出金</th><th>残高</th></tr></thead><tbody><tr><td>4/1</td><td>+50,000</td><td>150,000</td></tr><tr><td>4/3</td><td>-30,000</td><td>120,000</td></tr><tr><td>4/5</td><td>+20,000</td><td>140,000</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p><strong>入力規則</strong>: 入金はプラス値、出金はマイナス値で入力してください。</p></blockquote>



<p>LAMBDAのパラメータに<code>残高</code>・<code>取引</code>のような日本語名を使うと、数式の意図が読み取りやすくなります。</p>



<h2 class="wp-block-heading"><span id="toc11">よくある間違いと注意点</span></h2>



<h3 class="wp-block-heading"><span id="toc12">初期値を省略するとどうなる？</span></h3>



<p>初期値を省略すると0が使われます。累計や合計では問題ありません。</p>



<p>積（かけ算）の場合は要注意です。初期値が0だと最初のステップの結果が0になります。そのため以降の計算もすべて0になります。積を計算するときは必ず<code>1</code>を初期値に指定してください。</p>



<h3 class="wp-block-heading"><span id="toc13">LAMBDAのパラメータは2つ必要</span></h3>



<p>LAMBDAに指定するパラメータが1つや3つ以上だと<code>#VALUE!</code>エラーになります。「アキュムレータ」と「値」の2つセットで指定してください。</p>



<pre class="wp-block-code"><code>=SCAN(0, A1:A5, LAMBDA(a, v, a+v))  ' 正しい（パラメータ2つ）
=SCAN(0, A1:A5, LAMBDA(v, v+1))     ' エラー（パラメータ1つ）</code></pre>



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



<figure class="wp-block-table"><table><thead><tr><th>バージョン</th><th>対応</th></tr></thead><tbody><tr><td>Microsoft 365</td><td>○</td></tr><tr><td>Excel 2024</td><td>○</td></tr><tr><td>Excel 2021</td><td>x</td></tr><tr><td>Excel 2019以前</td><td>x</td></tr></tbody></table></figure>



<p>Excel 2021ではLAMBDA関数自体は使えます。ただしSCANなどのLAMBDAヘルパー関数は対応していません。</p>



<h3 class="wp-block-heading"><span id="toc15">エラー一覧</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>状況</th><th>エラー</th></tr></thead><tbody><tr><td>LAMBDAのパラメータ数が2以外</td><td><code>#VALUE!</code></td></tr><tr><td>不正なLAMBDAを指定した場合</td><td><code>#VALUE!</code></td></tr><tr><td>展開先に既存データがある場合</td><td><code>#SPILL!</code></td></tr><tr><td>空の配列を渡した場合</td><td><code>#CALC!</code></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc16">まとめ：SCAN関数はこんな場面で使う</span></h2>



<p>SCAN関数は配列を累積処理して各ステップの結果を配列で返す関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>場面</th><th>使う関数</th></tr></thead><tbody><tr><td>最終的な合計だけほしい</td><td>REDUCE</td></tr><tr><td>各時点の累計・残高推移がほしい</td><td>SCAN</td></tr><tr><td>各要素を変換して同サイズで返したい</td><td>MAP</td></tr><tr><td>行ごとに集約したい</td><td>BYROW</td></tr><tr><td>列ごとに集約したい</td><td>BYCOL</td></tr></tbody></table></figure>



<p>REDUCE・MAP・BYROW・BYCOLと組み合わせて使うことで、複雑な配列処理も実現できます。</p>



<p><strong>関連記事</strong>:</p>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数の使い方｜配列を1つの値に集約する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数の使い方｜BYROWとの違いと使い分け</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数の使い方｜行ごとに関数を適用</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数の使い方｜列ごとに関数適用</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-scan/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
