<?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>Wed, 27 May 2026 22:53:56 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</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関数の使い方｜掛けて合計・複数条件・OR集計を完全ガイド</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関数の使い方を初心者にもわかりやすく解説。基本の「掛けて合計」から、複数条件・OR条件・加重平均・ダブルマイナス（--）まで実例付きで紹介。SUMIF・SUMIFSとの使い分けや「0になる」エラーの対処法もまとめました。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「商品ごとの売上を出したいけど、単価と数量を1行ずつ掛けてから合計するのは面倒&#8230;」。Excelで集計作業をしていると、こんな場面に出くわしますよね。</p>



<p class="wp-block-paragraph">作業列を増やすほどシートが散らかるし、計算ミスも起きやすくなります。</p>



<p class="wp-block-paragraph">そんなときに頼りになるのが、ExcelのSUMPRODUCT関数です。「掛け算して合計」を1つの数式でこなせます。しかも、条件付き集計やOR条件にも対応できる万能な関数ですよ。</p>



<p class="wp-block-paragraph">この記事では、SUMPRODUCT関数の基本構文から複数条件・OR条件・加重平均まで、実例付きでわかりやすく解説します。実務シーン別の使い方やよくあるエラーの対処法も、あわせて紹介しますね。</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関数とは？</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">「掛けてから合計」が1つの数式で済む仕組み</a></li></ol></li><li><a href="#toc7" tabindex="0">SUMPRODUCT関数で条件付き集計をする</a><ol><li><a href="#toc8" tabindex="0">1つの条件で集計する</a></li><li><a href="#toc9" tabindex="0">複数条件（AND）で集計する</a></li><li><a href="#toc10" tabindex="0">OR条件で集計する</a></li></ol></li><li><a href="#toc11" tabindex="0">知っておくと便利なダブルマイナス（&#8211;）</a></li><li><a href="#toc12" tabindex="0">実務シーン別のSUMPRODUCT関数活用例</a><ol><li><a href="#toc13" tabindex="0">月別×商品別のクロス集計をする</a></li><li><a href="#toc14" tabindex="0">「○○を含む」の部分一致で集計する</a></li><li><a href="#toc15" tabindex="0">チェック列（フラグ）で集計する</a></li><li><a href="#toc16" tabindex="0">複数条件でカウントする</a></li></ol></li><li><a href="#toc17" tabindex="0">SUMPRODUCT関数で加重平均を求める</a></li><li><a href="#toc18" tabindex="0">SUMPRODUCT関数でよくあるエラーと対処法</a><ol><li><a href="#toc19" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc20" tabindex="0">数値が入っているのに結果が0になる</a></li><li><a href="#toc21" tabindex="0">条件式で結果がおかしい</a></li></ol></li><li><a href="#toc22" tabindex="0">SUMIF・SUMIFS関数との違い・使い分け</a></li><li><a href="#toc23" tabindex="0">PRODUCT関数との違い</a></li><li><a href="#toc24" tabindex="0">SUMPRODUCT関数のよくある質問（FAQ）</a><ol><li><a href="#toc25" tabindex="0">SUMPRODUCTは配列数式ですか？Ctrl+Shift+Enterは必要ですか？</a></li><li><a href="#toc26" tabindex="0">「&#8211;」（ダブルマイナス）は必ず必要ですか？</a></li><li><a href="#toc27" tabindex="0">Googleスプレッドシートでも使えますか？</a></li><li><a href="#toc28" tabindex="0">大量データでSUMPRODUCTが重いときはどうすればいいですか？</a></li><li><a href="#toc29" tabindex="0">空白セルがあるとエラーになりますか？</a></li></ol></li><li><a href="#toc30" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">Excelの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 数量」を入力してからSUM関数で合計しますよね。SUMPRODUCT関数なら数式1つで済むわけです。</p>



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



<ul class="wp-block-list"><li>複数の範囲を要素ごとに掛け算して合計する</li><li>条件に合うデータだけを集計する（条件付き集計）</li><li>複数の条件やOR条件を組み合わせた集計を行う</li><li>加重平均を求める</li><li>作業列を使わずにスマートに計算できる</li></ul>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>は「合計」が得意です。ただ、「掛けてから合計」はできません。そんな場面で活躍するのがSUMPRODUCT関数です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SUMPRODUCT関数はExcelの全バージョンとMicrosoft 365で使えます。Googleスプレッドシートでも同じ構文で利用可能です。</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, 配列3, &#8230;</td><td>任意</td><td>掛け合わせたい追加の配列（最大255個まで）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">引数が1つだけの場合は、その範囲の合計を返します。<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>と同じ動作ですね。引数を2つ以上指定すると、対応する位置の要素同士を掛け算してから合計します。</p>



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>SUMPRODUCT関数は配列を扱う関数ですが、Ctrl+Shift+Enterでの確定は不要です。通常のEnterで確定できます。配列数式の入門としても使いやすい関数ですよ。</p></blockquote>



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



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



