<?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/%e5%8a%a0%e9%87%8d%e5%b9%b3%e5%9d%87/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Tue, 11 Aug 2026 09:05:39 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</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>スプレッドシートのSUMPRODUCT関数の使い方｜配列の積の和</title>
		<link>https://mashukabu.com/spreadsheet-sumproduct-function/</link>
					<comments>https://mashukabu.com/spreadsheet-sumproduct-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Wed, 18 Mar 2026 12:28:37 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[SUMPRODUCT]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[加重平均]]></category>
		<category><![CDATA[掛け算の合計]]></category>
		<category><![CDATA[条件付き集計]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4024</guid>

					<description><![CDATA[GoogleスプレッドシートのSUMPRODUCT関数の使い方を初心者向けに解説。単価×数量の合計、条件付き集計、加重平均の計算方法から、SUMIFSとの使い分け、よくあるエラーの対処法まで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「単価と数量をいちいち掛け算して、さらにSUM関数で合計するのが面倒&#8230;」そんな経験、ありませんか？</p>



<p class="wp-block-paragraph">作業列が増えるとシートがゴチャゴチャしますし、行が増えたときの範囲修正も手間ですよね。</p>



<p class="wp-block-paragraph">そんなときに使えるのがSUMPRODUCT関数です。掛け算と合計をまとめて1つの数式で処理できます。</p>



<p class="wp-block-paragraph">この記事では基本の使い方から条件付き集計・加重平均の計算まで紹介します。</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">SUMPRODUCT関数とは？</a></li><li><a href="#toc2" tabindex="0">SUMPRODUCT関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc5" tabindex="0">SUMPRODUCT関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">単価×数量の合計を求める</a></li><li><a href="#toc7" tabindex="0">配列が1つだけの場合</a></li></ol></li><li><a href="#toc8" tabindex="0">SUMPRODUCT関数で条件付き集計する方法</a><ol><li><a href="#toc9" tabindex="0">1つの条件で集計する</a></li><li><a href="#toc10" tabindex="0">複数条件（AND条件）で集計する</a></li><li><a href="#toc11" tabindex="0">OR条件で集計する</a></li></ol></li><li><a href="#toc12" tabindex="0">SUMPRODUCT関数の実務活用パターン</a><ol><li><a href="#toc13" tabindex="0">パターン1: 見積書の合計金額を一発計算</a></li><li><a href="#toc14" tabindex="0">パターン2: 加重平均の計算</a></li><li><a href="#toc15" tabindex="0">パターン3: 複数条件のOR集計</a></li><li><a href="#toc16" tabindex="0">パターン4: 特定条件の件数カウント</a></li></ol></li><li><a href="#toc17" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc18" tabindex="0">#VALUE!エラーが出る場合</a></li><li><a href="#toc19" tabindex="0">結果が0になる場合</a></li><li><a href="#toc20" tabindex="0">条件付き集計の結果がおかしい場合</a></li></ol></li><li><a href="#toc21" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc22" tabindex="0">SUM→SUMIF→SUMIFS→SUMPRODUCTの使い分け</a></li><li><a href="#toc23" tabindex="0">SUMIFS関数とSUMPRODUCT関数の比較</a></li><li><a href="#toc24" tabindex="0">Excelとの違い</a></li></ol></li><li><a href="#toc25" tabindex="0">まとめ</a><ol><li><a href="#toc26" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p class="wp-block-paragraph">SUMPRODUCT関数（読み方: サムプロダクト関数）は、<strong>複数の配列の対応する要素を掛け算し、その合計を返す関数</strong>です。</p>



<p class="wp-block-paragraph">名前は「SUM（合計）」と「PRODUCT（積・掛け算）」の組み合わせです。文字どおり「掛け算の合計」を求めます。</p>



<p class="wp-block-paragraph">たとえば商品の「単価」と「数量」が別々の列にあるとします。通常なら作業列で「単価 x 数量」を1行ずつ計算しますよね。さらに<a href="https://mashukabu.com/spreadsheet-sum-function/">SUM関数</a>で合計する必要があります。SUMPRODUCT関数なら1つの数式で済みます。</p>



<p class="wp-block-paragraph">SUMPRODUCT関数にできることをまとめると、次のとおりです。</p>



<ul class="wp-block-list"><li>複数の範囲を要素ごとに掛け算して合計する</li><li>条件に合うデータだけを集計する（条件付き集計）</li><li>複数の条件をAND・ORで組み合わせて集計する</li><li>加重平均（重み付き平均）を計算する</li><li>作業列なしでスッキリ計算できる</li></ul>



<p class="wp-block-paragraph">「掛けてから合計」を1つの数式で実行する関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SUMPRODUCT関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">SUMPRODUCT関数の書き方（構文と引数）</span></h2>



<h3 class="wp-block-heading"><span id="toc3">基本構文</span></h3>



<pre class="wp-block-code"><code>=SUMPRODUCT(配列1, [配列2], [配列3], ...)</code></pre>



<p class="wp-block-paragraph">カッコの中に、計算したい配列やセル範囲を指定します。</p>



<h3 class="wp-block-heading"><span id="toc4">引数の説明</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列1</td><td>必須</td><td>計算の対象となる最初の配列またはセル範囲</td></tr><tr><td>配列2, &#8230;</td><td>任意</td><td>掛け合わせたい追加の配列やセル範囲（最大30個）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数が1つだけの場合は範囲の合計を返します。SUM関数と同じ動作です。</p>



<p class="wp-block-paragraph">引数を2つ以上指定すると、対応する位置の要素同士を掛けてから合計します。</p>



<p class="wp-block-paragraph">ここで大事なポイントがひとつ。<strong>すべての配列は同じサイズ（行数・列数）にする必要があります</strong>。サイズが違うと <code>#VALUE!</code> エラーになります。</p>



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



<h3 class="wp-block-heading"><span id="toc6">単価×数量の合計を求める</span></h3>



<p class="wp-block-paragraph">実際にSUMPRODUCT関数を使ってみましょう。よくある「単価 x 数量」の合計を求める例です。</p>



<p class="wp-block-paragraph">次のような商品リストがあるとします。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/spreadsheet-sumif-function_01_data_sample-table.png" alt="01 data sample table" /></figure>



<p class="wp-block-paragraph">全商品の売上合計を出すには、次の数式を入力します。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/02_formula_sumproduct-basic.png" alt="02 formula sumproduct basic" /></figure>



<p class="wp-block-paragraph">この数式が内部で行っている計算はこうなります。</p>



<pre class="wp-block-code"><code>(200×50) + (150×80) + (100×30) + (300×20)
= 10000 + 12000 + 3000 + 6000
= 31000</code></pre>



<p class="wp-block-paragraph">結果は <strong>31,000</strong> です。</p>



<p class="wp-block-paragraph">!<a href="https://mashukabu.com/_images/spreadsheet-sumproduct-function/03_result_sumproduct-basic.png/">_images/spreadsheet-sumproduct-function/03_result_sumproduct-basic.png</a></p>



<p class="wp-block-paragraph">SUMPRODUCT関数を使わない場合を考えてみましょう。D列に <code>=B2*C2</code> と作業列を作り、さらに <code>=SUM(D2:D5)</code> で合計する2ステップが必要です。SUMPRODUCT関数なら作業列なしで済みます。</p>



<h3 class="wp-block-heading"><span id="toc7">配列が1つだけの場合</span></h3>



<p class="wp-block-paragraph">引数を1つだけ指定するとSUM関数と同じ動作をします。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B5)</code></pre>



<p class="wp-block-paragraph">この場合は <code>200+150+100+300 = 750</code> です。あまり使う場面はありませんが、仕組みとして覚えておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc8">SUMPRODUCT関数で条件付き集計する方法</span></h2>



<p class="wp-block-paragraph">SUMPRODUCT関数の真価が発揮されるのは条件付き集計です。<a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a>では対応しにくいOR条件にも使えます。</p>



<h3 class="wp-block-heading"><span id="toc9">1つの条件で集計する</span></h3>



<p class="wp-block-paragraph">商品リストにカテゴリ列を追加したデータで考えてみます。</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>商品名</td><td>カテゴリ</td><td>単価</td><td>数量</td></tr><tr><td>2行目</td><td>ノート</td><td>文房具</td><td>200</td><td>50</td></tr><tr><td>3行目</td><td>ペン</td><td>文房具</td><td>150</td><td>80</td></tr><tr><td>4行目</td><td>マウス</td><td>PC周辺機器</td><td>2000</td><td>10</td></tr><tr><td>5行目</td><td>ファイル</td><td>文房具</td><td>300</td><td>20</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「文房具」だけの売上合計を出す数式はこちらです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/04_formula_sumproduct-condition.png" alt="04 formula sumproduct condition" /></figure>



<p class="wp-block-paragraph">ちょっと不思議な書き方に見えますよね。ポイントは <code>(B2:B5="文房具")</code> の部分です。</p>



<p class="wp-block-paragraph">この条件式は各セルが「文房具」と一致するかを判定します。一致すれば <code>TRUE(1)</code>、不一致なら <code>FALSE(0)</code> です。</p>



<p class="wp-block-paragraph">掛け算に含めることで、条件に合わない行は自動的に0になります。</p>



<pre class="wp-block-code"><code>(TRUE×200×50) + (TRUE×150×80) + (FALSE×2000×10) + (TRUE×300×20)
= (1×200×50) + (1×150×80) + (0×2000×10) + (1×300×20)
= 10000 + 12000 + 0 + 6000
= 28000</code></pre>



<p class="wp-block-paragraph">結果は <strong>28,000</strong> です。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/03/05_result_sumproduct-condition.png" alt="05 result sumproduct condition" /></figure>



<h3 class="wp-block-heading"><span id="toc10">複数条件（AND条件）で集計する</span></h3>



<p class="wp-block-paragraph">条件を2つ以上組み合わせることもできます。「文房具」で、かつ「単価が200以上」の売上合計を出す場合です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B5=&quot;文房具&quot;)*(C2:C5&gt;=200)*C2:C5*D2:D5)</code></pre>



<p class="wp-block-paragraph">条件部分をカッコで囲んで <code><em></code> でつなぐだけです。<code></em></code> は「AND（かつ）」の意味になります。</p>



