<?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>OR条件 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/or%e6%9d%a1%e4%bb%b6/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>OR条件 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>SUMIF・SUMIFS・SUMPRODUCTの使い分け｜条件付き集計を完全攻略</title>
		<link>https://mashukabu.com/excel-sumif-sumifs-sumproduct-comparison/</link>
					<comments>https://mashukabu.com/excel-sumif-sumifs-sumproduct-comparison/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 12:22:04 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[OR条件]]></category>
		<category><![CDATA[SUMIF]]></category>
		<category><![CDATA[SUMIFS]]></category>
		<category><![CDATA[SUMPRODUCT]]></category>
		<category><![CDATA[使い分け]]></category>
		<category><![CDATA[条件付き集計]]></category>
		<category><![CDATA[比較]]></category>
		<category><![CDATA[複数条件]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4015</guid>

					<description><![CDATA[ExcelのSUMIF・SUMIFS・SUMPRODUCTの違いと使い分けを比較表で解説。条件の数・OR条件・日付範囲・ワイルドカードの4観点から最適な関数を選べるフローチャート付き。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「SUMIF・SUMIFS・SUMPRODUCTのどれを使えばいいの？」。そんな悩み、ありませんか？</p>



<p class="wp-block-paragraph">3つの関数は似ているようで、得意な場面がそれぞれ違います。間違った関数を選ぶと、数式がムダに複雑になります。</p>



<p class="wp-block-paragraph">この記事では4つの観点で3関数を比較します。選び方フローチャートも用意したので、もう迷いませんよ。</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">SUMIF・SUMIFS・SUMPRODUCTの違い【結論】</a><ol><li><a href="#toc2" tabindex="0">3関数の機能比較一覧表</a></li><li><a href="#toc3" tabindex="0">選択フローチャート</a></li></ol></li><li><a href="#toc4" tabindex="0">SUMIF関数の特徴と基本の使い方</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">使用例</a></li><li><a href="#toc7" tabindex="0">得意な場面・苦手な場面</a></li></ol></li><li><a href="#toc8" tabindex="0">SUMIFS関数の特徴と基本の使い方</a><ol><li><a href="#toc9" tabindex="0">基本構文</a></li><li><a href="#toc10" tabindex="0">使用例</a></li><li><a href="#toc11" tabindex="0">得意な場面・苦手な場面</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">使用例</a></li><li><a href="#toc15" tabindex="0">得意な場面・苦手な場面</a></li></ol></li><li><a href="#toc16" tabindex="0">条件付き集計の4つの観点で徹底比較</a><ol><li><a href="#toc17" tabindex="0">1. 条件の数による使い分け</a></li><li><a href="#toc18" tabindex="0">2. OR条件への対応</a></li><li><a href="#toc19" tabindex="0">3. 日付範囲の指定</a></li><li><a href="#toc20" tabindex="0">4. ワイルドカードの使い方</a></li><li><a href="#toc21" tabindex="0">4観点の比較まとめ表</a></li></ol></li><li><a href="#toc22" tabindex="0">SUMIFSからSUMPRODUCTに条件付き集計を乗り換えるタイミング</a><ol><li><a href="#toc23" tabindex="0">OR条件が必要になったとき</a></li><li><a href="#toc24" tabindex="0">複数列の掛け算と条件付き集計を同時にしたいとき</a></li></ol></li><li><a href="#toc25" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc26" tabindex="0">まとめ</a><ol><li><a href="#toc27" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">SUMIF・SUMIFS・SUMPRODUCTの違い【結論】</span></h2>



<p class="wp-block-paragraph">まず結論です。3つの関数は「条件の複雑さ」で使い分けます。</p>



<ul class="wp-block-list"><li><strong>SUMIF</strong>: 条件が1つだけのシンプルな集計</li><li><strong>SUMIFS</strong>: 条件が2つ以上のAND条件（「かつ」）の集計</li><li><strong>SUMPRODUCT</strong>: OR条件（「または」）や計算式を含む高度な集計</li></ul>



<p class="wp-block-paragraph">条件が1つならSUMIF、2つ以上の「かつ」ならSUMIFSです。「または」が必要ならSUMPRODUCTを使います。</p>



<h3 class="wp-block-heading"><span id="toc2">3関数の機能比較一覧表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th><a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS</a></th><th><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT</a></th></tr></thead><tbody><tr><td>条件の数</td><td>1つだけ</td><td>複数（最大127組）</td><td>複数（実質無制限）</td></tr><tr><td>AND条件（かつ）</td><td>&#8212;</td><td>対応</td><td>対応</td></tr><tr><td>OR条件（または）</td><td>&#8212;</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><tr><td>計算式を条件に使う</td><td>非対応</td><td>非対応</td><td>対応</td></tr><tr><td>対応バージョン</td><td>Excel 2003以降</td><td>Excel 2007以降</td><td>Excel 2003以降</td></tr><tr><td>読み方</td><td>サムイフ</td><td>サムイフエス</td><td>サムプロダクト</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc3">選択フローチャート</span></h3>



<p class="wp-block-paragraph">どの関数を使うか迷ったら、次の順番で判断してみてください。</p>



<ol class="wp-block-list"><li><strong>条件は1つだけ？</strong> → <strong>SUMIF</strong> を使う</li><li><strong>条件が2つ以上で、すべて「かつ」？</strong> → <strong>SUMIFS</strong> を使う</li><li><strong>「または」が含まれる？</strong> → <strong>SUMPRODUCT</strong> を使う</li><li><strong>計算結果を条件にしたい？</strong> → <strong>SUMPRODUCT</strong> を使う</li></ol>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>迷ったらSUMIFSから試そう</strong></p><p>SUMIFS関数は条件1つでも使えます。「条件が増えるかもしれない」場面では、最初からSUMIFSを使っておくと後から条件を追加しやすいですよ。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">SUMIF関数の特徴と基本の使い方</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数</a>は、条件を1つ指定して合計する関数です。</p>



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



<pre class="wp-block-code"><code>=SUMIF(範囲, 検索条件, [合計範囲])</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>範囲</td><td>必須</td><td>条件を検索するセル範囲</td></tr><tr><td>検索条件</td><td>必須</td><td>合計対象を絞り込む条件</td></tr><tr><td>合計範囲</td><td>任意</td><td>実際に合計するセル範囲（省略時は「範囲」を合計）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc6">使用例</span></h3>



<p class="wp-block-paragraph">次の売上データで「りんご」の合計を求めます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（商品名）</th><th>B列（金額）</th></tr></thead><tbody><tr><td>りんご</td><td>100</td></tr><tr><td>みかん</td><td>200</td></tr><tr><td>りんご</td><td>150</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=SUMIF(A2:A4,&quot;りんご&quot;,B2:B4)</code></pre>



<p class="wp-block-paragraph">結果は 100 + 150 = <strong>250</strong> です。</p>



<h3 class="wp-block-heading"><span id="toc7">得意な場面・苦手な場面</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>得意</th><th>苦手</th></tr></thead><tbody><tr><td>条件1つの合計</td><td>複数条件の組み合わせ</td></tr><tr><td>ワイルドカードで部分一致</td><td>OR条件（「または」）</td></tr><tr><td>比較演算子（>=、<>）</td><td>計算式を条件にする</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">条件が2つ以上になったら<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>に切り替えましょう。</p>



<h2 class="wp-block-heading"><span id="toc8">SUMIFS関数の特徴と基本の使い方</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>は、複数の条件をすべて満たすデータだけを合計する関数です。</p>



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



<pre class="wp-block-code"><code>=SUMIFS(合計対象範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th></tr></thead><tbody><tr><td>合計対象範囲</td><td>必須</td><td>合計したい数値の範囲</td></tr><tr><td>条件範囲1</td><td>必須</td><td>1つ目の条件を判定する範囲</td></tr><tr><td>条件1</td><td>必須</td><td>1つ目の条件</td></tr><tr><td>条件範囲2, 条件2</td><td>任意</td><td>2つ目以降の条件ペア（最大127組）</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>引数の順番に注意</strong></p><p>SUMIFは「範囲→条件→合計範囲」、SUMIFSは「合計範囲→条件範囲→条件」の順です。合計範囲の位置が逆なのでつまずきやすいポイントです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc10">使用例</span></h3>



<p class="wp-block-paragraph">次の売上データで「営業部の、4月の売上合計」を求めます。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（日付）</th><th>B列（部署）</th><th>C列（金額）</th></tr></thead><tbody><tr><td>2024/4/1</td><td>営業部</td><td>50000</td></tr><tr><td>2024/4/3</td><td>総務部</td><td>30000</td></tr><tr><td>2024/4/5</td><td>営業部</td><td>80000</td></tr><tr><td>2024/5/2</td><td>営業部</td><td>60000</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=SUMIFS(C2:C5, B2:B5, &quot;営業部&quot;, A2:A5, &quot;&gt;=&quot;&amp;DATE(2024,4,1), A2:A5, &quot;&lt;&quot;&amp;DATE(2024,5,1))</code></pre>



<p class="wp-block-paragraph">B列が「営業部」かつA列が4月の行だけを合計します。結果は 50000 + 80000 = <strong>130,000</strong> です。</p>



<h3 class="wp-block-heading"><span id="toc11">得意な場面・苦手な場面</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>得意</th><th>苦手</th></tr></thead><tbody><tr><td>複数条件のAND合計</td><td>OR条件（「または」）</td></tr><tr><td>ワイルドカードで部分一致</td><td>計算式を条件にする</td></tr><tr><td>日付範囲指定</td><td>配列の掛け算</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">「営業部<strong>または</strong>総務部」のように、OR条件が必要な場合はSUMPRODUCT関数の出番です。</p>



<h2 class="wp-block-heading"><span id="toc12">SUMPRODUCT関数の特徴と基本の使い方</span></h2>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a>は、配列の掛け算と合計を1つの数式で処理する関数です。条件式を組み込めば条件付き集計もできます。</p>



<h3 class="wp-block-heading"><span id="toc13">基本構文</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">条件付き集計のときは、条件式を <code>(条件)*</code> の形で掛け算に含めます。条件に合わない行は0になり、自動的に除外されます。</p>



<h3 class="wp-block-heading"><span id="toc14">使用例</span></h3>



<p class="wp-block-paragraph">先ほどと同じデータで「営業部の売上合計」を求めます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B5=&quot;営業部&quot;)*C2:C5)</code></pre>



<p class="wp-block-paragraph"><code>(B2:B5="営業部")</code> が各行でTRUE(1) / FALSE(0)を返します。FALSEの行は0倍されて自動的に除外されます。</p>



<h3 class="wp-block-heading"><span id="toc15">得意な場面・苦手な場面</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>得意</th><th>苦手</th></tr></thead><tbody><tr><td>OR条件（「または」）</td><td>ワイルドカード（*、?）</td></tr><tr><td>計算式を条件にする</td><td>部分一致検索</td></tr><tr><td>配列の掛け算+合計</td><td>SUMIFSより数式が長い</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">ワイルドカードを使いたい場合は、SUMIF/SUMIFSのほうが手軽に書けます。</p>



<h2 class="wp-block-heading"><span id="toc16">条件付き集計の4つの観点で徹底比較</span></h2>



<p class="wp-block-paragraph">ここからは、実務でよく使う4つのシーンごとに、3関数の具体的な数式を比較します。</p>



<p class="wp-block-paragraph">次のサンプルデータを使います。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列（日付）</th><th>B列（部署）</th><th>C列（商品）</th><th>D列（金額）</th></tr></thead><tbody><tr><td>2024/4/1</td><td>営業部</td><td>プランA</td><td>50000</td></tr><tr><td>2024/4/3</td><td>総務部</td><td>プランB</td><td>30000</td></tr><tr><td>2024/4/5</td><td>営業部</td><td>プランA</td><td>80000</td></tr><tr><td>2024/4/10</td><td>総務部</td><td>プランC</td><td>45000</td></tr><tr><td>2024/5/2</td><td>営業部</td><td>プランB</td><td>60000</td></tr><tr><td>2024/5/8</td><td>総務部</td><td>プランA</td><td>35000</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc17">1. 条件の数による使い分け</span></h3>



<p class="wp-block-paragraph"><strong>条件1つ</strong>: 「営業部」の合計</p>



<pre class="wp-block-code"><code>=SUMIF(B2:B7,&quot;営業部&quot;,D2:D7)
=SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;)
=SUMPRODUCT((B2:B7=&quot;営業部&quot;)*D2:D7)</code></pre>



<p class="wp-block-paragraph">3つとも結果は同じ <strong>190,000</strong> です。条件が1つならSUMIFが一番シンプルですね。</p>



<p class="wp-block-paragraph"><strong>条件2つ</strong>: 「営業部」かつ「プランA」の合計</p>



<pre class="wp-block-code"><code>=SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;,C2:C7,&quot;プランA&quot;)
=SUMPRODUCT((B2:B7=&quot;営業部&quot;)*(C2:C7=&quot;プランA&quot;)*D2:D7)</code></pre>