<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>1行目</td><td>商品名</td><td>単価</td><td>数量</td></tr><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)</code></pre>



<p class="wp-block-paragraph">この数式は内部で次のように計算しています。</p>



<pre class="wp-block-code"><code>(200 x 50) + (150 x 80) + (100 x 30) + (300 x 20)
= 10,000 + 12,000 + 3,000 + 6,000
= 31,000</code></pre>



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



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



<h3 class="wp-block-heading"><span id="toc6">「掛けてから合計」が1つの数式で済む仕組み</span></h3>



<p class="wp-block-paragraph">なぜ作業列が不要なのでしょうか。SUMPRODUCT関数は、内部で「配列」という見えない計算用のリストを使っているからです。</p>



<p class="wp-block-paragraph"><code>B2:B5</code> は <code>{200, 150, 100, 300}</code> という配列になります。同じように <code>C2:C5</code> は <code>{50, 80, 30, 20}</code> という配列です。SUMPRODUCT関数はこの2つを、対応する位置同士で掛け算します。</p>



<pre class="wp-block-code"><code>{200, 150, 100, 300} x {50, 80, 30, 20}
= {10000, 12000, 3000, 6000}   ← 掛け算の途中結果（配列）
→ 合計 31,000</code></pre>



<p class="wp-block-paragraph">この「掛け算の途中結果」が、本来なら作業列に表示される値です。SUMPRODUCT関数は、それをセルに書き出さず内部で処理してから合計します。だから作業列が要らないわけですね。</p>



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



<p class="wp-block-paragraph">SUMPRODUCT関数の真価が発揮されるのは、条件付き集計の場面です。「特定の条件に合うデータだけを集計したい」ときに大活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">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>2,000</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>



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



<p class="wp-block-paragraph">ポイントは <code>(B2:B5="文房具")</code> の部分です。この条件判定は、各セルが「文房具」かどうかを <code>TRUE(1)</code> / <code>FALSE(0)</code> で返します。結果を掛け算に含めることで、条件に合わない行が自動的に0になる仕組みです。</p>



<pre class="wp-block-code"><code>(TRUE x 200 x 50) + (TRUE x 150 x 80) + (FALSE x 2000 x 10) + (TRUE x 300 x 20)
= (1 x 200 x 50) + (1 x 150 x 80) + (0 x 2000 x 10) + (1 x 300 x 20)
= 10,000 + 12,000 + 0 + 6,000
= 28,000</code></pre>



<p class="wp-block-paragraph">結果は <strong>28,000</strong> です。「マウス」はカテゴリがPC周辺機器なので、<code>FALSE(0)</code> が掛かって除外されました。</p>



<h3 class="wp-block-heading"><span id="toc9">複数条件（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>*</code> でつなぐだけ。条件をいくつ増やしても同じパターンで追加できます。</p>



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



<pre class="wp-block-code"><code>文房具かつ単価200以上のデータ:
  ノート: 文房具=TRUE, 200&gt;=200=TRUE → 1 x 1 x 200 x 50 = 10,000
  ペン:   文房具=TRUE, 150&gt;=200=FALSE → 1 x 0 x 150 x 80 = 0
  マウス: PC周辺機器=FALSE             → 0 x ... = 0
  ファイル: 文房具=TRUE, 300&gt;=200=TRUE → 1 x 1 x 300 x 20 = 6,000

合計 = 10,000 + 0 + 0 + 6,000 = 16,000</code></pre>



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



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



<p class="wp-block-paragraph">「文房具」<strong>または</strong>「PC周辺機器」のデータを集計したい場合、<code>+</code> を使ってOR条件を作れます。</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> がAND条件、<code>+</code> がOR条件と覚えておくとわかりやすいですよ。</p>



<p class="wp-block-paragraph">ただし、OR条件のときはひとつ注意点があります。両方の条件に当てはまるデータがある場合、合計値が2倍になってしまいます。これを防ぐには、条件の結果を <code>>0</code> で判定する方法がおすすめです。</p>



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



<p class="wp-block-paragraph"><code>>0</code> を加えることで、条件の合計が1以上なら <code>TRUE(1)</code> に統一されます。重複カウントの心配がなくなりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>OR条件は<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>では直接書けません。OR条件が必要なときこそ、SUMPRODUCT関数の出番です。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc11">知っておくと便利なダブルマイナス（&#8211;）</span></h2>