<p class="wp-block-paragraph">条件を増やしたいときも同じパターンで追加できますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">OR条件で集計する</span></h3>



<p class="wp-block-paragraph">「文房具<strong>または</strong>PC周辺機器」のようなOR条件にも対応できます。ここがSUMPRODUCT関数の強みです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B5=&quot;文房具&quot;)+(B2:B5=&quot;PC周辺機器&quot;))*C2:C5*D2:D5)</code></pre>



<p class="wp-block-paragraph">条件を <code>+</code> でつなぐとOR条件になります。</p>



<ul class="wp-block-list"><li><code>*</code>（掛け算） = AND条件（すべて満たす）</li><li><code>+</code>（足し算） = OR条件（いずれか満たす）</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a>でOR条件を書くと、関数を何個も足し算する必要があります。SUMPRODUCT関数なら1つの数式にまとまります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>OR条件で <code>+</code> を使うと、両方の条件に一致する行は2重カウントされます。重複を防ぎたい場合は <code>((条件1)+(条件2)>0)</code> のように <code>>0</code> を付けましょう。</p></blockquote>



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



<p class="wp-block-paragraph">基本がわかったところで、仕事でよく使うパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン1: 見積書の合計金額を一発計算</span></h3>



<p class="wp-block-paragraph">見積書で「単価 x 数量」の合計を出すパターンです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(C2:C20, D2:D20)</code></pre>



<p class="wp-block-paragraph">C列に単価、D列に数量が入っている見積書ならこれだけです。範囲を広めにとっておけば、行を追加しても修正不要です。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン2: 加重平均の計算</span></h3>



<p class="wp-block-paragraph">テストの点数に重み（配点）を付けて平均を出すパターンです。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>A列（科目）</th><th>B列（点数）</th><th>C列（配点比率）</th></tr></thead><tbody><tr><td>2行目</td><td>国語</td><td>80</td><td>1</td></tr><tr><td>3行目</td><td>数学</td><td>70</td><td>2</td></tr><tr><td>4行目</td><td>英語</td><td>90</td><td>1.5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">配点を加味した加重平均を求めるにはこう書きます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B4, C2:C4) / SUM(C2:C4)</code></pre>



<p class="wp-block-paragraph">計算の中身はこうなります。</p>



<pre class="wp-block-code"><code>(80×1 + 70×2 + 90×1.5) / (1 + 2 + 1.5)
= (80 + 140 + 135) / 4.5
= 355 / 4.5
= 78.9（小数点以下四捨五入）</code></pre>



<p class="wp-block-paragraph">単純な平均 <code>(80+70+90)/3 = 80</code> とは異なる結果です。配点の大きい数学（70点）の影響で、加重平均のほうが低くなっています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>加重平均は成績評価だけでなく、仕入れ先ごとの加重平均単価の計算にも使えます。仕入量の多い先の単価をより強く反映できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc15">パターン3: 複数条件のOR集計</span></h3>



<p class="wp-block-paragraph">「営業部<strong>または</strong>総務部」の売上合計を求めるパターンです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B100=&quot;営業部&quot;)+(B2:B100=&quot;総務部&quot;)&gt;0)*E2:E100)</code></pre>



<p class="wp-block-paragraph">条件が3つ以上でも同じ書き方で拡張できます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B100=&quot;営業部&quot;)+(B2:B100=&quot;総務部&quot;)+(B2:B100=&quot;企画部&quot;)&gt;0)*E2:E100)</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a>の足し算で書くと3つの関数が並んで長くなります。SUMPRODUCT関数なら1つの数式にまとまりますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン4: 特定条件の件数カウント</span></h3>



<p class="wp-block-paragraph">SUMPRODUCT関数は条件に合うデータの件数を数えることもできます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B100=&quot;営業部&quot;)*(D2:D100=&quot;プランA&quot;))</code></pre>



<p class="wp-block-paragraph">条件式の結果（TRUE=1/FALSE=0）を掛け算するだけです。合計範囲を指定しないため、1の合計=件数になります。</p>



<p class="wp-block-paragraph">COUNTIFS関数と同じ結果が得られますが、OR条件にも対応できるのが利点です。</p>



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



<p class="wp-block-paragraph">SUMPRODUCT関数で困ったときの原因と対策をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー/症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE!</td><td>配列のサイズ（行数・列数）が不一致</td><td>すべての配列を同じサイズに揃える</td></tr><tr><td>結果が0</td><td>セルが「数値に見える文字列」</td><td>VALUE関数で数値に変換、またはデータクリーンアップを実行</td></tr><tr><td>結果が0</td><td>全角・半角の不一致</td><td>ASC関数（半角化）またはJIS関数（全角化）で統一</td></tr><tr><td>結果がおかしい</td><td>条件部分のカッコ忘れ</td><td>条件式は必ずカッコで囲む</td></tr><tr><td>結果がおかしい</td><td>OR条件で2重カウント</td><td><code>>0</code> を付けて重複を防ぐ</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc18">#VALUE!エラーが出る場合</span></h3>



<p class="wp-block-paragraph">最も多い原因は配列のサイズ不一致です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A1:A5, B1:B3)</code></pre>



<p class="wp-block-paragraph">この数式はA列が5行、B列が3行で行数が合いません。すべての配列を同じ範囲に揃えてください。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A1:A5, B1:B5)</code></pre>



<p class="wp-block-paragraph">データを追加した後は特にズレやすいので確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">結果が0になる場合</span></h3>



<p class="wp-block-paragraph">数値が入っているのに結果が0になるときは「文字列型の数値」が原因です。CSVやWebからコピーしたデータでよく起きます。</p>



<p class="wp-block-paragraph">セルの表示が左揃えなら文字列型のサインです。次の方法で修正できます。</p>



<ol class="wp-block-list"><li>対象セルを選択 → メニュー「データ」→「データクリーンアップ」で一括変換</li><li>数式内でVALUE関数を使って変換</li></ol>



<pre class="wp-block-code"><code>=SUMPRODUCT(VALUE(B2:B5)*C2:C5)</code></pre>



<h3 class="wp-block-heading"><span id="toc20">条件付き集計の結果がおかしい場合</span></h3>



<p class="wp-block-paragraph">条件式のカッコ忘れが原因のことが多いです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B5=&quot;文房具&quot;*C2:C5*D2:D5)</code></pre>



<p class="wp-block-paragraph">上の数式ではカッコがないため、計算順序がおかしくなります。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B5=&quot;文房具&quot;)*C2:C5*D2:D5)</code></pre>



<p class="wp-block-paragraph">条件式は必ず <code>()</code> で囲むのがルールです。</p>



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



<p class="wp-block-paragraph">SUMPRODUCT関数と似た機能を持つ関数を比較します。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数名</th><th>用途</th><th>条件の扱い</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/spreadsheet-sum-function/">SUM</a></td><td>無条件で合計</td><td>条件なし</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-sumif-function/">SUMIF</a></td><td>1条件で合計</td><td>1つだけ</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS</a></td><td>複数条件で合計</td><td>AND（すべて満たす）</td></tr><tr><td>SUMPRODUCT</td><td>配列の積を合計</td><td>AND・OR両対応</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc22">SUM→SUMIF→SUMIFS→SUMPRODUCTの使い分け</span></h3>



<p class="wp-block-paragraph">集計関数は段階的に使い分けるのがおすすめです。</p>



<ol class="wp-block-list"><li><strong>条件なしの合計</strong> → <a href="https://mashukabu.com/spreadsheet-sum-function/">SUM関数</a></li><li><strong>条件が1つ</strong> → <a href="https://mashukabu.com/spreadsheet-sumif-function/">SUMIF関数</a></li><li><strong>条件が2つ以上（AND）</strong> → <a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a></li><li><strong>OR条件や掛け算を含む集計</strong> → SUMPRODUCT関数</li></ol>



<p class="wp-block-paragraph">条件の複雑さに合わせてステップアップするイメージです。シンプルな集計にSUMPRODUCT関数を使う必要はありません。</p>



<h3 class="wp-block-heading"><span id="toc23">SUMIFS関数とSUMPRODUCT関数の比較</span></h3>



<p class="wp-block-paragraph">どちらも複数条件で合計できます。使い分けのポイントを整理しましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SUMIFS</th><th>SUMPRODUCT</th></tr></thead><tbody><tr><td>AND条件</td><td>得意（標準機能）</td><td>得意（条件を<code>*</code>で連結）</td></tr><tr><td>OR条件</td><td>苦手（足し算が必要）</td><td>得意（条件を<code>+</code>で連結）</td></tr><tr><td>掛け算を含む集計</td><td>できない</td><td>得意（配列の積の和）</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>慣れが必要</td></tr><tr><td>処理速度</td><td>速い</td><td>やや遅い</td></tr><tr><td>ワイルドカード</td><td>使える</td><td>使えない</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">AND条件だけなら<a href="https://mashukabu.com/spreadsheet-sumifs-function/">SUMIFS関数</a>がシンプルで高速です。OR条件や掛け算を含む集計にはSUMPRODUCT関数を選びましょう。</p>



<h3 class="wp-block-heading"><span id="toc24">Excelとの違い</span></h3>



<p class="wp-block-paragraph">SUMPRODUCT関数の動作はExcelとほぼ同じです。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>Googleスプレッドシート</th><th>Excel</th></tr></thead><tbody><tr><td>基本動作</td><td>同じ</td><td>同じ</td></tr><tr><td>引数の上限</td><td>最大30個</td><td>最大255個</td></tr><tr><td>配列サイズ不一致</td><td>#VALUE!</td><td>#VALUE!</td></tr><tr><td>条件付き集計の書き方</td><td>同じ</td><td>同じ</td></tr><tr><td>空白セルの扱い</td><td>0として処理</td><td>0として処理</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数の上限に違いはありますが、実務で30個を超えることはまずありません。ExcelのSUMPRODUCT関数と同じ書き方で使えますよ。</p>



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



<p class="wp-block-paragraph">SUMPRODUCT関数のポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>SUMPRODUCT関数は「掛け算してから合計」を1つの数式で実行できる</li><li>条件付き集計は <code>(条件式)*集計範囲</code> の形で書く</li><li>AND条件は <code>*</code>、OR条件は <code>+</code> でつなぐ</li><li>加重平均は <code>=SUMPRODUCT(値, 重み)/SUM(重み)</code></li><li>配列のサイズは必ず揃える（揃っていないと#VALUE!エラー）</li><li>シンプルな条件にはSUMIFS、OR条件や掛け算集計にはSUMPRODUCT</li></ul>