<p class="wp-block-paragraph">結果は <strong>130,000</strong> です。SUMIF関数は条件が1つだけなので使えません。SUMIFSなら条件ペアを並べるだけです。</p>



<h3 class="wp-block-heading"><span id="toc18">2. OR条件への対応</span></h3>



<p class="wp-block-paragraph"><strong>「営業部」または「総務部」の合計</strong>（この例では全部署が対象になりますが、3部署以上あるケースを想定してください）</p>



<p class="wp-block-paragraph">SUMIFSには「または」を直接指定する方法がありません。対処法は2つあります。</p>



<p class="wp-block-paragraph"><strong>方法1: SUMIFS関数を足し算する</strong></p>



<pre class="wp-block-code"><code>=SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;)+SUMIFS(D2:D7,B2:B7,&quot;総務部&quot;)</code></pre>



<p class="wp-block-paragraph">条件が2つ程度ならこの書き方でも問題ありません。ただし3つ以上になると数式が長くなります。</p>



<p class="wp-block-paragraph"><strong>方法2: SUMPRODUCT関数を使う</strong></p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B7=&quot;営業部&quot;)+(B2:B7=&quot;総務部&quot;))*D2:D7)</code></pre>



<p class="wp-block-paragraph"><code>+</code> でOR条件をつなげるだけです。条件が増えても数式の構造は変わりません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>SUMPRODUCTのOR条件の仕組み</strong></p><p><code>(条件1)+(条件2)</code> は、どちらかがTRUE(1)なら合計が1以上になります。これを集計範囲と掛けることで、いずれかの条件に一致する行が集計対象になります。ただしSUMPRODUCTのOR条件では、両方の条件に一致する行が二重カウントされる可能性があります。重複を防ぐには <code>((条件1)+(条件2)>0)</code> と書くのが安全です。</p></blockquote>