<p class="wp-block-paragraph">SUMPRODUCT関数の数式を調べていると、<code>--(条件)</code> のように先頭にマイナスが2つ並んだ書き方をよく見かけます。これは「ダブルマイナス」と呼ばれるテクニックです。</p>



<p class="wp-block-paragraph">役割は、条件式が返す <code>TRUE/FALSE</code> を <code>1/0</code> の数値に変換することです。</p>



<p class="wp-block-paragraph">なぜ変換が必要なのでしょうか。SUMPRODUCT関数は、<code>TRUE/FALSE</code> のままでは足し算してくれないからです。マイナスを2回掛けると、<code>TRUE</code> は <code>1</code>、<code>FALSE</code> は <code>0</code> になります。</p>



<pre class="wp-block-code"><code>--(B2:B5=&quot;文房具&quot;)
= {TRUE, TRUE, FALSE, TRUE} に -- を適用
= {1, 1, 0, 1}</code></pre>



<p class="wp-block-paragraph">たとえば、集計範囲を掛けずに「文房具の件数」だけを数えたい場合は次のとおりです。</p>



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



<p class="wp-block-paragraph">結果は <strong>3</strong> （ノート・ペン・ファイル）です。</p>



<p class="wp-block-paragraph"><code>--(条件)</code> と <code>(条件)*1</code> は同じ結果になります。どちらを使っても構いません。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B5=&quot;文房具&quot;)*1)   ← --(条件) と同じ意味</code></pre>



<p class="wp-block-paragraph">条件式に集計範囲を掛けている数式（<code>(条件)*金額</code> など）では、掛け算の過程で自動的に <code>1/0</code> へ変換されます。そのため、ダブルマイナスは不要です。集計範囲を掛けない「件数カウント」のときだけ覚えておけば十分ですよ。</p>



<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">月別×商品別のクロス集計をする</span></h3>



<p class="wp-block-paragraph">「4月のノートの売上だけ知りたい」のように、2つの条件で絞り込む場面はよくあります。</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>1行目</td><td>月</td><td>商品</td><td>金額</td></tr><tr><td>2行目</td><td>4月</td><td>ノート</td><td>10,000</td></tr><tr><td>3行目</td><td>4月</td><td>ペン</td><td>8,000</td></tr><tr><td>4行目</td><td>5月</td><td>ノート</td><td>12,000</td></tr><tr><td>5行目</td><td>4月</td><td>ノート</td><td>6,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「4月」かつ「ノート」の金額合計を出す数式はこうなります。</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">該当するのは2行目（10,000）と5行目（6,000）です。合計は <strong>16,000</strong> になります。月の見出しと商品の見出しを参照すれば、クロス集計表がそのまま作れますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">「○○を含む」の部分一致で集計する</span></h3>



<p class="wp-block-paragraph">「商品名に『ペン』を含むものだけ集計したい」。こんな部分一致の条件にも対応できます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(SEARCH(&quot;ペン&quot;, B2:B5))*C2:C5)</code></pre>



<p class="wp-block-paragraph">SEARCH関数（文字列の位置を探す関数）は、文字が見つかれば位置の数値を返します。見つからなければエラーになります。それをISNUMBER関数で <code>TRUE/FALSE</code> に変換し、見つかった行だけを集計する仕組みです。</p>



<p class="wp-block-paragraph">「ボールペン」「サインペン」のように、表記がバラついていてもまとめて集計できるのが便利です。</p>



<h3 class="wp-block-heading"><span id="toc15">チェック列（フラグ）で集計する</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>1行目</td><td>項目</td><td>対応</td><td>金額</td></tr><tr><td>2行目</td><td>A社</td><td>〇</td><td>50,000</td></tr><tr><td>3行目</td><td>B社</td><td>&nbsp;</td><td>30,000</td></tr><tr><td>4行目</td><td>C社</td><td>〇</td><td>20,000</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「〇」が入った行だけの金額合計はこうなります。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B4=&quot;〇&quot;)*C2:C4)</code></pre>



<p class="wp-block-paragraph">結果は <strong>70,000</strong> （A社とC社）です。空白の行（B社）は条件に合わないので除外されます。チェックボックス運用のシートでそのまま使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc16">複数条件でカウントする</span></h3>



<p class="wp-block-paragraph">SUMPRODUCT関数は件数のカウントにも使えます。集計範囲を掛けずに、条件だけを掛け合わせるのがポイントです。</p>



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



<p class="wp-block-paragraph">この数式は「文房具かつ単価200以上」のデータを数えます。結果は <strong>2</strong> （ノートとファイル）です。</p>