<p class="wp-block-paragraph">まずは <code>=SUMPRODUCT(単価範囲, 数量範囲)</code> の基本形から試してみてください。作業列が不要になりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-sum-function/">スプレッドシートのSUM関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sumif-function/">スプレッドシートのSUMIF関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sumifs-function/">スプレッドシートのSUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-product-function/">スプレッドシートのPRODUCT関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-sumproduct-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AVERAGE関数の使い方｜0除外・フィルター平均も解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-average/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-average/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 24 Mar 2022 14:59:45 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[AVERAGEIF]]></category>
		<category><![CDATA[AVERAGE関数]]></category>
		<category><![CDATA[SUBTOTAL]]></category>
		<category><![CDATA[加重平均]]></category>
		<category><![CDATA[平均]]></category>
		<category><![CDATA[集計]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1425</guid>

					<description><![CDATA[ExcelのAVERAGE関数の使い方を基本から実務レベルまで解説。「フィルター後の平均がおかしい」にはSUBTOTAL、「0が混じる」にはAVERAGEIF、「加重平均」にはSUMPRODUCTで解決できます。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「Excelで平均を出したいだけなのに、なぜか結果がおかしい」&#8230;&#8230;そんな経験はありませんか。</p>



<p class="wp-block-paragraph">0が混じって平均が低く出たり、フィルターをかけたのに全件で計算されたり。AVERAGE関数は基本的な関数ですが、意外な落とし穴が多いんです。</p>



<p class="wp-block-paragraph">この記事では、ExcelのAVERAGE関数の使い方を基本から解説します。「0除外」「フィルター平均」「加重平均」まで、トラブル別にまるごと紹介しますよ。</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">AVERAGE関数とは？書き方と基本の使い方</a><ol><li><a href="#toc2" tabindex="0">基本構文と引数の意味</a></li><li><a href="#toc3" tabindex="0">複数範囲・離れたセルを平均する</a></li><li><a href="#toc4" tabindex="0">空白・文字列・論理値はどう扱われる？</a></li></ol></li><li><a href="#toc5" tabindex="0">【落とし穴1】0が混じると平均が下がる問題の解決策</a><ol><li><a href="#toc6" tabindex="0">AVERAGEIFで0を除外して平均する</a></li><li><a href="#toc7" tabindex="0">複数条件で除外したい場合はAVERAGEIFSを使う</a></li></ol></li><li><a href="#toc8" tabindex="0">【落とし穴2】フィルター後の平均がおかしいときの対処法</a><ol><li><a href="#toc9" tabindex="0">なぜAVERAGEはフィルターを無視するのか</a></li><li><a href="#toc10" tabindex="0">SUBTOTAL(1,範囲)で可視セルだけ平均する</a></li><li><a href="#toc11" tabindex="0">AGGREGATEでエラー無視＋手動非表示行も対応</a></li></ol></li><li><a href="#toc12" tabindex="0">【応用】加重平均をSUMPRODUCTで実現する</a><ol><li><a href="#toc13" tabindex="0">加重平均とは？単純平均との違い</a></li><li><a href="#toc14" tabindex="0">SUMPRODUCT÷SUMで加重平均を計算する式</a></li></ol></li><li><a href="#toc15" tabindex="0">文字列として格納された数値への対処</a><ol><li><a href="#toc16" tabindex="0">「数値として保存されていない数値」が原因で平均がズレる</a></li><li><a href="#toc17" tabindex="0">VALUE関数または一括変換で正しい数値に直す</a></li></ol></li><li><a href="#toc18" tabindex="0">AVERAGEIF・AVERAGEIFS・AVERAGEA・DAVERAGEとの使い分け</a><ol><li><a href="#toc19" tabindex="0">目的別・関数選択チャート</a></li></ol></li><li><a href="#toc20" tabindex="0">エラー（#DIV/0!）の原因と回避方法</a><ol><li><a href="#toc21" tabindex="0">IFERRORで空白返しにする</a></li></ol></li><li><a href="#toc22" tabindex="0">まとめ：AVERAGE関数トラブル別 解決早見表</a><ol><li><a href="#toc23" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">AVERAGE関数とは？書き方と基本の使い方</span></h2>



<p class="wp-block-paragraph">AVERAGE関数（読み方: アベレージ）は、<strong>指定した数値の算術平均を返す関数</strong>です。英語の「Average（平均）」がそのまま関数名になっています。</p>



<p class="wp-block-paragraph">Excelの集計でもっとも使用頻度が高い関数の一つです。売上の月平均やテストの平均点など、あらゆる場面で活躍します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong></p><p>AVERAGE関数はExcel 2007以降すべてのバージョンで使えます。Microsoft 365やGoogleスプレッドシートにも対応しています。</p></blockquote>



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



<pre class="wp-block-code"><code>=AVERAGE(数値1, [数値2], ...)</code></pre>



<p class="wp-block-paragraph">カッコの中に平均したい数値やセル範囲を指定します。引数はカンマ区切りで最大255個まで追加できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>数値1</td><td>必須</td><td>平均したい数値・セル参照・セル範囲</td></tr><tr><td>数値2, &#8230;</td><td>任意</td><td>追加の数値やセル範囲（最大255個）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数に指定できるパターンは3つあります。</p>



<ul class="wp-block-list"><li><strong>数値を直接入力</strong>: <code>=AVERAGE(80, 70, 90)</code> → 80</li><li><strong>セル参照</strong>: <code>=AVERAGE(A1, B1, C1)</code></li><li><strong>セル範囲</strong>: <code>=AVERAGE(B2:B6)</code></li></ul>



<p class="wp-block-paragraph">一番よく使うのはセル範囲の指定です。「この列の平均を出して」とお願いする感覚ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">複数範囲・離れたセルを平均する</span></h3>



<p class="wp-block-paragraph">1月と3月の売上だけ平均したい、といった場面もありますよね。離れた範囲はカンマで区切って指定できます。</p>



<pre class="wp-block-code"><code>=AVERAGE(B2:B31, D2:D31)</code></pre>



<p class="wp-block-paragraph">この式はB2:B31とD2:D31のすべての数値をまとめて平均します。間の列は無視されるので、必要な月だけを選べます。</p>



<p class="wp-block-paragraph">個別のセルを混ぜることもできます。</p>



<pre class="wp-block-code"><code>=AVERAGE(B2:B10, E5, G3)</code></pre>



<p class="wp-block-paragraph">範囲と個別セルを自由に組み合わせられるのが便利なポイントです。</p>



<h3 class="wp-block-heading"><span id="toc4">空白・文字列・論理値はどう扱われる？</span></h3>



<p class="wp-block-paragraph">AVERAGE関数はデータの種類によって動きが変わります。ここを知っておくと、計算結果のズレを防げますよ。</p>



<p class="wp-block-paragraph"><strong>セル範囲で指定した場合</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>データの種類</th><th>扱い</th></tr></thead><tbody><tr><td>数値</td><td>計算に含まれる</td></tr><tr><td>空白セル</td><td>無視される（分母にも入らない）</td></tr><tr><td>文字列</td><td>無視される</td></tr><tr><td>論理値（TRUE/FALSE）</td><td>無視される</td></tr><tr><td>0</td><td><strong>計算に含まれる</strong>（分母にカウント）</td></tr><tr><td>エラー値</td><td>結果がエラーになる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>引数に直接入力した場合</strong></p>



<figure class="wp-block-table"><table><thead><tr><th>データの種類</th><th>扱い</th></tr></thead><tbody><tr><td>TRUE</td><td>1として計算される</td></tr><tr><td>FALSE</td><td>0として計算される</td></tr><tr><td>文字列</td><td>#VALUE! エラー</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">セル範囲指定と直接入力で、論理値の扱いが変わる点に注意してください。範囲指定では無視されますが、直接入力ではTRUE=1、FALSE=0として計算されます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>空白と0の違いがカギ</strong></p><p>空白セルは「データなし」として分母に入りません。0は「0という値がある」として分母に入ります。この違いが平均に大きく影響します。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc5">【落とし穴1】0が混じると平均が下がる問題の解決策</span></h2>



<p class="wp-block-paragraph">AVERAGE関数でよくあるトラブルの筆頭がこれです。「まだデータがない行に0が入っていて、平均が実態より低くなる」パターンですね。</p>



<p class="wp-block-paragraph">たとえば、7人分のテスト点数が以下のように並んでいるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル</th><th>値</th></tr></thead><tbody><tr><td>B2</td><td>80</td></tr><tr><td>B3</td><td>0</td></tr><tr><td>B4</td><td>70</td></tr><tr><td>B5</td><td>90</td></tr><tr><td>B6</td><td>0</td></tr><tr><td>B7</td><td>60</td></tr><tr><td>B8</td><td>50</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><code>=AVERAGE(B2:B8)</code> の結果は <strong>50</strong> です（合計350 / 7個）。0が2つ含まれるため、実際に点数がある5人の平均70より大幅に低くなります。</p>



<h3 class="wp-block-heading"><span id="toc6">AVERAGEIFで0を除外して平均する</span></h3>



<p class="wp-block-paragraph">0を除外するには、<a href="https://mashukabu.com/excel-function-howto-use-averageif/">AVERAGEIF関数</a>を使います。</p>



<pre class="wp-block-code"><code>=AVERAGEIF(B2:B8, &quot;&lt;&gt;0&quot;)</code></pre>



<p class="wp-block-paragraph">「B2:B8のうち0以外のセルだけで平均する」という意味です。結果は <strong>70</strong> になります（合計350 / 5個）。</p>



<p class="wp-block-paragraph">条件の <code>"<>0"</code> は「0と等しくない」を表す比較演算子です。これだけで0を除外できるので、覚えておくと便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">複数条件で除外したい場合はAVERAGEIFSを使う</span></h3>



<p class="wp-block-paragraph">「0を除外して、かつ特定の部署だけ」のように条件が2つ以上あるときは、<a href="https://mashukabu.com/excel-function-howto-use-averageifs/">AVERAGEIFS関数</a>の出番です。</p>



<pre class="wp-block-code"><code>=AVERAGEIFS(C2:C20, C2:C20, &quot;&lt;&gt;0&quot;, A2:A20, &quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph">この式は「C列が0でない、かつA列が営業部」の行だけで平均を計算します。条件をカンマで追加していくだけなので、書き方もシンプルです。</p>



<h2 class="wp-block-heading"><span id="toc8">【落とし穴2】フィルター後の平均がおかしいときの対処法</span></h2>



<p class="wp-block-paragraph">フィルターで絞り込んだのに、AVERAGE関数の結果が変わらない。これも実務でよくあるトラブルです。</p>



<h3 class="wp-block-heading"><span id="toc9">なぜAVERAGEはフィルターを無視するのか</span></h3>



<p class="wp-block-paragraph">AVERAGE関数は<strong>非表示行を含めてすべてのセルを計算対象にします</strong>。フィルターで行を隠しても、裏側では全データが計算されています。</p>



<p class="wp-block-paragraph">これはAVERAGE関数の仕様です。フィルター対応の平均には、別の関数を使う必要があります。</p>



<h3 class="wp-block-heading"><span id="toc10">SUBTOTAL(1,範囲)で可視セルだけ平均する</span></h3>



<p class="wp-block-paragraph">フィルターに対応した平均を出すなら、<a href="https://mashukabu.com/excel-function-howto-use-subtotal/">SUBTOTAL関数</a>を使いましょう。</p>



<pre class="wp-block-code"><code>=SUBTOTAL(1, B2:B100)</code></pre>



<p class="wp-block-paragraph">第1引数の <strong>1</strong> が「平均」を意味します。フィルターで非表示にした行は自動的に除外されます。</p>



<p class="wp-block-paragraph">SUBTOTAL関数の第1引数には2種類の番号があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>番号</th><th>動作</th><th>手動で非表示にした行</th></tr></thead><tbody><tr><td>1</td><td>平均</td><td>含む</td></tr><tr><td>101</td><td>平均</td><td>除外する</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">フィルターで隠した行はどちらも除外されます。違いは「手動で非表示にした行」の扱いです。手動非表示も除外したいなら101を使ってください。</p>



<h3 class="wp-block-heading"><span id="toc11">AGGREGATEでエラー無視＋手動非表示行も対応</span></h3>



<p class="wp-block-paragraph">SUBTOTAL関数には弱点が一つあります。範囲内にエラー値があると結果がエラーになる点です。</p>



<p class="wp-block-paragraph">エラー値も無視したいなら、AGGREGATE関数を使います。</p>



<pre class="wp-block-code"><code>=AGGREGATE(1, 7, B2:B100)</code></pre>



<p class="wp-block-paragraph">引数の意味はこうなります。</p>



<ul class="wp-block-list"><li><strong>1</strong>: 平均（AVERAGE相当）</li><li><strong>7</strong>: 非表示行とエラー値の両方を無視</li><li><strong>B2:B100</strong>: 対象範囲</li></ul>



<p class="wp-block-paragraph">optionsの主な設定値をまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>options</th><th>動作</th></tr></thead><tbody><tr><td>5</td><td>非表示行を無視</td></tr><tr><td>6</td><td>エラー値を無視</td></tr><tr><td>7</td><td>非表示行＋エラー値を無視</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">フィルター平均で最も安全なのはAGGREGATE関数です。ただしExcel 2010以降でないと使えません。お使いのバージョンを確認してくださいね。</p>



<h2 class="wp-block-heading"><span id="toc12">【応用】加重平均をSUMPRODUCTで実現する</span></h2>



<h3 class="wp-block-heading"><span id="toc13">加重平均とは？単純平均との違い</span></h3>



<p class="wp-block-paragraph">単純平均は、すべてのデータを同じ重みで扱います。一方、加重平均は<strong>データごとに重み（ウェイト）を付けて計算する平均</strong>です。</p>



<p class="wp-block-paragraph">身近な例だと、大学の成績（GPA）があります。単位数が多い科目ほど成績への影響が大きいですよね。これが加重平均の考え方です。</p>



<p class="wp-block-paragraph">計算式はこうなります。</p>



<pre class="wp-block-code"><code>加重平均 = (値1×重み1 + 値2×重み2 + ...) / (重み1 + 重み2 + ...)</code></pre>



<p class="wp-block-paragraph">AVERAGE関数では加重平均を直接計算できません。そこで<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>とSUMPRODUCT関数を組み合わせます。</p>



<h3 class="wp-block-heading"><span id="toc14">SUMPRODUCT÷SUMで加重平均を計算する式</span></h3>



<p class="wp-block-paragraph">以下のような評価データがあるとします。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>B列（スコア）</th><th>C列（重み）</th></tr></thead><tbody><tr><td>2行目</td><td>80</td><td>3</td></tr><tr><td>3行目</td><td>70</td><td>2</td></tr><tr><td>4行目</td><td>90</td><td>5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">加重平均の式はこうです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B4, C2:C4) / SUM(C2:C4)</code></pre>



<p class="wp-block-paragraph">計算を確認してみましょう。</p>



<ul class="wp-block-list"><li>分子: 80×3 + 70×2 + 90×5 = 240 + 140 + 450 = <strong>830</strong></li><li>分母: 3 + 2 + 5 = <strong>10</strong></li><li>結果: 830 / 10 = <strong>83</strong></li></ul>



<p class="wp-block-paragraph">単純平均なら (80+70+90)/3 = 80 です。重みが5と大きい90点の影響で、加重平均は83になります。</p>



<p class="wp-block-paragraph">この違いが重要になる場面は多いです。売上の地域別加重平均や、配点が異なるテストの総合評価などで活用してみてください。</p>



<h2 class="wp-block-heading"><span id="toc15">文字列として格納された数値への対処</span></h2>



<h3 class="wp-block-heading"><span id="toc16">「数値として保存されていない数値」が原因で平均がズレる</span></h3>



<p class="wp-block-paragraph">Excelで意外と多いのが、見た目は数字なのに中身が文字列というケースです。CSVの取り込みや手入力のミスでよく発生します。</p>



<p class="wp-block-paragraph">AVERAGE関数は文字列を無視します。エラーは出ないのに、特定のセルが計算から外れるのが厄介なポイントです。</p>



<p class="wp-block-paragraph">文字列格納数値の見分け方は3つあります。</p>



<ul class="wp-block-list"><li>セル左上に<strong>緑色の小さな三角マーク</strong>が表示される</li><li>セルの数値が<strong>左寄せ</strong>になっている（数値は通常右寄せ）</li><li><code>=ISNUMBER(A1)</code> で <strong>FALSE</strong> が返される</li></ul>



<p class="wp-block-paragraph">これらに該当したら、そのセルは文字列扱いになっています。</p>



<h3 class="wp-block-heading"><span id="toc17">VALUE関数または一括変換で正しい数値に直す</span></h3>



<p class="wp-block-paragraph">文字列を数値に変換する方法は複数あります。</p>



<p class="wp-block-paragraph"><strong>方法1: エラーボタンから変換</strong></p>



<p class="wp-block-paragraph">緑三角が表示されたセルを選択します。黄色い警告アイコンをクリックし、「数値に変換」を選びましょう。複数セルを選択してから操作すれば一括変換もできます。</p>



<p class="wp-block-paragraph"><strong>方法2: <a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で変換</strong></p>



<pre class="wp-block-code"><code>=VALUE(A1)</code></pre>



<p class="wp-block-paragraph">文字列の &#8220;123&#8221; を数値の 123 に変換します。別セルに変換結果を出す方法です。</p>



<p class="wp-block-paragraph"><strong>方法3: 算術演算で変換</strong></p>



<pre class="wp-block-code"><code>=A1*1</code></pre>



<p class="wp-block-paragraph">文字列に1を掛けると、Excelが自動的に数値に変換します。VALUE関数と同じ効果で、式が短くて済みます。</p>



<p class="wp-block-paragraph">大量のデータを扱うときは、方法1のエラーボタン一括変換が最も手軽です。数式で残したいならVALUE関数を使ってくださいね。</p>



<h2 class="wp-block-heading"><span id="toc18">AVERAGEIF・AVERAGEIFS・AVERAGEA・DAVERAGEとの使い分け</span></h2>



<h3 class="wp-block-heading"><span id="toc19">目的別・関数選択チャート</span></h3>



<p class="wp-block-paragraph">AVERAGE系の関数は種類が多くて迷いますよね。以下のチャートで目的に合った関数を選んでください。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数</th><th>式の例</th></tr></thead><tbody><tr><td>範囲全体の平均</td><td>AVERAGE</td><td><code>=AVERAGE(B2:B100)</code></td></tr><tr><td>条件1つで平均</td><td><a href="https://mashukabu.com/excel-function-howto-use-averageif/">AVERAGEIF</a></td><td><code>=AVERAGEIF(A:A,"東京",B:B)</code></td></tr><tr><td>条件2つ以上で平均</td><td><a href="https://mashukabu.com/excel-function-howto-use-averageifs/">AVERAGEIFS</a></td><td><code>=AVERAGEIFS(C:C,A:A,"東京",B:B,">=100")</code></td></tr><tr><td>TRUE/FALSEも含めて平均</td><td><a href="https://mashukabu.com/excel-function-howto-use-averagea/">AVERAGEA</a></td><td><code>=AVERAGEA(B2:B100)</code></td></tr><tr><td>データベース形式で条件平均</td><td>DAVERAGE</td><td><code>=DAVERAGE(A1:C100,"売上",E1:E2)</code></td></tr><tr><td>フィルター対応の平均</td><td><a href="https://mashukabu.com/excel-function-howto-use-subtotal/">SUBTOTAL</a></td><td><code>=SUBTOTAL(1,B2:B100)</code></td></tr><tr><td>外れ値に強い代表値</td><td><a href="https://mashukabu.com/excel-function-howto-use-median/">MEDIAN</a></td><td><code>=MEDIAN(B2:B100)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">迷ったときの判断基準はシンプルです。</p>



<ul class="wp-block-list"><li><strong>条件なし</strong> → AVERAGE</li><li><strong>条件あり</strong> → AVERAGEIF / AVERAGEIFS</li><li><strong>フィルター使用</strong> → SUBTOTAL / AGGREGATE</li><li><strong>論理値も計算に入れたい</strong> → AVERAGEA</li></ul>



<p class="wp-block-paragraph">DAVERAGEはデータベース関数の一種です。条件を別のセル範囲で指定する方式で、複雑な条件設定に向いています。ただし、多くの場面ではAVERAGEIFSで代用できます。</p>



<p class="wp-block-paragraph">関数の詳しい使い方は個別の解説記事を参考にしてください。<a href="https://mashukabu.com/excel-function/">Excel関数一覧</a>や<a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数を機能別に検索</a>からも探せますよ。</p>



<h2 class="wp-block-heading"><span id="toc20">エラー（#DIV/0!）の原因と回避方法</span></h2>



<p class="wp-block-paragraph">AVERAGE関数で最もよく見るエラーが <strong>#DIV/0!</strong> です。これは「0で割ろうとした」という意味のエラーです。</p>



<p class="wp-block-paragraph">原因はシンプルで、<strong>対象範囲に数値が1つもないとき</strong>に発生します。すべてのセルが空白、または文字列だけの場合がこれに該当します。</p>



<p class="wp-block-paragraph">まだデータが入っていないテンプレートにAVERAGE関数を仕込んでおくと、このエラーが表示されがちです。</p>



<h3 class="wp-block-heading"><span id="toc21">IFERRORで空白返しにする</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で囲むだけで解決できます。</p>



<pre class="wp-block-code"><code>=IFERROR(AVERAGE(B2:B20), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">エラーのときは空白（&#8221;&#8221;）を返し、データが入ったら自動で平均値に切り替わります。</p>



<p class="wp-block-paragraph">表示する内容はお好みで変えられます。</p>



<pre class="wp-block-code"><code>=IFERROR(AVERAGE(B2:B20), &quot;-&quot;)
=IFERROR(AVERAGE(B2:B20), &quot;データなし&quot;)
=IFERROR(AVERAGE(B2:B20), 0)</code></pre>



<p class="wp-block-paragraph">テンプレートを作るときは、あらかじめIFERRORで囲んでおくのがおすすめです。見た目がすっきりしますよ。</p>



<p class="wp-block-paragraph">小数桁が長くなる場合は、<a href="https://mashukabu.com/excel-function-howto-use-round/">ROUND関数</a>と組み合わせましょう。</p>



<pre class="wp-block-code"><code>=IFERROR(ROUND(AVERAGE(B2:B20), 1), &quot;&quot;)</code></pre>



<p class="wp-block-paragraph">平均値を小数第1位で丸めつつ、エラー時は空白にする式です。報告書や集計表で重宝します。</p>



<h2 class="wp-block-heading"><span id="toc22">まとめ：AVERAGE関数トラブル別 解決早見表</span></h2>



<p class="wp-block-paragraph">この記事では、ExcelのAVERAGE関数の基本から落とし穴の対処法まで解説しました。最後に、トラブル別の解決策を一覧にまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>トラブル</th><th>原因</th><th>解決策</th></tr></thead><tbody><tr><td>平均が想定より低い</td><td>0が計算に含まれている</td><td><code>=AVERAGEIF(範囲,"<>0")</code></td></tr><tr><td>フィルター後も平均が変わらない</td><td>AVERAGEは非表示行も計算する</td><td><code>=SUBTOTAL(1,範囲)</code></td></tr><tr><td>エラー値がある範囲で計算できない</td><td>AVERAGE・SUBTOTALはエラーを処理できない</td><td><code>=AGGREGATE(1,7,範囲)</code></td></tr><tr><td>#DIV/0! エラーが出る</td><td>対象範囲に数値がない</td><td><code>=IFERROR(AVERAGE(範囲),"")</code></td></tr><tr><td>特定セルが計算に含まれない</td><td>文字列として格納された数値</td><td>VALUE関数または*1で数値に変換</td></tr><tr><td>重み付きの平均を出したい</td><td>AVERAGE関数では対応できない</td><td><code>=SUMPRODUCT(値,重み)/SUM(重み)</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ポイントをおさらいしましょう。</p>



<ul class="wp-block-list"><li>AVERAGE関数は空白・文字列をスキップするが、<strong>0はスキップしない</strong></li><li>フィルター対応の平均には<strong>SUBTOTAL関数</strong>か<strong>AGGREGATE関数</strong>を使う</li><li>加重平均は<strong>SUMPRODUCT / SUM</strong>の組み合わせで計算する</li><li>文字列格納数値はエラーが出ずに無視されるため、発見が遅れやすい</li><li>テンプレートには<strong>IFERROR</strong>を仕込んでおくと安心</li></ul>



<p class="wp-block-paragraph">AVERAGE関数自体はとてもシンプルです。落とし穴のパターンさえ押さえれば、平均計算で困ることはなくなります。ぜひ今日の業務から試してみてくださいね。</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/excel-function-howto-use-averageif/">AVERAGEIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-averageifs/">AVERAGEIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-subtotal/">SUBTOTAL関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-averagea/">AVERAGEA関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-median/">MEDIAN関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-count/">COUNT関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-round/">ROUND関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function/">Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">Excel関数を機能別に検索</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-average/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのSUMPRODUCT関数の使い方｜複数条件とエラー対処</title>
		<link>https://mashukabu.com/excel-function-howto-use-sumproduct/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-sumproduct/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 13 Mar 2022 14:59:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[OR条件]]></category>
		<category><![CDATA[SUMPRODUCT関数]]></category>
		<category><![CDATA[エラー対処]]></category>
		<category><![CDATA[加重平均]]></category>
		<category><![CDATA[条件付き集計]]></category>
		<category><![CDATA[複数条件]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=1353</guid>

					<description><![CDATA[ExcelのSUMPRODUCT関数の使い方を、単価×数量の「掛けて合計」から複数条件のAND・OR集計まで実例で解説します。*が「かつ」、+が「または」になる理由や、#VALUE!・結果が0になるときの切り分け手順、SUMIFSとの使い分け基準もまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「単価 × 数量の合計を出したいだけなのに、作業列を作るのが面倒…」。Excelで集計をしていると、一度はぶつかる壁ですよね。作業列が増えるほどシートは散らかります。</p>



<p class="wp-block-paragraph">かといって、ネットで拾ったSUMPRODUCT関数の数式を貼り付けたとします。今度は <code>#VALUE!</code> が出たり、結果が0になったり。原因がわからないまま時間だけ過ぎるのは、なかなか面倒ですよね。</p>



<p class="wp-block-paragraph">SUMPRODUCT関数は、「掛けてから合計」を数式1つで片づけてくれる関数です。複数条件のAND集計も、SUMIFSでは書けないOR条件も、作業列なしでこなせます。</p>



<p class="wp-block-paragraph">この記事では基本の使い方に加えて、つまずきやすい症状の切り分け手順まで解説しますね。対象は <code>#VALUE!</code>・「0になる」・「合計が2倍になる」の3つ。SUMIFSとの使い分け基準も、3つの判定リストに整理しました。</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">ExcelのSUMPRODUCT関数とは？「掛けてから合計」が1つの式で終わる</a><ol><li><a href="#toc2" tabindex="0">構文と引数(配列は最大255個・サイズを揃える)</a></li><li><a href="#toc3" tabindex="0">単価×数量の合計を作業列なしで出す</a></li><li><a href="#toc4" tabindex="0">なぜ作業列が要らないのか（配列の途中結果を見る）</a></li></ol></li><li><a href="#toc5" tabindex="0">条件つき集計は「*」が『かつ』、「+」が『または』</a><ol><li><a href="#toc6" tabindex="0">1条件の合計：条件式をカッコで囲んで掛ける</a></li><li><a href="#toc7" tabindex="0">複数条件（AND）と月×商品のクロス集計</a></li><li><a href="#toc8" tabindex="0">OR条件で合計が2倍になる問題と >0 での正規化</a></li><li><a href="#toc9" tabindex="0">件数を数えるときだけ必要なダブルマイナス --</a></li></ol></li><li><a href="#toc10" tabindex="0">SUMIFSで足りない3場面（SUMPRODUCTを選ぶ基準）</a><ol><li><a href="#toc11" tabindex="0">①OR条件（AまたはB）が必要なとき</a></li><li><a href="#toc12" tabindex="0">②掛けてから合計が必要なとき（売上・加重平均）</a></li><li><a href="#toc13" tabindex="0">③計算式・部分一致・関数結果を条件にしたいとき</a></li></ol></li><li><a href="#toc14" tabindex="0">SUMPRODUCTがうまくいかないときの原因と直し方</a><ol><li><a href="#toc15" tabindex="0">症状別・早見表（#VALUE! / 0になる / 2倍になる / 重い）</a></li><li><a href="#toc16" tabindex="0">#VALUE! になる：行数・列数の不一致を3ステップで切り分ける</a></li><li><a href="#toc17" tabindex="0">0になる・小さすぎる：文字列数値と空白セルを疑う</a></li><li><a href="#toc18" tabindex="0">カンマ区切りと * 形式で結果が変わる理由</a></li><li><a href="#toc19" tabindex="0">条件式のカッコ抜け・演算子ミス</a></li><li><a href="#toc20" tabindex="0">計算が重いとき：列全体参照をやめる</a></li></ol></li><li><a href="#toc21" tabindex="0">よくある質問｜SUMPRODUCT関数</a><ol><li><a href="#toc22" tabindex="0">Q. Ctrl+Shift+Enter での確定は必要？</a></li><li><a href="#toc23" tabindex="0">Q. ダブルマイナス -- は必ず要る？</a></li><li><a href="#toc24" tabindex="0">Q. SUMPRODUCT と PRODUCT は何が違う？</a></li><li><a href="#toc25" tabindex="0">Q. Googleスプレッドシートでも同じように使える？</a></li><li><a href="#toc26" tabindex="0">Q. 大量データで重いときはどうする？</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのSUMPRODUCT関数とは？「掛けてから合計」が1つの式で終わる</span></h2>



<p class="wp-block-paragraph">SUMPRODUCT関数とは、複数の配列（セル範囲）の対応する要素を掛け算し、その合計を返す関数です。読み方は「サムプロダクト」。名前は SUM（合計）と PRODUCT（積）を足したものです。</p>



<p class="wp-block-paragraph">普通なら作業列に <code>=B2*C2</code> を入れて、そのあとSUM関数で足し上げますよね。SUMPRODUCT関数なら、この2ステップが数式1つに収まります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>対応バージョン</strong>: 公式の適用対象は Excel for Microsoft 365 / 2024 / 2021 / 2019 / 2016（Mac版を含む）です。Ctrl + Shift + Enter による配列数式の確定は不要で、通常のEnterで確定できます。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc2">構文と引数(配列は最大255個・サイズを揃える)</span></h3>



<pre class="wp-block-code"><code>=SUMPRODUCT(配列1, [配列2], [配列3], ...)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>配列1</td><td>必須</td><td>計算対象となる最初の配列またはセル範囲</td></tr><tr><td>配列2, &#8230;</td><td>任意</td><td>掛け合わせたい追加の配列（合計255個まで）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数が1つだけなら、その範囲をそのまま合計します。2つ以上を指定すると、対応する位置の要素を掛けてから合計する動作に変わります。</p>



<p class="wp-block-paragraph">そして、最重要の制約がひとつ。<strong>すべての配列は行数・列数を揃える</strong>必要があります。ずれていると <code>#VALUE!</code> エラーになるので、範囲指定は慎重にいきましょう。</p>



<h3 class="wp-block-heading"><span id="toc3">単価×数量の合計を作業列なしで出す</span></h3>



<p class="wp-block-paragraph">次のような商品リストで試してみます。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>A列（商品名）</th><th>B列（単価）</th><th>C列（数量）</th></tr></thead><tbody><tr><td>2</td><td>ノート</td><td>200</td><td>50</td></tr><tr><td>3</td><td>ペン</td><td>150</td><td>80</td></tr><tr><td>4</td><td>消しゴム</td><td>100</td><td>30</td></tr><tr><td>5</td><td>ファイル</td><td>300</td><td>20</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">全商品の売上合計を出す数式は、これだけ。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B5, C2:C5)

(200 × 50) + (150 × 80) + (100 × 30) + (300 × 20)
= 10,000 + 12,000 + 3,000 + 6,000
= 31,000</code></pre>



<p class="wp-block-paragraph">結果は <strong>31,000</strong> になります。作業列に <code>=B2*C2</code> を並べて <code>=SUM(D2:D5)</code> で合計する。その2ステップが丸ごと消えるわけです。</p>



<h3 class="wp-block-heading"><span id="toc4">なぜ作業列が要らないのか（配列の途中結果を見る）</span></h3>



<p class="wp-block-paragraph">理由は、SUMPRODUCT関数が内部で「配列」を作っているから。配列とは、ここでは<strong>セル範囲の値をまとめて並べた見えないリスト</strong>のことです。</p>



<pre class="wp-block-code"><code>B2:B5 → {200, 150, 100, 300}
C2:C5 → {50, 80, 30, 20}

掛け合わせた途中結果 → {10000, 12000, 3000, 6000}
合計 → 31,000</code></pre>



<p class="wp-block-paragraph">この <code>{10000, 12000, 3000, 6000}</code> こそ、本来なら作業列に並ぶはずだった値。それをセルに書き出さず、内部で持ったまま合計まで進みます。だから列が増えないんですね。</p>



<h2 class="wp-block-heading"><span id="toc5">条件つき集計は「*」が『かつ』、「+」が『または』</span></h2>



<p class="wp-block-paragraph">SUMPRODUCT関数の本当のおいしさは、条件つき集計にあります。押さえるべき原則は、たった1行。</p>



<p class="wp-block-paragraph"><strong>条件式が返す TRUE / FALSE は、算術演算に入ると 1 / 0 として計算される</strong>。</p>



<p class="wp-block-paragraph">この性質から、演算子の意味が自動的に決まります。</p>



<ul class="wp-block-list"><li><strong>掛け算 <code>*</code> = かつ（AND）</strong>: <code>1 × 1</code> のときだけ 1。片方でも0なら結果は0</li><li><strong>足し算 <code>+</code> = または（OR）</strong>: <code>0 + 0</code> のときだけ 0。どちらかが1なら1以上</li></ul>



<p class="wp-block-paragraph">理屈がわかっていれば、条件が3つ4つに増えても同じ型で書けますよ。以降は次の表を使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>A列（商品名）</th><th>B列（カテゴリ）</th><th>C列（単価）</th><th>D列（数量）</th></tr></thead><tbody><tr><td>2</td><td>ノート</td><td>文房具</td><td>200</td><td>50</td></tr><tr><td>3</td><td>ペン</td><td>文房具</td><td>150</td><td>80</td></tr><tr><td>4</td><td>マウス</td><td>PC周辺機器</td><td>2000</td><td>10</td></tr><tr><td>5</td><td>ファイル</td><td>文房具</td><td>300</td><td>20</td></tr><tr><td>6</td><td>コーヒー</td><td>飲料</td><td>120</td><td>40</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">1条件の合計：条件式をカッコで囲んで掛ける</span></h3>



<p class="wp-block-paragraph">「文房具」だけの売上合計を出してみましょう。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B6=&quot;文房具&quot;)*C2:C6*D2:D6)

(1×200×50) + (1×150×80) + (0×2000×10) + (1×300×20) + (0×120×40)
= 28,000</code></pre>



<p class="wp-block-paragraph">ポイントは <code>(B2:B6="文房具")</code> の部分。各行が文房具かどうかを判定し、TRUE / FALSE を並べた配列を作ります。それを単価・数量に掛けると、条件に合わない行だけが0になる仕組みです。</p>



<p class="wp-block-paragraph">結果は <strong>28,000</strong>。マウスとコーヒーは0が掛かって消えました。</p>



<p class="wp-block-paragraph">掛け算をせず「金額だけ」を条件つきで合計したい場面もありますよね。その場合は<a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数の使い方</a>のほうが、数式が短く読みやすくなります。</p>



<h3 class="wp-block-heading"><span id="toc7">複数条件（AND）と月×商品のクロス集計</span></h3>



<p class="wp-block-paragraph">条件を増やすときは、カッコで囲んで <code>*</code> でつなぐだけ。「文房具」かつ「単価が200円以上」の売上合計はこうなります。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B6=&quot;文房具&quot;)*(C2:C6&gt;=200)*C2:C6*D2:D6)

ノート  : 1 × 1 × 200 × 50 = 10,000
ペン    : 1 × 0 × 150 × 80 =      0   ← 単価150は条件外
マウス  : 0（カテゴリ不一致）=      0
ファイル: 1 × 1 × 300 × 20 =  6,000
コーヒー: 0（カテゴリ不一致）=      0
                     合計 = 16,000</code></pre>



<p class="wp-block-paragraph">結果は <strong>16,000</strong> です。この型は月別×商品別のクロス集計にもそのまま使えます。</p>



<p class="wp-block-paragraph">たとえばA列に月、B列に商品名、C列に金額を並べた明細表なら、次の形になります。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((A2:A5=&quot;4月&quot;)*(B2:B5=&quot;ノート&quot;)*C2:C5)</code></pre>



<p class="wp-block-paragraph">行見出し・列見出しを参照する形にすれば、数式1つをコピーするだけ。クロス集計表がそのまま完成しますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">OR条件で合計が2倍になる問題と >0 での正規化</span></h3>



<p class="wp-block-paragraph">次はOR条件。「文房具」または「PC周辺機器」の売上合計を出します。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B6=&quot;文房具&quot;)+(B2:B6=&quot;PC周辺機器&quot;))*C2:C6*D2:D6)</code></pre>



<p class="wp-block-paragraph">結果は <strong>48,000</strong> です。内訳はノート10,000＋ペン12,000＋マウス20,000＋ファイル6,000。飲料のコーヒーだけが除外されました。</p>



<p class="wp-block-paragraph">ここまでは順調です。問題は、<strong>同じ行が両方の条件を満たしうるOR条件</strong>を書いたとき。別々の列を条件にすると、この状況が起きやすくなります。</p>



<p class="wp-block-paragraph">試しに「文房具」または「数量が30以上」で集計してみましょう。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B6=&quot;文房具&quot;)+(D2:D6&gt;=30))*C2:C6*D2:D6)