<p class="wp-block-paragraph"><strong>AND + OR の組み合わせ</strong>: 「（営業部または総務部）かつプランA」の合計</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(((B2:B7=&quot;営業部&quot;)+(B2:B7=&quot;総務部&quot;))*(C2:C7=&quot;プランA&quot;)*D2:D7)</code></pre>



<p class="wp-block-paragraph">このような複合条件はSUMIFSだけでは書けません。SUMPRODUCT関数の出番です。</p>



<h3 class="wp-block-heading"><span id="toc19">3. 日付範囲の指定</span></h3>



<p class="wp-block-paragraph"><strong>2024年4月1日から4月30日までの合計</strong></p>



<p class="wp-block-paragraph">3関数とも日付範囲の指定に対応しています。</p>



<pre class="wp-block-code"><code>=SUMIFS(D2:D7,A2:A7,&quot;&gt;=&quot;&amp;DATE(2024,4,1),A2:A7,&quot;&lt;&quot;&amp;DATE(2024,5,1))
=SUMPRODUCT((A2:A7&gt;=DATE(2024,4,1))*(A2:A7&lt;DATE(2024,5,1))*D2:D7)</code></pre>



<p class="wp-block-paragraph">SUMIF関数で日付範囲を指定する場合は、2つのSUMIFの引き算になります。</p>