<p class="wp-block-paragraph">単純な1条件のカウントなら<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>で十分です。ただ、複数条件をANDやORで柔軟に組み合わせたいときは、SUMPRODUCT関数のほうが書きやすいですよ。</p>



<h2 class="wp-block-heading"><span id="toc17">SUMPRODUCT関数で加重平均を求める</span></h2>



<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>1行目</td><td>科目</td><td>点数</td><td>配点</td></tr><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>



<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 x 3) + (90 x 2) + (70 x 1) = 240 + 180 + 70 = 490
分母: 3 + 2 + 1 = 6
加重平均: 490 / 6 ≒ 81.7</code></pre>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-average/">AVERAGE関数</a>の単純平均は <code>(80+90+70)/3 = 80</code> です。一方、配点を考慮した加重平均は <strong>約81.7</strong> になります。配点の大きい数学の比重が高くなるわけですね。</p>



<h2 class="wp-block-heading"><span id="toc18">SUMPRODUCT関数でよくあるエラーと対処法</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><code>#VALUE!</code> エラー</td><td>配列のサイズ（行数・列数）が不一致</td><td>すべての配列を同じサイズに揃える</td></tr><tr><td>結果が0または小さすぎる</td><td>数値が文字列として格納されている</td><td>数値に変換、またはVALUE関数で変換</td></tr><tr><td>結果がおかしい</td><td>条件式のカッコ抜け</td><td>条件は必ず <code>(条件)</code> でカッコ囲み</td></tr><tr><td>OR条件で値が2倍</td><td>両条件を満たす行の重複カウント</td><td><code>((条件A)+(条件B)>0)</code> で正規化</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ここから、特につまずきやすい3つを詳しく見ていきます。</p>



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



<p class="wp-block-paragraph"><strong>原因</strong>: 指定した配列のサイズ（行数・列数）が一致していません。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A1:A5, B1:B3)  ← 5行と3行で不一致</code></pre>



<p class="wp-block-paragraph"><strong>対処法</strong>: すべての配列を同じサイズに揃えましょう。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(A1:A5, B1:B5)  ← 両方5行に揃える</code></pre>



<p class="wp-block-paragraph">データを追加したあとは特に要注意です。範囲の行数がずれていないか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc20">数値が入っているのに結果が0になる</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: セルの値が「数値に見える文字列」になっている可能性があります。CSVファイルからデータを取り込んだ場合によく起きるトラブルです。</p>



<p class="wp-block-paragraph">セルの左上に緑の三角マークが表示されていたら、文字列として格納されているサインです。</p>



<p class="wp-block-paragraph"><strong>対処法</strong>: 対象セルを選択して「数値に変換」を実行しましょう。または、VALUE関数（文字列を数値に変換する関数）で明示的に変換してから使います。</p>



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



<h3 class="wp-block-heading"><span id="toc21">条件式で結果がおかしい</span></h3>



<p class="wp-block-paragraph"><strong>原因</strong>: 条件部分のカッコが抜けています。</p>



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



<p class="wp-block-paragraph"><strong>対処法</strong>: 条件部分は必ずカッコで囲みましょう。</p>



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



<p class="wp-block-paragraph">カッコを忘れると、<code>"文房具"*C2:C5</code> が先に評価されてしまいます。<code>#VALUE!</code> エラーになることもあります。条件式には必ずカッコを付ける、と覚えておくと安心ですよ。</p>



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



<p class="wp-block-paragraph">SUMPRODUCT関数と似た機能を持つ関数との違いを整理しておきましょう。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SUMIF関数</th><th>SUMIFS関数</th><th>SUMPRODUCT関数</th></tr></thead><tbody><tr><td>条件の数</td><td>1つ</td><td>複数（AND）</td><td>複数（AND + OR）</td></tr><tr><td>掛け算+合計</td><td>できない</td><td>できない</td><td>できる</td></tr><tr><td>OR条件</td><td>できない</td><td>直接はできない</td><td><code>+</code> で簡単に書ける</td></tr><tr><td>計算式を条件に使う</td><td>できない</td><td>できない</td><td>できる</td></tr><tr><td>書きやすさ</td><td>シンプル</td><td>わかりやすい</td><td>やや複雑</td></tr><tr><td>処理速度</td><td>速い</td><td>速い</td><td>やや遅い（大量データ時）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>条件が1つだけ</strong> → <a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数</a>がシンプルでおすすめ</li><li><strong>複数条件（AND）</strong> → <a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>が直感的</li><li><strong>OR条件が必要</strong> → SUMPRODUCT関数の出番</li><li><strong>「掛けてから合計」が必要</strong> → SUMPRODUCT関数一択</li><li><strong>計算式を条件にしたい</strong> → SUMPRODUCT関数が最適</li></ul>