条件A（文房具）     : {1, 1, 0, 1, 0}
条件B（数量30以上） : {1, 1, 0, 0, 1}
A + B               : {2, 2, 0, 1, 1}   ← ノートとペンが 2

2×10,000 + 2×12,000 + 0 + 1×6,000 + 1×4,800 = 54,800</code></pre>



<p class="wp-block-paragraph">両方の条件を満たすノートとペンが、2回ぶん数えられました。正しい答えは 32,800 のはずなのに、22,000 も多い数字です。</p>



<p class="wp-block-paragraph">直し方はシンプル。足し算の結果を <code>>0</code> で判定し、1 / 0 に揃えます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B6=&quot;文房具&quot;)+(D2:D6&gt;=30)&gt;0)*C2:C6*D2:D6)

(A + B) &gt; 0 : {1, 1, 0, 1, 1}
10,000 + 12,000 + 0 + 6,000 + 4,800 = 32,800</code></pre>



<p class="wp-block-paragraph">これで <strong>32,800</strong> に落ち着きました。OR条件を書くときは <code>>0</code> をセットで付ける、と覚えておくと事故が減りますよ。</p>



<p class="wp-block-paragraph">なお、SUMIFS関数にはOR条件を直接指定する引数がありません。構文の違いは<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数の使い方</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc9">件数を数えるときだけ必要なダブルマイナス --</span></h3>