<pre class="wp-block-code"><code>=SUMIF(A2:A7,&quot;&lt;&quot;&amp;DATE(2024,5,1),D2:D7)-SUMIF(A2:A7,&quot;&lt;&quot;&amp;DATE(2024,4,1),D2:D7)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>日付範囲指定はSUMIFSが一番シンプル</strong></p><p>日付範囲の指定では、SUMIFSが「以上」「未満」を条件ペアとして書けるので最も読みやすいです。日付の計算方法について詳しく知りたい方は、<a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</a>も参考にしてみてください。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc20">4. ワイルドカードの使い方</span></h3>



<p class="wp-block-paragraph"><strong>「プラン」で始まる商品の合計</strong></p>



<pre class="wp-block-code"><code>=SUMIF(C2:C7,&quot;プラン*&quot;,D2:D7)
=SUMIFS(D2:D7,C2:C7,&quot;プラン*&quot;)</code></pre>



<p class="wp-block-paragraph">結果は <strong>300,000</strong>（全行が該当）です。</p>



<p class="wp-block-paragraph">SUMPRODUCT関数ではワイルドカードが使えません。代わりにFIND関数やSEARCH関数を組み合わせます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT(ISNUMBER(FIND(&quot;プラン&quot;,C2:C7))*D2:D7)</code></pre>