<p class="wp-block-paragraph">より詳しい比較は「<a href="https://mashukabu.com/excel-sumif-sumifs-sumproduct-comparison/">SUMIF・SUMIFS・SUMPRODUCTの使い分け｜条件付き集計を完全攻略</a>」で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc23">PRODUCT関数との違い</span></h2>



<p class="wp-block-paragraph">名前が似ているPRODUCT関数とも比べておきましょう。両者は役割がはっきり違います。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-product/">PRODUCT関数</a>は「指定した範囲の数値を全部掛け算する」関数です。一方、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 x 3 x 4 = 24          ← 1つの範囲を全部掛ける
SUMPRODUCT(B2:B4, C2:C4) = (2x5)+(3x6)+(4x7) = 56   ← 行ごとに掛けて合計</code></pre>



<p class="wp-block-paragraph">PRODUCT関数は「掛け算だけ」、SUMPRODUCT関数は「行ごとに掛けてから合計」。この違いを押さえておけば、名前で混乱することはありませんよ。</p>



<h2 class="wp-block-heading"><span id="toc24">SUMPRODUCT関数のよくある質問（FAQ）</span></h2>



<h3 class="wp-block-heading"><span id="toc25">SUMPRODUCTは配列数式ですか？Ctrl+Shift+Enterは必要ですか？</span></h3>



<p class="wp-block-paragraph">SUMPRODUCT関数は内部で配列を扱いますが、Ctrl+Shift+Enterでの確定は不要です。通常のEnterで確定できます。配列数式に苦手意識がある人でも使いやすい関数ですよ。</p>



<h3 class="wp-block-heading"><span id="toc26">「&#8211;」（ダブルマイナス）は必ず必要ですか？</span></h3>



<p class="wp-block-paragraph">集計範囲を掛けている数式では不要です。掛け算の過程で <code>TRUE/FALSE</code> が自動的に <code>1/0</code> に変わるからです。ダブルマイナスが必要なのは、集計範囲を掛けない「件数カウント」のときだけです。</p>



<h3 class="wp-block-heading"><span id="toc27">Googleスプレッドシートでも使えますか？</span></h3>



<p class="wp-block-paragraph">使えます。SUMPRODUCT関数は同じ名前・同じ構文でGoogleスプレッドシートでも利用できます。Excelで作った数式をそのままコピーしても動きますよ。</p>



<h3 class="wp-block-heading"><span id="toc28">大量データでSUMPRODUCTが重いときはどうすればいいですか？</span></h3>



<p class="wp-block-paragraph">範囲を必要最小限に絞るのが基本です。<code>A:A</code> のような列全体の参照は避け、<code>A2:A1000</code> のように実データの範囲を指定しましょう。単純なAND条件だけなら、処理が速い<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>に置き換えるのも有効です。</p>



<h3 class="wp-block-heading"><span id="toc29">空白セルがあるとエラーになりますか？</span></h3>



<p class="wp-block-paragraph">エラーにはなりません。SUMPRODUCT関数は、配列内の文字列や空白を <code>0</code> として扱います。ただし掛け算の途中で意図せず0になることがあるので、計算結果が想定と合わないときは空白セルの有無を確認してみてください。</p>



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



<p class="wp-block-paragraph">この記事では、ExcelのSUMPRODUCT関数の使い方を基本から応用まで解説しました。</p>



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



<ul class="wp-block-list"><li>SUMPRODUCT関数は「掛け算してから合計」を1つの数式で実行できる</li><li>条件付き集計は <code>(条件式)*集計範囲</code> の形で書く</li><li>複数条件（AND）は <code>(条件1)<em>(条件2)</code> のように <code></em></code> でつなぐ</li><li>OR条件は <code>(条件1)+(条件2)</code> のように <code>+</code> でつなぐ（<code>>0</code> で重複防止）</li><li>件数カウントは <code>--(条件)</code> または <code>(条件)*1</code> で <code>1/0</code> に変換する</li><li>加重平均は <code>SUMPRODUCT(値, 重み) / SUM(重み)</code> で求められる</li><li>配列のサイズは必ず揃える（<code>#VALUE!</code> エラーの原因になる）</li><li>単純な条件合計にはSUMIF・SUMIFS、柔軟な条件合計にはSUMPRODUCTと使い分けよう</li></ul>



<p class="wp-block-paragraph">最初はちょっと取っつきにくく感じるかもしれません。でも <code>(条件)*範囲</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>