<p class="wp-block-paragraph">ネットで見かける <code>--(条件)</code> という書き方。マイナスが2つ並んだこの記法は「ダブルマイナス」（二重単項マイナス）と呼ばれます。</p>



<p class="wp-block-paragraph">役割は、TRUE / FALSE を 1 / 0 に変換すること。単項マイナス（符号を反転させる演算子）を2回かけて実現しています。</p>



<p class="wp-block-paragraph">1回目で TRUE は -1 になり、2回目で符号が戻って 1。FALSE は 0 のままです。</p>



<p class="wp-block-paragraph">なぜ変換が必要なのでしょうか。<strong>SUMPRODUCT関数は論理値（TRUE / FALSE）を数値として見ないから</strong>です。算術演算を挟まずに渡すと、非数値として無視されます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B6=&quot;文房具&quot;))     → 0   ← 論理値のまま渡すと無視される
=SUMPRODUCT(--(B2:B6=&quot;文房具&quot;))   → 3   ← 1/0 に変換されて数えられる
=SUMPRODUCT((B2:B6=&quot;文房具&quot;)*1)   → 3   ← *1 でも同じ結果</code></pre>



<p class="wp-block-paragraph">文房具はノート・ペン・ファイルの3件。ちゃんと数えられていますね。複数条件のカウントなら、条件どうしを掛けるだけで変換が済みます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B6=&quot;文房具&quot;)*(C2:C6&gt;=200))   → 2</code></pre>