<p class="wp-block-paragraph">ワイルドカードを使った部分一致の集計は、SUMIF/SUMIFSのほうが圧倒的にシンプルですね。</p>



<h3 class="wp-block-heading"><span id="toc21">4観点の比較まとめ表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>シーン</th><th>おすすめ関数</th><th>理由</th></tr></thead><tbody><tr><td>条件1つ</td><td>SUMIF</td><td>引数が少なくシンプル</td></tr><tr><td>複数条件（AND）</td><td>SUMIFS</td><td>条件ペアを並べるだけ</td></tr><tr><td>OR条件（または）</td><td>SUMPRODUCT</td><td><code>+</code> で条件をつなげるだけ</td></tr><tr><td>AND + OR の複合条件</td><td>SUMPRODUCT</td><td><code>*</code> と <code>+</code> で自由に組める</td></tr><tr><td>日付範囲</td><td>SUMIFS</td><td>以上・未満の条件ペアで読みやすい</td></tr><tr><td>ワイルドカード（部分一致）</td><td>SUMIF / SUMIFS</td><td>SUMPRODUCT非対応</td></tr><tr><td>計算結果を条件にする</td><td>SUMPRODUCT</td><td>配列で計算式が使える</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc22">SUMIFSからSUMPRODUCTに条件付き集計を乗り換えるタイミング</span></h2>



<p class="wp-block-paragraph">SUMIFSで集計していたけど、要件が変わって対応できなくなった。そんなときがSUMPRODUCTの出番です。</p>



<h3 class="wp-block-heading"><span id="toc23">OR条件が必要になったとき</span></h3>



<p class="wp-block-paragraph">典型的な移行シナリオです。</p>



<p class="wp-block-paragraph"><strong>Before（SUMIFSの足し算）</strong>:</p>



<pre class="wp-block-code"><code>=SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;,C2:C7,&quot;プランA&quot;)
+SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;,C2:C7,&quot;プランB&quot;)
+SUMIFS(D2:D7,B2:B7,&quot;営業部&quot;,C2:C7,&quot;プランC&quot;)</code></pre>



<p class="wp-block-paragraph">プランが3つなので3行になっています。プランが増えるたびに行が増えて管理が大変です。</p>



<p class="wp-block-paragraph"><strong>After（SUMPRODUCTに乗り換え）</strong>:</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B7=&quot;営業部&quot;)*((C2:C7=&quot;プランA&quot;)+(C2:C7=&quot;プランB&quot;)+(C2:C7=&quot;プランC&quot;))*D2:D7)</code></pre>



<p class="wp-block-paragraph">1つの数式にまとまりました。AND条件（営業部）は <code>*</code>、OR条件（プランA/B/C）は <code>+</code> でつなぎます。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>乗り換えの目安</strong></p><p>OR条件が2つ以下ならSUMIFSの足し算でも管理できます。3つ以上になったらSUMPRODUCTに切り替えるのがおすすめです。</p></blockquote>