<p class="wp-block-paragraph">まとめると、ダブルマイナスが必要なのは<strong>集計範囲を掛けない「件数カウント」のときだけ</strong>。<code>(条件)*金額</code> のように何かを掛けている数式では不要です。</p>



<h2 class="wp-block-heading"><span id="toc10">SUMIFSで足りない3場面（SUMPRODUCTを選ぶ基準）</span></h2>



<p class="wp-block-paragraph">「結局どっちを使えばいいの？」という疑問には、次の3つで判定すると早いです。</p>



<ol class="wp-block-list"><li>OR条件（AまたはB）が必要</li><li>掛けてから合計する必要がある（売上・加重平均）</li><li>計算した結果を条件にしたい</li></ol>



<p class="wp-block-paragraph"><strong>どれにも当てはまらないならSUMIFSを選んでください</strong>。数式が短く、読み返したときに意図が伝わりやすいですから。</p>



<h3 class="wp-block-heading"><span id="toc11">①OR条件（AまたはB）が必要なとき</span></h3>



<p class="wp-block-paragraph">SUMIFSの引数は「条件範囲」と「条件」のペアを並べる形。これらはすべてAND（かつ）で結合されます。OR条件を指定する引数は用意されていません。</p>



<p class="wp-block-paragraph">SUMIFSを複数書いて足す回避策もあります。ただ、条件が増えるほど数式は長くなり、重複ぶんの引き算も必要になって管理がつらくなりがち。</p>



<p class="wp-block-paragraph">前章の <code>((条件A)+(条件B)>0)</code> なら、条件が増えても書き方は同じです。ここはSUMPRODUCT関数の圧勝ですね。</p>



<h3 class="wp-block-heading"><span id="toc12">②掛けてから合計が必要なとき（売上・加重平均）</span></h3>



<p class="wp-block-paragraph">SUMIFSは「条件に合う行の、1つの合計範囲を足す」関数です。2つの列を掛け合わせてから合計する、という計算は構造上できません。</p>



<p class="wp-block-paragraph">単価×数量の売上集計がまさにこれ。もうひとつの代表例が、加重平均です。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>A列（科目）</th><th>B列（点数）</th><th>C列（配点）</th></tr></thead><tbody><tr><td>2</td><td>数学</td><td>80</td><td>3</td></tr><tr><td>3</td><td>英語</td><td>90</td><td>2</td></tr><tr><td>4</td><td>国語</td><td>70</td><td>1</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B4, C2:C4) / SUM(C2:C4)

分子: (80 × 3) + (90 × 2) + (70 × 1) = 490
分母: 3 + 2 + 1 = 6
490 ÷ 6 ≒ 81.7</code></pre>



<p class="wp-block-paragraph">単純平均なら <code>(80 + 90 + 70) ÷ 3 = 80</code> ですが、加重平均は <strong>約81.7</strong>。配点3の数学で高得点を取っている分、平均が押し上げられました。アンケートの5段階評価などにも応用できますよ。</p>



<h3 class="wp-block-heading"><span id="toc13">③計算式・部分一致・関数結果を条件にしたいとき</span></h3>



<p class="wp-block-paragraph">SUMIFSの条件は「その範囲の値と、指定した1つの値との比較」に限られます。関数で加工した結果や、列どうしの比較は条件として書けません。</p>



<figure class="wp-block-table"><table><thead><tr><th>行</th><th>A列（日付）</th><th>B列（予算）</th><th>C列（実績）</th></tr></thead><tbody><tr><td>2</td><td>2026/4/5</td><td>100000</td><td>120000</td></tr><tr><td>3</td><td>2026/4/20</td><td>80000</td><td>60000</td></tr><tr><td>4</td><td>2026/5/8</td><td>90000</td><td>95000</td></tr><tr><td>5</td><td>2026/5/22</td><td>70000</td><td>70000</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=SUMPRODUCT((C2:C5&gt;B2:B5)*C2:C5)     → 215,000  実績が予算を上回った行
=SUMPRODUCT((MONTH(A2:A5)=4)*C2:C5)  → 180,000  日付が4月の行</code></pre>



<p class="wp-block-paragraph">1つめは2行目（120,000）と4行目（95,000）が対象。5行目は 70,000 と 70,000 で同額のため、<code>></code> の条件を満たさず除外されます。</p>



<p class="wp-block-paragraph">2つめはMONTH関数（日付から月を数値で取り出す関数）を使った例。結果が4になる2行目と3行目が集計されます。</p>



<p class="wp-block-paragraph">文字列の部分一致も同じ発想です。ひとつ前の商品リスト（A列＝商品名・C列＝単価・D列＝数量）に戻って、商品名に「ペン」を含む行だけを合計してみましょう。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(SEARCH(&quot;ペン&quot;, A2:A6))*C2:C6*D2:D6)</code></pre>



<p class="wp-block-paragraph">SEARCH関数は文字が見つかった位置を返し、見つからなければエラーを返します。それをISNUMBER関数（数値かどうかを判定する関数）で TRUE / FALSE に変換する形ですね。</p>



<p class="wp-block-paragraph">単純な部分一致だけならSUMIFSでもワイルドカード（<code>"<em>ペン</em>"</code>）が使えます。SEARCH方式が効くのは、他の条件と組み合わせて複雑に絞り込みたい場面です。</p>



<p class="wp-block-paragraph">3つの関数を細かく比べたい方は、<a href="https://mashukabu.com/excel-sumif-sumifs-sumproduct-comparison/">SUMIF・SUMIFS・SUMPRODUCTの使い分け</a>をどうぞ。比較表つきで整理しています。</p>



<h2 class="wp-block-heading"><span id="toc14">SUMPRODUCTがうまくいかないときの原因と直し方</span></h2>



<p class="wp-block-paragraph">ここからが本題。SUMPRODUCT関数は自由度が高いぶん、つまずきどころも決まっています。症状さえ特定できれば、原因はだいたい絞り込めますよ。</p>



<h3 class="wp-block-heading"><span id="toc15">症状別・早見表（#VALUE! / 0になる / 2倍になる / 重い）</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>よくある原因</th><th>直し方</th></tr></thead><tbody><tr><td><code>#VALUE!</code> になる</td><td>配列の行数・列数が不一致</td><td>範囲を同じサイズに揃える</td></tr><tr><td><code>#VALUE!</code>（サイズは同じ）</td><td><code>*</code> 形式で文字列が混在</td><td>カンマ区切りにする／数値に直す</td></tr><tr><td>結果が0・小さすぎる</td><td>数値が文字列として入っている</td><td>セルを数値に変換する</td></tr><tr><td>条件つきなのに0</td><td>論理値をそのまま渡している</td><td><code>--(条件)</code> か <code>(条件)*1</code> にする</td></tr><tr><td>合計が2倍になる</td><td>OR条件で該当行が重複</td><td><code>((条件A)+(条件B)>0)</code> で正規化</td></tr><tr><td>結果の桁が明らかに変</td><td>条件式のカッコ抜け・演算子ミス</td><td>条件は必ず <code>(条件)</code> で囲む</td></tr><tr><td>計算が重い</td><td><code>A:A</code> のような列全体参照</td><td><code>A2:A1000</code> と実データ範囲に絞る</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">上から3つはとくにつまずきやすいので、切り分け手順まで掘り下げます。</p>



<h3 class="wp-block-heading"><span id="toc16">#VALUE! になる：行数・列数の不一致を3ステップで切り分ける</span></h3>



<p class="wp-block-paragraph"><code>#VALUE!</code> の最大の原因は、配列のサイズ違いです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A2:A6, B2:B20)  ← 5行と19行で不一致</code></pre>



<p class="wp-block-paragraph">とはいえ、範囲が10個も並ぶ長い数式では、目視で犯人を探すのは大変。次の3ステップで機械的に絞り込みましょう。</p>



<p class="wp-block-paragraph"><strong>ステップ1: ROWS関数で各範囲の行数を数える</strong></p>



<p class="wp-block-paragraph">空いているセルに、数式内の範囲を1つずつ入れて確かめます。ROWS関数は範囲の行数を返す関数です。</p>



<pre class="wp-block-code"><code>=ROWS(A2:A6)    →  5
=ROWS(B2:B20)   → 19   ← ここだけ違う</code></pre>



<p class="wp-block-paragraph">数字が揃っていない範囲が犯人。開始行と終了行を他の範囲に合わせて修正してください。</p>



<p class="wp-block-paragraph"><strong>ステップ2: ISNUMBER関数で文字列数値の混入を検査する</strong></p>



<p class="wp-block-paragraph">行数が揃っているのに <code>#VALUE!</code> が消えないなら、範囲の中身を疑います。次の数式は、範囲内にある「数値のセル」の個数を返します。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(--ISNUMBER(C2:C6))</code></pre>



<p class="wp-block-paragraph">5行の範囲なのに戻り値が4以下なら、数値以外が混ざっているサイン。文字列や記号が入っていないか確認しましょう。</p>



<p class="wp-block-paragraph"><strong>ステップ3: 条件式を1つずつ外して犯人を特定する</strong></p>



<p class="wp-block-paragraph">それでも直らないなら、数式を分解します。条件を1つだけ残した最小の数式から始めましょう。</p>



<p class="wp-block-paragraph">動くことを確認したら、条件を1つずつ足していく。エラーが出た瞬間に足した条件が犯人です。</p>



<p class="wp-block-paragraph"><code>#VALUE!</code> はSUMPRODUCT関数以外でも頻出するエラー。ほかの原因は<a href="https://mashukabu.com/excel-value-error/">Excelの#VALUE!エラーの原因と対処法</a>にまとめてあります。</p>