<h3 class="wp-block-heading"><span id="toc24">複数列の掛け算と条件付き集計を同時にしたいとき</span></h3>



<p class="wp-block-paragraph">「単価 x 数量」の合計を条件付きで出したい場面です。</p>



<figure class="wp-block-table"><table><thead><tr><th>B列（部署）</th><th>C列（単価）</th><th>D列（数量）</th></tr></thead><tbody><tr><td>営業部</td><td>1000</td><td>50</td></tr><tr><td>総務部</td><td>2000</td><td>30</td></tr><tr><td>営業部</td><td>1500</td><td>20</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>SUMIFS関数の場合</strong>: 作業列が必要</p>



<pre class="wp-block-code"><code>E2セル: =C2*D2（作業列で単価x数量を計算）
集計: =SUMIFS(E2:E4,B2:B4,&quot;営業部&quot;)</code></pre>



<p class="wp-block-paragraph"><strong>SUMPRODUCT関数の場合</strong>: 作業列なし</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((B2:B4=&quot;営業部&quot;)*C2:C4*D2:D4)</code></pre>



<p class="wp-block-paragraph">作業列を使わずに1つの数式で完結できるのがSUMPRODUCTの強みです。</p>



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



<p class="wp-block-paragraph">3関数で共通して起きやすいエラーをまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>結果が0になる</td><td>条件の文字列に余分なスペース</td><td><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数</a>でスペース除去</td></tr><tr><td>結果が0になる</td><td>全角・半角の不一致</td><td>ASC関数/JIS関数で統一</td></tr><tr><td>結果が0になる</td><td>数値が文字列として保存されている</td><td><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数</a>で変換</td></tr><tr><td>#VALUE!エラー</td><td>範囲のサイズ（行数）が不一致</td><td>すべての範囲を同じ行数に揃える</td></tr><tr><td>#VALUE!エラー</td><td>検索条件が255文字を超えている</td><td>条件を短くするかセル参照に変更</td></tr><tr><td>期待値と合わない</td><td>SUMIFSの引数順を間違えている</td><td>合計範囲が<strong>最初</strong>の引数か確認</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>引数の順番ミスに注意</strong></p><p>SUMIFは「範囲→条件→合計範囲」、SUMIFSは「<strong>合計範囲</strong>→条件範囲→条件」です。SUMIF関数に慣れた方がSUMIFSを使い始めるとき、合計範囲の位置を間違えやすいので気をつけてください。</p></blockquote>



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



<p class="wp-block-paragraph">SUMIF・SUMIFS・SUMPRODUCTの使い分けをおさらいしましょう。</p>



<ul class="wp-block-list"><li><strong>SUMIF</strong>: 条件1つのシンプルな集計に最適</li><li><strong>SUMIFS</strong>: 複数条件のAND集計（「かつ」）に最適</li><li><strong>SUMPRODUCT</strong>: OR条件（「または」）や計算式を条件にする高度な集計に最適</li></ul>



<p class="wp-block-paragraph">迷ったときの判断基準は次の3ステップです。</p>



<ol class="wp-block-list"><li>条件が1つ → SUMIF</li><li>条件が2つ以上で「かつ」 → SUMIFS</li><li>「または」が含まれる → SUMPRODUCT</li></ol>



<p class="wp-block-paragraph">まずは<a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数</a>から始めましょう。条件が増えたら<a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数</a>へ切り替えます。OR条件が出てきたら<a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数</a>の出番です。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-count-functions-comparison/">COUNT系5関数の違いと使い分け早見表</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumif/">SUMIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumifs/">SUMIFS関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sumproduct/">SUMPRODUCT関数の使い方</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-if/">IF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-countifs/">COUNTIFS関数の使い方</a></li><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-countblank/">COUNTBLANK関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-trim/">TRIM関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-value/">VALUE関数の使い方</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-date/">DATE関数の使い方</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><li><a href="https://mashukabu.com/excel-error-value-list/">Excelエラー値一覧</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-sumif-sumifs-sumproduct-comparison/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-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">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>