<h3 class="wp-block-heading"><span id="toc17">0になる・小さすぎる：文字列数値と空白セルを疑う</span></h3>



<p class="wp-block-paragraph">エラーは出ないのに合計が0、または明らかに小さい。この症状で一番多いのは、<strong>数値に見える文字列</strong>の混入です。</p>



<p class="wp-block-paragraph">CSVや基幹システムからの貼り付けデータでよく起きます。セルの左上に緑の三角マークが出ていたら、ほぼ確定と思ってよいでしょう。</p>



<p class="wp-block-paragraph">直し方は2通り。根本的には、対象セルを選択して「数値に変換」を実行し、元データ側を直すのが安全です。</p>



<p class="wp-block-paragraph">数式側で応急処置するなら、VALUE関数（文字列を数値に変換する関数）を挟む手もあります。たとえば単価がB列・数量がC列にあり、B列だけが文字列になっているケースです。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(VALUE(B2:B6)*C2:C6)</code></pre>



<p class="wp-block-paragraph">ただしVALUE関数は、変換できない値が混ざるとエラーを返します。空白セルや記号が残る範囲では使えないので、やはり元データを直すほうが確実ですね。</p>



<p class="wp-block-paragraph">もうひとつ見落としやすいのが、前章で触れた<strong>論理値の扱い</strong>。条件式だけを渡す <code>=SUMPRODUCT((B2:B6="文房具"))</code> は0を返します。件数を数えたいなら <code>--</code> を忘れずに。</p>



<p class="wp-block-paragraph">数式が0のままになる症状は、再計算設定など別の原因で起きることもあります。心当たりがないときは<a href="https://mashukabu.com/excel-formula-not-calculating/">Excelで数式が計算されないときの対処法</a>も確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc18">カンマ区切りと * 形式で結果が変わる理由</span></h3>



<p class="wp-block-paragraph">次の2つの数式、同じ意味に見えますよね。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B6, C2:C6)   ← カンマ区切り形式
=SUMPRODUCT(B2:B6*C2:C6)    ← アスタリスク形式</code></pre>



<p class="wp-block-paragraph">データがすべて数値なら、どちらも同じ答えを返します。ところが範囲に文字列が混ざると、片方だけエラーになることも。</p>



<p class="wp-block-paragraph">公式ヘルプによると、SUMPRODUCT関数は配列内の非数値要素を0として扱います。カンマ区切り形式なら、この処理が働いて計算が続くわけですね。</p>



<p class="wp-block-paragraph">一方の <code>*</code> 形式で先に起きるのは、SUMPRODUCT関数に渡る前の掛け算。文字列 × 数値は算術演算として成立しないため、ここで <code>#VALUE!</code> が発生します。公式のエラー解説ページでも、参照範囲に文字列が含まれると <code>#VALUE!</code> になると案内されています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>注意</strong>: この差は、セルが真の空白なのか、数式が返した空文字列（<code>""</code>）なのかによっても変わります。手元のシートで両方の書き方を試し、実際の挙動を確かめてから使い分けるのが確実です。</p></blockquote>



<p class="wp-block-paragraph">実務での判断はシンプルに。<strong>範囲を素直に掛け合わせるだけなら、カンマ区切りのほうが安全</strong>です。</p>



<p class="wp-block-paragraph">ただし、条件式をカンマ区切りで渡すと論理値が無視されて0になります。条件を使うなら <code>*</code> でつなぐか、<code>--(条件)</code> の形にしてください。</p>



<h3 class="wp-block-heading"><span id="toc19">条件式のカッコ抜け・演算子ミス</span></h3>



<p class="wp-block-paragraph">条件式のカッコを忘れると、演算の順序が想定と変わります。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(B2:B6=&quot;文房具&quot;*C2:C6*D2:D6)     ← カッコ忘れ（#VALUE!）
=SUMPRODUCT((B2:B6=&quot;文房具&quot;)*C2:C6*D2:D6)   ← 正しい形</code></pre>



<p class="wp-block-paragraph">上の書き方では <code>"文房具"*C2:C6</code> が先に評価されます。文字列と数値の掛け算になるため <code>#VALUE!</code> が返るわけですね。</p>



<p class="wp-block-paragraph">演算子の取り違えも定番です。AND条件のつもりで <code>+</code> を書くと、実際にはOR条件として動いて合計が膨らみます。</p>



<p class="wp-block-paragraph"><strong>条件は必ずカッコで囲み、<code>*</code> か <code>+</code> かを声に出して確認する</strong>。この2つを習慣にするだけで、原因不明のズレはかなり減りますよ。</p>



<h3 class="wp-block-heading"><span id="toc20">計算が重いとき：列全体参照をやめる</span></h3>



<p class="wp-block-paragraph">数式を入れた瞬間にExcelが固まる。この症状のほとんどは、列全体参照が原因です。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A:A, B:B)           ← 100万行を丸ごと計算している
=SUMPRODUCT(A2:A1000, B2:B1000) ← 実データ範囲に絞る</code></pre>



<p class="wp-block-paragraph">公式ヘルプにも、はっきり書かれています。最高のパフォーマンスを得るには、SUMPRODUCT関数を完全な列参照で使わないこと。列全体を指定すると、空のセルまで含めた計算が走ってしまうためです。</p>



<p class="wp-block-paragraph">データが増減するならテーブル機能を使い、構造化参照で範囲を自動追従させる方法も有効ですよ。</p>



<h2 class="wp-block-heading"><span id="toc21">よくある質問｜SUMPRODUCT関数</span></h2>



<h3 class="wp-block-heading"><span id="toc22">Q. Ctrl+Shift+Enter での確定は必要？</span></h3>



<p class="wp-block-paragraph">不要です。SUMPRODUCT関数は内部で配列を扱いますが、通常のEnterキーだけで確定できます。</p>



<p class="wp-block-paragraph">従来型の配列数式では、Ctrl + Shift + Enter での確定が必要になる場面もあります。その手間がないぶん、配列に苦手意識がある方でも扱いやすいですよ。</p>



<h3 class="wp-block-heading"><span id="toc23">Q. ダブルマイナス -- は必ず要る？</span></h3>



<p class="wp-block-paragraph">いいえ、必要な場面は限られます。判断基準は「集計範囲を掛けているかどうか」。</p>



<p class="wp-block-paragraph"><code>(条件)*金額範囲</code> のように何かを掛けている数式なら不要です。掛け算の過程で TRUE / FALSE が自動的に 1 / 0 へ変わります。</p>



<p class="wp-block-paragraph">必要なのは、条件式だけを渡して件数を数えるときだけ。<code>(条件)*1</code> と書いても結果は同じですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">Q. SUMPRODUCT と PRODUCT は何が違う？</span></h3>



<p class="wp-block-paragraph">役割がはっきり違います。PRODUCT関数は、指定した範囲の数値を全部掛け算する関数。SUMPRODUCT関数は、複数の範囲を行ごとに掛けてから合計する関数です。</p>



<p class="wp-block-paragraph">B列が <code>{2, 3, 4}</code>、C列が <code>{5, 6, 7}</code> のときで比べてみましょう。</p>



<pre class="wp-block-code"><code>=PRODUCT(B2:B4)             = 2 × 3 × 4         = 24
=SUMPRODUCT(B2:B4, C2:C4)   = (2×5)+(3×6)+(4×7) = 56</code></pre>



<p class="wp-block-paragraph">詳しくは<a href="https://mashukabu.com/excel-function-howto-use-product/">PRODUCT関数の使い方</a>で解説しています。</p>



<h3 class="wp-block-heading"><span id="toc25">Q. Googleスプレッドシートでも同じように使える？</span></h3>



<p class="wp-block-paragraph">使えます。SUMPRODUCT関数は、Googleスプレッドシートにも同じ名前・同じ構文で搭載されています。<code>*</code> によるAND条件、<code>+</code> によるOR条件の書き方も共通です。</p>



<p class="wp-block-paragraph">Sheets側の詳しい使い方は<a href="https://mashukabu.com/spreadsheet-sumproduct-function/">スプレッドシートのSUMPRODUCT関数の使い方</a>にまとめてあります。</p>



<h3 class="wp-block-heading"><span id="toc26">Q. 大量データで重いときはどうする？</span></h3>



<p class="wp-block-paragraph">まずは範囲の見直しから。<code>A:A</code> のような列全体参照をやめ、<code>A2:A1000</code> と実データの行数に絞りましょう。それだけで体感が変わります。</p>



<p class="wp-block-paragraph">それでも重いなら、数式の役割を分けます。単純なAND条件だけの集計はSUMIFSに任せ、OR条件や積和が必要な部分だけSUMPRODUCT関数に残す形ですね。</p>



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



<p class="wp-block-paragraph">ExcelのSUMPRODUCT関数を、基本から実務レベルまで見てきました。「掛けてから合計」の基本形に始まり、エラーの切り分け手順まで一気に整理しています。</p>



<p class="wp-block-paragraph">要点をおさらいしましょう。</p>



<ul class="wp-block-list"><li>基本形は <code>=SUMPRODUCT(範囲1, 範囲2)</code>。作業列なしで「掛けてから合計」ができる</li><li>条件つき集計は <code>(条件)<em>集計範囲</code> の型。<code></em></code> が「かつ」、<code>+</code> が「または」</li><li>OR条件は <code>((条件A)+(条件B)>0)</code> で正規化し、2重カウントを防ぐ</li><li>件数カウントのときだけ <code>--(条件)</code> で論理値を 1 / 0 に変換する</li><li>OR条件・積和・計算結果を条件にする、の3つが不要ならSUMIFSを選ぶ</li><li><code>#VALUE!</code> は ROWS関数で行数を、ISNUMBER関数で中身を検査して切り分ける</li></ul>



<p class="wp-block-paragraph">最初は記号が多くて身構えるかもしれません。でも <code>(条件)*範囲</code> という型を覚えれば大丈夫。作業列だらけのシートが、驚くほどすっきりしますよ。</p>



<p class="wp-block-paragraph">まずは手元の売上表で <code>=SUMPRODUCT(単価範囲, 数量範囲)</code> から試してみてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-sumproduct/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
