<?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/%E9%85%8D%E5%88%97/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 23 Apr 2026 11:31:47 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>配列 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>ExcelのMAKEARRAY関数の使い方｜配列を自由に生成</title>
		<link>https://mashukabu.com/excel-function-howto-use-makearray/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-makearray/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 15:36:49 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[LAMBDA]]></category>
		<category><![CDATA[MAKEARRAY関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=5916</guid>

					<description><![CDATA[ExcelのMAKEARRAY関数の使い方を中級者向けに解説。構文・引数の意味から九九表や連番配列などの実務パターン、SEQUENCE関数との違い・使い分け、LAMBDAヘルパー関数の比較表まで紹介します。Microsoft 365対応。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのMAKEARRAY関数とは？</a></li><li><a href="#toc2" tabindex="0">MAKEARRAY関数の書き方（構文と引数）</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">行番号(r)・列番号(c)の動き方</a></li></ol></li><li><a href="#toc6" tabindex="0">MAKEARRAY関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">定数で埋めた配列を作る</a></li><li><a href="#toc8" tabindex="0">九九表（掛け算表）を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">MAKEARRAY関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: 連番配列を生成する</a></li><li><a href="#toc11" tabindex="0">パターン2: 条件付き配列を作る（IF組み合わせ）</a></li><li><a href="#toc12" tabindex="0">パターン3: ランダムデータを生成する</a></li></ol></li><li><a href="#toc13" tabindex="0">SEQUENCE関数との違い・使い分け</a></li><li><a href="#toc14" tabindex="0">LAMBDAヘルパー関数の比較表</a></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc16" tabindex="0">#NAME?エラー</a></li><li><a href="#toc17" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc18" tabindex="0">#CALC!エラー</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>MAKEARRAY関数は、指定した行数・列数の配列をゼロから生成する関数です。「メイクアレイ」と読みます。名前の由来は「make（作る）+ array（配列）」です。</p>



<p>最大の特徴は、各セルの値を自分で決められることです。<a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数</a>の中に計算式を書きます。行番号と列番号に応じた値を自由に設定できます。</p>



<p>MAKEARRAY関数は「LAMBDAヘルパー関数」の1つです。<a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数</a>などの仲間がいます。他のヘルパー関数は既存の配列を加工します。一方、MAKEARRAYだけは「ゼロから配列を作る」役割を担います。</p>



<p>対応環境はMicrosoft 365およびExcel 2021です。Excel 2019以前では使用できません。</p>



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



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



<pre class="wp-block-code"><code>=MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))</code></pre>



<p>3つの引数はすべて必須です。</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>rows</td><td>はい</td><td>生成する配列の行数（1以上の整数）</td></tr><tr><td>cols</td><td>はい</td><td>生成する配列の列数（1以上の整数）</td></tr><tr><td>LAMBDA(r, c, 計算式)</td><td>はい</td><td>各セルの値を決定する関数</td></tr></tbody></table></figure>



<p>LAMBDA内の仮引数は必ず2つ必要です。1つ目に行番号、2つ目に列番号が渡されます。</p>



<h3 class="wp-block-heading"><span id="toc5">行番号(r)・列番号(c)の動き方</span></h3>



<p>行番号・列番号はどちらも1から始まります。たとえば3行2列の配列では、各セルに次のようにrとcが渡されます。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>列1 (c=1)</th><th>列2 (c=2)</th></tr></thead><tbody><tr><td>行1</td><td>r=1, c=1</td><td>r=1, c=2</td></tr><tr><td>行2</td><td>r=2, c=1</td><td>r=2, c=2</td></tr><tr><td>行3</td><td>r=3, c=1</td><td>r=3, c=2</td></tr></tbody></table></figure>



<p>このrとcを計算式の中で使うことで、各セルの値を自由に決められます。</p>



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



<h3 class="wp-block-heading"><span id="toc7">定数で埋めた配列を作る</span></h3>



<p>最もシンプルな例は、すべて同じ値で埋めた配列です。次の数式で3行4列のゼロ埋め配列を作れます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(3, 4, LAMBDA(r, c, 0))</code></pre>



<p>rやcを使わず、固定値の0を返しています。テンプレートの初期値を作りたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc8">九九表（掛け算表）を作る</span></h3>



<p>MAKEARRAY関数の定番パターンが九九表です。行番号と列番号を掛けるだけで完成します。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(9, 9, LAMBDA(r, c, r*c))</code></pre>



<p>r=3, c=7のセルには「3×7＝21」が入ります。行番号と列番号の組み合わせで値を決められます。これがMAKEARRAYの強みです。</p>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: 連番配列を生成する</span></h3>



<p>行番号と列番号を組み合わせて連番を作れます。3行4列の連番配列は次のとおりです。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(3, 4, LAMBDA(r, c, (r-1)*4+c))</code></pre>



<p>1行目には1〜4、2行目には5〜8が入ります。ただし単純な連番なら<a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数</a>のほうがシンプルです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 条件付き配列を作る（IF組み合わせ）</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-if/">IF関数</a>と組み合わせれば、条件で値を変えられます。たとえば5×5の単位行列は次の数式で生成できます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(5, 5, LAMBDA(r, c, IF(r=c, 1, 0)))</code></pre>



<p>対角線上（行番号＝列番号）のセルだけが1になります。それ以外は0です。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: ランダムデータを生成する</span></h3>



<p>RANDBETWEEN関数と組み合わせると、テストデータを一括で作れます。</p>



<pre class="wp-block-code"><code>=MAKEARRAY(10, 5, LAMBDA(r, c, RANDBETWEEN(1, 100)))</code></pre>



<p>10行5列のランダムな整数が生成されます。ダミーデータが必要なときに重宝します。</p>



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



<p>MAKEARRAY関数とSEQUENCE関数は、どちらも配列を生成します。ただし得意分野が異なります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>MAKEARRAY</th><th>SEQUENCE</th></tr></thead><tbody><tr><td>生成方法</td><td>LAMBDAで自由計算</td><td>等差数列（開始値+ステップ）</td></tr><tr><td>柔軟性</td><td>各セルで異なる計算が可能</td><td>規則的な連番のみ</td></tr><tr><td>LAMBDA</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><strong>使い分けの目安</strong>はシンプルです。等差数列（1,2,3&#8230;など）ならSEQUENCEを選びます。位置に応じた自由な計算が必要ならMAKEARRAYの出番です。</p>



<h2 class="wp-block-heading"><span id="toc14">LAMBDAヘルパー関数の比較表</span></h2>



<p>MAKEARRAY関数を含む6つのLAMBDAヘルパー関数の全体像です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>入力</th><th>処理</th><th>出力</th></tr></thead><tbody><tr><td>MAP</td><td>既存配列</td><td>各要素にLAMBDA適用</td><td>同サイズ配列</td></tr><tr><td>REDUCE</td><td>既存配列</td><td>累積処理</td><td>単一値</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN</a></td><td>既存配列</td><td>累積処理（途中結果）</td><td>同サイズ配列</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW</a></td><td>既存配列</td><td>行ごとにLAMBDA</td><td>列ベクトル</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL</a></td><td>既存配列</td><td>列ごとにLAMBDA</td><td>行ベクトル</td></tr><tr><td>MAKEARRAY</td><td>なし（行数×列数指定）</td><td>行番号・列番号から計算</td><td>新規配列</td></tr></tbody></table></figure>



<p>他の5つは既存の配列を変換・集計する関数です。MAKEARRAYだけが「配列を新しく生み出す」役割を持っています。</p>



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



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



<p>Excel 2019以前で使用すると発生します。MAKEARRAY関数はMicrosoft 365またはExcel 2021が必要です。関数名のスペルミスでも発生するので確認しましょう。</p>



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



<p>次のケースで発生します。</p>



<ul class="wp-block-list"><li>rows/colsに0以下の値や小数を指定した</li><li>LAMBDAの仮引数が2個になっていない</li></ul>



<p>行数・列数は1以上の整数を指定してください。LAMBDAの仮引数は必ず2つにしましょう。</p>



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



<p>配列が大きすぎてメモリ不足になると発生します。行数・列数を小さくして対処してください。</p>



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



<p>MAKEARRAY関数は、行数・列数とLAMBDAを指定して配列を自由に生成できる関数です。</p>



<p>ポイントを整理します。</p>



<ul class="wp-block-list"><li>構文は <code>=MAKEARRAY(rows, cols, LAMBDA(r, c, 計算式))</code></li><li>行番号(r)と列番号(c)は1から始まる</li><li>等差数列ならSEQUENCE、自由な計算が必要ならMAKEARRAY</li><li>対応環境はMicrosoft 365およびExcel 2021</li></ul>



<p>まずは九九表の例から試してみてください。慣れてきたら、条件付き配列やランダムデータ生成にも挑戦してみましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-lambda/">LAMBDA関数の使い方｜カスタム関数を自作する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数の使い方｜連番・日付・2次元配列を1関数で</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-map/">MAP関数の使い方｜BYROWとの違いと使い分け</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-reduce/">REDUCE関数の使い方｜配列を1つの値に集約する方法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-scan/">SCAN関数の使い方｜REDUCEとの違いと累計・残高推移への活用法</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-byrow/">BYROW関数の使い方｜行ごとに関数を適用</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-bycol/">BYCOL関数の使い方｜列ごとに関数適用</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-makearray/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのJOIN関数の使い方｜配列を区切り結合</title>
		<link>https://mashukabu.com/spreadsheet-join-function/</link>
					<comments>https://mashukabu.com/spreadsheet-join-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:33:21 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ARRAYFORMULA]]></category>
		<category><![CDATA[CONCAT]]></category>
		<category><![CDATA[FILTER]]></category>
		<category><![CDATA[JOIN]]></category>
		<category><![CDATA[QUERY]]></category>
		<category><![CDATA[SPLIT]]></category>
		<category><![CDATA[TEXTJOIN]]></category>
		<category><![CDATA[区切り文字]]></category>
		<category><![CDATA[文字列結合]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4825</guid>

					<description><![CDATA[スプレッドシートのJOIN関数の使い方を基礎から解説。配列やセル範囲を区切り文字で結合する方法、FILTER・QUERY・ARRAYFORMULAとの応用、TEXTJOIN・SPLIT・CONCATとの違い、空白スキップ・エラー対処まで徹底ガイド。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">JOIN関数とは｜読み方・構文・できること</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">JOIN関数でできること・できないこと</a></li></ol></li><li><a href="#toc4" tabindex="0">JOIN関数の基本的な使い方｜書き方と引数の例</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><li><a href="#toc8" tabindex="0">区切り文字なしで結合する</a></li></ol></li><li><a href="#toc9" tabindex="0">JOIN関数の実務パターン7選</a><ol><li><a href="#toc10" tabindex="0">パターン1: カンマ区切りリストを作る</a></li><li><a href="#toc11" tabindex="0">パターン2: 改行コードでセル内改行を作る</a></li><li><a href="#toc12" tabindex="0">パターン3: 日付と数値を書式整えて結合</a></li><li><a href="#toc13" tabindex="0">パターン4: プレフィックス・サフィックスを付けて結合</a></li><li><a href="#toc14" tabindex="0">パターン5: 曜日リストや固定配列を作る</a></li><li><a href="#toc15" tabindex="0">パターン6: SORT と組み合わせて並び順を整える</a></li><li><a href="#toc16" tabindex="0">パターン7: UNIQUE で重複排除してから結合</a></li></ol></li><li><a href="#toc17" tabindex="0">FILTER・QUERY・ARRAYFORMULAとの組み合わせ応用</a><ol><li><a href="#toc18" tabindex="0">FILTER で条件付き結合</a></li><li><a href="#toc19" tabindex="0">QUERY で SQL 風の抽出結果を結合</a></li><li><a href="#toc20" tabindex="0">ARRAYFORMULAで行ごとに結合して1列に収める</a></li></ol></li><li><a href="#toc21" tabindex="0">TEXTJOIN関数との違いと使い分け</a><ol><li><a href="#toc22" tabindex="0">比較表</a></li><li><a href="#toc23" tabindex="0">どちらを使うべきか（選び方フロー）</a></li><li><a href="#toc24" tabindex="0">実例で比較する</a></li></ol></li><li><a href="#toc25" tabindex="0">SPLIT関数との逆関数関係（結合と分割の往復）</a><ol><li><a href="#toc26" tabindex="0">往復の典型シーン</a></li></ol></li><li><a href="#toc27" tabindex="0">CONCAT・CONCATENATEとの違いと使い分け</a><ol><li><a href="#toc28" tabindex="0">選び方の早見表</a></li></ol></li><li><a href="#toc29" tabindex="0">JOIN関数でよくあるエラーと対処法</a><ol><li><a href="#toc30" tabindex="0">FILTER結果が空になるときの対処（サンプル）</a></li><li><a href="#toc31" tabindex="0">日付書式を保持するサンプル</a></li><li><a href="#toc32" tabindex="0">パフォーマンス劣化への対処</a></li></ol></li><li><a href="#toc33" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">JOIN関数とは｜読み方・構文・できること</span></h2>



<p>Googleスプレッドシートで「配列やセル範囲をカンマ区切りのテキストにまとめたい」と思ったことはありませんか?</p>



<p>CONCATENATE関数や&#038;演算子でも結合はできます。でもセルが増えるほど数式が長くなって、読み返すのも修正するのもつらいですよね。</p>



<p>そんなときに便利なのが<strong>JOIN関数</strong>です。区切り文字と配列を渡すだけで、サッと1つの文字列にまとめてくれます。この記事ではJOIN関数の基本から、FILTER・QUERY・ARRAYFORMULAとの応用、TEXTJOIN・SPLIT・CONCATとの使い分けまで、実務でそのまま使える形で整理していきますね。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p>JOIN関数の読み方は「ジョイン」です。英語で「結合する・つなぐ」という意味があります。名前のとおり「配列を結合する関数」とイメージしてください。</p>



<p>ひとつ覚えておきたいのが、JOIN関数はGoogleスプレッドシート独自の関数という点です。Excelには搭載されていません。Excelで同じことをやりたいときは<a href="https://mashukabu.com/spreadsheet-textjoin-function/">TEXTJOIN関数</a>を使ってくださいね。</p>



<h3 class="wp-block-heading"><span id="toc3">JOIN関数でできること・できないこと</span></h3>



<p>JOIN関数の役割を1枚の表で整理するとこうなります。</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>IF関数の結果配列を直接受け取る（FILTER経由が必要）</td></tr><tr><td>2次元の範囲も結合</td><td>日付や数値の書式を保持した結合（TEXT併用が必要）</td></tr><tr><td>区切りなし（空文字）の結合</td><td>Excelでの実行</td></tr></tbody></table></figure>



<p>「空白スキップができない」と「書式保持ができない」がJOIN関数のクセです。この2点さえ押さえれば、ほとんどの場面で迷いません。</p>



<h2 class="wp-block-heading"><span id="toc4">JOIN関数の基本的な使い方｜書き方と引数の例</span></h2>



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



<p>JOIN関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=JOIN(区切り文字, 値または配列1, [値または配列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>値の間に挿入する文字列（&#8221;,&#8221;や&#8221; &#8220;など）</td></tr><tr><td>値または配列1</td><td>必須</td><td>結合したい値、セル参照、またはセル範囲</td></tr><tr><td>値または配列2, &#8230;</td><td>省略可</td><td>追加で結合したい値や配列</td></tr></tbody></table></figure>



<p>第1引数の区切り文字には空文字&#8221;&#8221;も指定できます。区切りなしで結合したいときに使ってくださいね。</p>



<h3 class="wp-block-heading"><span id="toc6">基本的な書き方の例</span></h3>



<p>A1からA4に「東京」「大阪」「名古屋」「福岡」と入っている場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, A1:A4)
→ 「東京, 大阪, 名古屋, 福岡」</code></pre>



<p>区切り文字にカンマ+スペースを指定するだけで、きれいなリストが完成します。セルが何個あっても数式は変わりません。</p>



<p>セル範囲ではなく個別のセルを指定することもできます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;-&quot;, A1, B1, C1)
→ 「東京-大阪-名古屋」</code></pre>



<p>引数を複数並べても結合できますが、セル範囲のほうがスッキリ書けますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">複数範囲を一度に結合する</span></h3>



<p>範囲を複数指定することもできます。A列とB列を横につなげたリストを作りたい場合はこうです。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, A1:A3, B1:B3)
→ 「東京, 大阪, 名古屋, 札幌, 仙台, 福岡」</code></pre>



<p>範囲ごとに順番に結合されます。行ごとに交互に結合したいときはARRAYFORMULAを使いますが、これは後述の応用パートで扱いますね。</p>



<h3 class="wp-block-heading"><span id="toc8">区切り文字なしで結合する</span></h3>



<p>区切り文字に空文字 <code>""</code> を指定すれば、区切りなしで連結できます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;&quot;, A1:A3)
→ 「東京大阪名古屋」</code></pre>



<p>ただし区切りなしの単純結合なら、<a href="https://mashukabu.com/spreadsheet-concat-function/">CONCAT関数</a>のほうが意図が伝わりやすいです。用途に応じて選んでくださいね。</p>



<h2 class="wp-block-heading"><span id="toc9">JOIN関数の実務パターン7選</span></h2>



<p>実務でよく使う7つのパターンを、そのままコピーして使える形で紹介します。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン1: カンマ区切りリストを作る</span></h3>



<p>タグ一覧やメール宛先リストを作るときの定番パターンです。A列にメールアドレスが入っている場合はこう書きます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;; &quot;, A1:A5)
→ 「user1@example.com; user2@example.com; user3@example.com; ...」</code></pre>



<p>セミコロン+スペースで区切れば、メールのCC欄にそのまま貼り付けられる形になりますよ。Gmailの「連絡先を貼り付け」にも使えます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: 改行コードでセル内改行を作る</span></h3>



<p>CHAR(10)を区切り文字に使うと、セル内で改行した文字列を作れます。</p>



<pre class="wp-block-code"><code>=JOIN(CHAR(10), A1:A4)</code></pre>



<p>結果のセルで「折り返して全体を表示する」書式を設定すると、各値が1行ずつ表示されます。議事録の出席者リストやタスクの進捗サマリーを1セルにまとめたいときに重宝しますよ。</p>



<p>CHAR(10)のほかにCHAR(13)（キャリッジリターン）も使えますが、スプレッドシートではCHAR(10)が一般的です。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: 日付と数値を書式整えて結合</span></h3>



<p>JOIN関数は日付や数値をそのまま結合するとシリアル値になってしまいます。書式を保持したいときは<a href="https://support.google.com/docs/answer/3094139">TEXT関数</a>で変換してから渡します。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;/&quot;, TEXT(A1, &quot;yyyy&quot;), TEXT(B1, &quot;m&quot;), TEXT(C1, &quot;d&quot;))
→ 「2026/3/21」</code></pre>



<p>通貨や%表示なども同じ要領です。</p>



<pre class="wp-block-code"><code>=JOIN(&quot; - &quot;, A1, TEXT(B1, &quot;¥#,##0&quot;), TEXT(C1, &quot;0.0%&quot;))
→ 「売上 - ¥1,234,567 - 12.5%」</code></pre>



<h3 class="wp-block-heading"><span id="toc13">パターン4: プレフィックス・サフィックスを付けて結合</span></h3>



<p>各要素に「〇〇:」「- 」のような接頭語を付けたいときは、ARRAYFORMULAとの組み合わせが便利です。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, ARRAYFORMULA(&quot;#&quot; &amp; A1:A3))
→ 「#東京, #大阪, #名古屋」</code></pre>



<p>ハッシュタグ付きリストやNotion風の箇条書きリストが一発で作れますよ。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: 曜日リストや固定配列を作る</span></h3>



<p>配列リテラル <code>{}</code> を直接渡すこともできます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot; / &quot;, {&quot;月&quot;,&quot;火&quot;,&quot;水&quot;,&quot;木&quot;,&quot;金&quot;,&quot;土&quot;,&quot;日&quot;})
→ 「月 / 火 / 水 / 木 / 金 / 土 / 日」</code></pre>



<p>シート上にデータを用意しなくても、数式内で完結する使い方です。アンケート選択肢の区切り表示などに向いていますね。</p>



<h3 class="wp-block-heading"><span id="toc15">パターン6: SORT と組み合わせて並び順を整える</span></h3>



<p>そのままのA列順ではなく、五十音順・日付順でリスト化したい場合は<a href="https://support.google.com/docs/answer/3093150">SORT関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, SORT(A2:A10))
→ 「大阪, 京都, 神戸, 名古屋, 東京」</code></pre>



<p>昇順がデフォルトなので、降順にしたいときは <code>SORT(A2:A10, 1, FALSE)</code> としてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン7: UNIQUE で重複排除してから結合</span></h3>



<p>重複のあるデータから一意な値だけ取り出してリスト化したい場合です。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, UNIQUE(A2:A100))
→ 「東京, 大阪, 名古屋」（重複除去後）</code></pre>



<p>「今月のユニーク来店客リスト」「登場したカテゴリの一覧」などでよく使うパターンですよ。SORTと併用するとさらに読みやすくなります。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, SORT(UNIQUE(A2:A100)))</code></pre>



<h2 class="wp-block-heading"><span id="toc17">FILTER・QUERY・ARRAYFORMULAとの組み合わせ応用</span></h2>



<p>JOIN関数がもっとも輝くのは、他の配列関数と組み合わせたときです。ここでは実務度の高い3パターンを掘り下げます。</p>



<h3 class="wp-block-heading"><span id="toc18">FILTER で条件付き結合</span></h3>



<p><a href="https://support.google.com/docs/answer/3093197">FILTER関数</a>で絞り込んだ結果をJOIN関数で結合する方法です。A列に名前、B列に部署が入っているとします。</p>



<p>「営業部」のメンバーだけをカンマ区切りで結合する数式です。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, FILTER(A2:A10, B2:B10=&quot;営業部&quot;))
→ 「田中, 佐藤, 高橋」</code></pre>



<p>FILTER関数が条件に合う名前の配列を返します。JOIN関数がその配列をカンマ区切りで結合します。2つの関数を組み合わせるだけで条件付き結合が完成しますよ。</p>



<p>複数条件にしたいときは <code>*</code>（AND）や <code>+</code>（OR）を使います。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, FILTER(A2:A10, B2:B10=&quot;営業部&quot;, C2:C10&gt;=3))
→ 営業部で勤続3年以上の名前だけ結合</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>FILTER + JOIN の活用場面</strong></p><p>部署別の名前リスト、カテゴリ別の商品一覧、ステータス別のタスク一覧、担当者別の案件リストなど、「条件で絞り込んでからリスト化する」パターンに幅広く使えます。</p></blockquote>



<h4 class="wp-block-heading">FILTER結果が空のときのエラー回避</h4>



<p>条件に合うデータがないとFILTERは <code>#N/A</code> を返してJOINも失敗します。IFERRORで包んでおくと安心です。</p>



<pre class="wp-block-code"><code>=IFERROR(JOIN(&quot;, &quot;, FILTER(A2:A10, B2:B10=&quot;広報部&quot;)), &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc19">QUERY で SQL 風の抽出結果を結合</span></h3>



<p><a href="https://support.google.com/docs/answer/3093343">QUERY関数</a>で抽出した結果もJOIN関数で結合できます。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, QUERY(A2:C100, &quot;SELECT A WHERE C='完了'&quot;, 0))
→ ステータスが完了の案件名だけをカンマ区切りで結合</code></pre>



<p>QUERYの柔軟な条件指定とJOINのテキスト化がハマる組み合わせです。レポート作成の常連コンビなので、ぜひ覚えておいてくださいね。</p>



<h3 class="wp-block-heading"><span id="toc20">ARRAYFORMULAで行ごとに結合して1列に収める</span></h3>



<p>「A〜C列の値を各行ごとに結合して、D列に1列で出力したい」ときはARRAYFORMULAが使えます。ただしJOIN関数は配列展開に制約があるので、行ごとの結合には<code>&</code>演算子のほうが安定します。</p>



<pre class="wp-block-code"><code># D1に入力
=ARRAYFORMULA(IF(A1:A10=&quot;&quot;,&quot;&quot;, A1:A10 &amp; &quot;-&quot; &amp; B1:B10 &amp; &quot;-&quot; &amp; C1:C10))</code></pre>



<p>どうしても区切り文字を可変にしたいなら、行ごとに <code>TEXTJOIN</code> を使うほうが柔軟です。</p>



<pre class="wp-block-code"><code># D1に入力（TEXTJOIN版）
=ARRAYFORMULA(IF(A1:A10=&quot;&quot;,&quot;&quot;, TEXTJOIN(&quot;-&quot;, TRUE, A1:A10, B1:B10, C1:C10)))</code></pre>



<p>JOINとARRAYFORMULAは相性に制約があるので、行ごとの結合ではTEXTJOINや&#038;演算子を選ぶと挙動が安定しますよ。</p>



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



<p>JOIN関数と<a href="https://mashukabu.com/spreadsheet-textjoin-function/">TEXTJOIN関数</a>はどちらも区切り文字で結合する関数です。似ているようで大きな違いがあります。</p>



<h3 class="wp-block-heading"><span id="toc22">比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>JOIN</th><th>TEXTJOIN</th></tr></thead><tbody><tr><td>空白セルのスキップ</td><td>不可（空白もそのまま結合）</td><td>第2引数でTRUE/FALSE制御</td></tr><tr><td>引数の並び</td><td>区切り文字, 配列&#8230;</td><td>区切り文字, 空白無視, テキスト&#8230;</td></tr><tr><td>IF配列との相性</td><td>不可（FILTER経由が必要）</td><td>直接IF配列を渡せる</td></tr><tr><td>最大文字数</td><td>セル上限（約50,000字）</td><td>セル上限（約50,000字）</td></tr><tr><td>Sheets対応</td><td>対応（独自関数）</td><td>対応</td></tr><tr><td>Excel対応</td><td>非対応</td><td>対応（Microsoft 365 / Excel 2019以降）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc23">どちらを使うべきか（選び方フロー）</span></h3>



<p>次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li><strong>空白セルが混じるデータ</strong> → TEXTJOIN（空白スキップ機能あり）</li><li><strong>IF関数の結果を直接結合したい</strong> → TEXTJOIN</li><li><strong>空白セルがないクリーンな配列</strong> → JOIN（引数がシンプル）</li><li><strong>FILTER・UNIQUE・SORTの結果を結合</strong> → JOIN（相性が良く書きやすい）</li><li><strong>Excelとの互換性が必要</strong> → TEXTJOIN（Excel側でも動作する）</li></ul>



<p>空白セルを含むデータなら迷わずTEXTJOINです。空白のないデータやFILTER関数の結果を結合するなら、引数がシンプルなJOINが便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc24">実例で比較する</span></h3>



<p>A列が <code>東京 / （空白） / 大阪 / （空白） / 名古屋</code> の場合の結果を比較してみましょう。</p>



<pre class="wp-block-code"><code>=JOIN(&quot;, &quot;, A1:A5)
→ 「東京, , 大阪, , 名古屋」（空白のせいでカンマが連続）

=TEXTJOIN(&quot;, &quot;, TRUE, A1:A5)
→ 「東京, 大阪, 名古屋」（空白スキップ）</code></pre>



<p>見た目の美しさに差が出ますね。実務では空白が混じることも多いので、TEXTJOINに切り替える選択肢を常に持っておくと安心です。</p>



<h2 class="wp-block-heading"><span id="toc25">SPLIT関数との逆関数関係（結合と分割の往復）</span></h2>



<p>JOIN関数と<a href="https://mashukabu.com/spreadsheet-split-function/">SPLIT関数</a>は「結合」と「分割」の逆の関係にあります。セットで覚えておくと便利です。</p>



<figure class="wp-block-table"><table><thead><tr><th>操作</th><th>関数</th><th>例</th></tr></thead><tbody><tr><td>結合</td><td>JOIN</td><td>3つのセル → 「東京,大阪,名古屋」</td></tr><tr><td>分割</td><td>SPLIT</td><td>「東京,大阪,名古屋」→ 3つのセルに分割</td></tr></tbody></table></figure>



<p>実際に相互変換してみましょう。</p>



<p><strong>結合（JOIN）:</strong></p>



<pre class="wp-block-code"><code>=JOIN(&quot;,&quot;, A1:C1)
→ 「東京,大阪,名古屋」</code></pre>



<p><strong>分割（SPLIT）:</strong></p>



<pre class="wp-block-code"><code>=SPLIT(&quot;東京,大阪,名古屋&quot;, &quot;,&quot;)
→ A1:「東京」, B1:「大阪」, C1:「名古屋」</code></pre>



<p>同じ区切り文字（カンマ）を使えば、元の形に戻せます。データの結合と分割を行き来する場面で活躍しますよ。</p>



<h3 class="wp-block-heading"><span id="toc26">往復の典型シーン</span></h3>



<ul class="wp-block-list"><li>CSV形式で貼り付けたテキストを分割（SPLIT） → 必要な列だけ取り出して結合（JOIN）</li><li>タグ文字列を分割して並び替え → 再結合</li><li>フォーム回答の自由記述欄を単語分割 → 条件に合うものだけ結合</li></ul>



<p>SPLITとJOINをセットで使うと、データクレンジングの小さなETLパイプラインが作れます。</p>



<h2 class="wp-block-heading"><span id="toc27">CONCAT・CONCATENATEとの違いと使い分け</span></h2>



<p>単純に文字列を連結したいなら<a href="https://mashukabu.com/spreadsheet-concat-function/">CONCAT関数</a>や<a href="https://mashukabu.com/spreadsheet-concatenate-function/">CONCATENATE関数</a>が候補になります。違いは区切り文字の扱いです。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>区切り文字</th><th>配列対応</th><th>空白スキップ</th><th>主な用途</th></tr></thead><tbody><tr><td>JOIN</td><td>指定できる</td><td>可</td><td>不可</td><td>区切り付きリスト化</td></tr><tr><td>TEXTJOIN</td><td>指定できる</td><td>可</td><td>可（オプション）</td><td>区切り付き+空白対応</td></tr><tr><td>CONCAT</td><td>なし</td><td>可（一部）</td><td>&#8211;</td><td>2値の単純連結</td></tr><tr><td>CONCATENATE</td><td>なし</td><td>不可</td><td>&#8211;</td><td>旧版の単純連結</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc28">選び方の早見表</span></h3>



<ul class="wp-block-list"><li><strong>区切り文字入り、空白なしデータ</strong> → JOIN</li><li><strong>区切り文字入り、空白混じり</strong> → TEXTJOIN</li><li><strong>区切りなしの単純連結</strong> → CONCAT</li><li><strong>古いスプレッドシートで互換性重視</strong> → CONCATENATE</li></ul>



<p>CONCATは <code>=CONCAT(A1, B1)</code> のような2値の連結が中心で、JOIN/TEXTJOINのように区切り文字を一括指定できません。リスト化にはJOIN系を選ぶのが定石です。</p>



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



<p>JOIN関数で発生しやすいエラーと落とし穴をまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>区切り文字が連続する（&#8221;, ,&#8221;）</td><td>空白セルが含まれている</td><td>TEXTJOIN関数に切り替えて第2引数をTRUEに</td></tr><tr><td>#N/A エラー</td><td>FILTER関数が条件に合うデータを見つけられない</td><td>FILTER結果をIFERROR関数で囲む</td></tr><tr><td>#VALUE! エラー</td><td>第2引数以降を指定していない</td><td>結合対象を必ず1つ以上指定</td></tr><tr><td>数値がシリアル値になる</td><td>日付セルをそのまま渡した</td><td>TEXT関数で書式変換してから結合</td></tr><tr><td>結果が空になる</td><td>指定範囲のセルがすべて空</td><td>データの入力範囲を確認する</td></tr><tr><td>改行が表示されない</td><td>CHAR(10)を使ったが折り返し未設定</td><td>表示形式→折り返し→「折り返す」を設定</td></tr><tr><td>文字化けする</td><td>タブやNULL文字が混じる</td><td>CLEAN関数でクリーンアップしてから結合</td></tr><tr><td>パフォーマンスが劣化</td><td>大量行（1万以上）を一気に処理</td><td>QUERY/FILTERで事前に絞り込む</td></tr></tbody></table></figure>



<p>いちばん多いのが「区切り文字が連続する」ケースです。JOIN関数には空白セルをスキップする機能がありません。データに空白が混じるときはTEXTJOIN関数を使ってくださいね。</p>



<h3 class="wp-block-heading"><span id="toc30">FILTER結果が空になるときの対処（サンプル）</span></h3>



<p>条件に一致するデータがないとFILTERは <code>#N/A</code> を返します。JOINの外側でIFERRORを使うのが定番です。</p>



<pre class="wp-block-code"><code>=IFERROR(JOIN(&quot;, &quot;, FILTER(A2:A100, B2:B100=&quot;広報部&quot;)), &quot;該当なし&quot;)</code></pre>



<p>同じ要領でIFNA関数を使ってもOKです。</p>



<pre class="wp-block-code"><code>=IFNA(JOIN(&quot;, &quot;, FILTER(A2:A100, B2:B100=&quot;広報部&quot;)), &quot;該当なし&quot;)</code></pre>



<h3 class="wp-block-heading"><span id="toc31">日付書式を保持するサンプル</span></h3>



<p>日付セルをそのまま渡すと、内部のシリアル値（例: 46021）が結合されてしまいます。TEXT関数で書式変換してから渡しましょう。</p>



<pre class="wp-block-code"><code>=JOIN(&quot; / &quot;, TEXT(A1:A3, &quot;yyyy/mm/dd&quot;))
→ 「2026/03/21 / 2026/03/22 / 2026/03/23」</code></pre>



<p>TEXT関数に配列を渡すときはARRAYFORMULAを挟むと安定する場面があります。動かないときは <code>=ARRAYFORMULA(JOIN(" / ", TEXT(A1:A3, "yyyy/mm/dd")))</code> を試してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc32">パフォーマンス劣化への対処</span></h3>



<p>1万行を超えるような大きな範囲をJOINで処理すると、数式の再計算が遅くなります。事前にFILTERやQUERYで範囲を絞り込む、あるいは必要な範囲だけを引数に渡すのが基本です。</p>



<pre class="wp-block-code"><code># NG: 広すぎる範囲を全部渡す
=JOIN(&quot;, &quot;, A1:A10000)

# OK: 必要な条件で絞ってから渡す
=JOIN(&quot;, &quot;, FILTER(A1:A10000, B1:B10000=&quot;対象&quot;))</code></pre>



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



<p>スプレッドシートのJOIN関数の使い方を振り返りましょう。</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>配列やセル範囲を区切り文字で結合して1つの文字列にする</td></tr><tr><td>構文</td><td>=JOIN(区切り文字, 値または配列1, [値または配列2, &#8230;])</td></tr><tr><td>TEXTJOIN との違い</td><td>JOINは空白スキップ機能なし。シンプルな引数構造</td></tr><tr><td>対になる関数</td><td>SPLIT（分割）</td></tr><tr><td>注意点</td><td>Excelには非搭載（スプレッドシート独自関数）</td></tr></tbody></table></figure>



<p>配列やFILTER関数の結果を手早くテキストにまとめたいなら、JOINがいちばんシンプルです。区切り文字ひとつを指定するだけで、カンマ区切りリストもセル内改行も自在に作れますよ。</p>



<p>空白セルが混じるデータには<a href="https://mashukabu.com/spreadsheet-textjoin-function/">TEXTJOIN関数</a>、逆に文字列を分割したいときは<a href="https://mashukabu.com/spreadsheet-split-function/">SPLIT関数</a>も合わせてチェックしてみてください。区切り文字なしで単純に結合したい場合は<a href="https://mashukabu.com/spreadsheet-concat-function/">CONCAT関数</a>や<a href="https://mashukabu.com/spreadsheet-concatenate-function/">CONCATENATE関数</a>もおすすめです。</p>



<p>JOIN・TEXTJOIN・SPLIT・CONCATの4つをセットで覚えれば、スプレッドシートでの文字列操作はほぼカバーできます。用途に合わせて使い分けてくださいね。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-join-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのTEXTJOIN関数の使い方｜区切り文字付き結合</title>
		<link>https://mashukabu.com/spreadsheet-textjoin-function/</link>
					<comments>https://mashukabu.com/spreadsheet-textjoin-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 09:47:51 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[CONCAT]]></category>
		<category><![CDATA[CONCATENATE]]></category>
		<category><![CDATA[TEXTJOIN]]></category>
		<category><![CDATA[区切り文字]]></category>
		<category><![CDATA[文字列結合]]></category>
		<category><![CDATA[空白セル]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4301</guid>

					<description><![CDATA[スプレッドシートのTEXTJOIN関数の使い方を基礎から解説。区切り文字の一括設定、空白セルを無視するTRUE/FALSEの違い、IF+配列との応用例まで。CONCATENATE・CONCATとの比較表付き。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-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">TEXTJOIN関数の基本的な使い方（スプレッドシート）</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">空白セルを無視するオプション（TRUE/FALSE）の違い</a><ol><li><a href="#toc6" tabindex="0">TRUEの場合（空白をスキップ）</a></li><li><a href="#toc7" tabindex="0">FALSEの場合（空白もそのまま結合）</a></li><li><a href="#toc8" tabindex="0">TRUE/FALSE 比較表</a></li></ol></li><li><a href="#toc9" tabindex="0">TEXTJOIN関数の実務パターン集</a><ol><li><a href="#toc10" tabindex="0">カンマ区切りのリストを作る</a></li><li><a href="#toc11" tabindex="0">複数列を1つの文字列にまとめる</a></li><li><a href="#toc12" tabindex="0">条件付きで結合する（IF + TEXTJOIN）</a></li></ol></li><li><a href="#toc13" tabindex="0">CONCATENATE・CONCAT・&#038;演算子との違い</a><ol><li><a href="#toc14" tabindex="0">4方法比較表</a></li><li><a href="#toc15" tabindex="0">どれを使うか ── 判断フロー</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">TEXTJOIN関数の基本的な使い方（スプレッドシート）</span></h2>



<p>Googleスプレッドシートで「カンマ区切りのリストを作りたい」「空白セルを飛ばして名前を繋ぎたい」と思ったことはありませんか?</p>



<p>CONCATENATE関数や&#038;演算子でも結合はできます。でも区切り文字をいちいち手で入れるのは面倒ですよね。セルが増えるほど数式が長くなって読みにくくなります。</p>



<p>そんなときに使うのが<strong>TEXTJOIN関数</strong>です。区切り文字を1か所で指定するだけで、まとめて結合してくれます。空白セルのスキップ機能もついているので、データに抜けがあっても安心ですよ。</p>



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p>TEXTJOIN関数の読み方は「テキストジョイン」です。TEXT（文字列）とJOIN（結合する）を組み合わせた名前です。名前のとおり「文字列を結合する関数」と覚えてください。</p>



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



<p>TEXTJOIN関数の構文はこちらです。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(区切り文字, 空白を無視, テキスト1, [テキスト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>テキスト間に挿入する文字列（&#8221;,&#8221;や&#8221; &#8220;など）</td></tr><tr><td>空白を無視</td><td>必須</td><td>TRUEで空白セルをスキップ、FALSEでそのまま結合</td></tr><tr><td>テキスト1</td><td>必須</td><td>結合したい文字列、セル参照、またはセル範囲</td></tr><tr><td>テキスト2, &#8230;</td><td>省略可</td><td>追加で結合したい文字列やセル範囲（最大252個）</td></tr></tbody></table></figure>



<p>第1引数の区切り文字には空文字&#8221;&#8221;も指定できます。区切りなしで結合したい場合に使ってください。</p>



<h3 class="wp-block-heading"><span id="toc4">基本的な書き方の例</span></h3>



<p>A1〜A4に「田中」「佐藤」「鈴木」「高橋」と入っている場合を見てみましょう。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;, &quot;, TRUE, A1:A4)
→ 「田中, 佐藤, 鈴木, 高橋」</code></pre>



<p>カンマ+スペースを区切り文字に指定するだけで、きれいなリストが完成します。CONCATENATE関数なら<code>=CONCATENATE(A1, ", ", A2, ", ", A3, ", ", A4)</code>と書く必要がありますよね。TEXTJOINなら1か所で済むので数式がスッキリしますよ。</p>



<h2 class="wp-block-heading"><span id="toc5">空白セルを無視するオプション（TRUE/FALSE）の違い</span></h2>



<p>TEXTJOIN関数の第2引数はTRUEかFALSEを指定します。これが空白セル処理のカギです。違いを実例で確認してみましょう。</p>



<h3 class="wp-block-heading"><span id="toc6">TRUEの場合（空白をスキップ）</span></h3>



<p>A1〜A5に「東京」「」「大阪」「」「福岡」と入っている場合です。A2とA4が空白セルです。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;/&quot;, TRUE, A1:A5)
→ 「東京/大阪/福岡」</code></pre>



<p>空白セルが無視されて、区切り文字「/」が連続しません。データに抜けがあっても見た目がきれいに仕上がります。</p>



<h3 class="wp-block-heading"><span id="toc7">FALSEの場合（空白もそのまま結合）</span></h3>



<p>同じデータでFALSEを指定した場合です。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;/&quot;, FALSE, A1:A5)
→ 「東京//大阪//福岡」</code></pre>



<p>空白セルの位置にも区切り文字が入ります。結果として「/」が2つ連続してしまいます。</p>



<h3 class="wp-block-heading"><span id="toc8">TRUE/FALSE 比較表</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>設定</th><th>空白セルの扱い</th><th>結果の例</th><th>おすすめの場面</th></tr></thead><tbody><tr><td>TRUE</td><td>スキップする</td><td>東京/大阪/福岡</td><td>名簿・リスト・住所など</td></tr><tr><td>FALSE</td><td>そのまま結合</td><td>東京//大阪//福岡</td><td>空白位置を残したい場合</td></tr></tbody></table></figure>



<p>実務ではTRUEを使うことがほとんどです。FALSEが必要になるのは「空白の位置を明示的に残したい」という特殊なケースだけですよ。</p>



<h2 class="wp-block-heading"><span id="toc9">TEXTJOIN関数の実務パターン集</span></h2>



<h3 class="wp-block-heading"><span id="toc10">カンマ区切りのリストを作る</span></h3>



<p>メールの宛先一覧やタグリストを作るときに便利です。A列にメールアドレスが入っている場合はこう書きます。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;, &quot;, TRUE, A1:A10)</code></pre>



<p>セルが10個でも20個でも、数式は変わりません。CONCATENATE関数では区切り文字を毎回手入力する必要があるので、数が多いほどTEXTJOINの便利さを実感できますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">複数列を1つの文字列にまとめる</span></h3>



<p>A列に都道府県、B列に市区町村、C列に番地が入っている住所データの場合です。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;&quot;, TRUE, A2:C2)</code></pre>



<p>区切り文字に空文字&#8221;&#8221;を指定すると、区切りなしで結合できます。住所の場合はスペースを入れたくないので、この書き方がぴったりです。</p>



<p>マンション名（D列）が空のレコードがあっても大丈夫です。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;&quot;, TRUE, A2:D2)
→ D列が空なら「東京都渋谷区1-2-3」
→ D列があれば「東京都渋谷区1-2-3ABCマンション101」</code></pre>



<p>TRUEを指定しているので、空白セルは自動でスキップされます。</p>



<h3 class="wp-block-heading"><span id="toc12">条件付きで結合する（IF + TEXTJOIN）</span></h3>



<p>IF関数と組み合わせると、条件に合うデータだけを結合できます。これはTEXTJOIN関数の応用テクニックです。</p>



<p>A列に名前、B列に部署が入っているとします。「営業部」のメンバーだけをカンマ区切りで結合する数式です。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;, &quot;, TRUE, IF(B2:B10=&quot;営業部&quot;, A2:A10, &quot;&quot;))</code></pre>



<p>IF関数が「営業部なら名前を返し、違えば空文字を返す」という配列を作ります。TEXTJOINはその結果からTRUEで空文字をスキップして結合します。</p>



<p>Googleスプレッドシートは自動で配列を展開するので、特別な操作は不要です。Ctrl+Shift+Enterを押す必要もありませんよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>IF + TEXTJOIN の活用場面</strong></p><p>部署別の名前リスト、カテゴリ別の商品一覧、担当者別のタスク一覧など、フィルタリング+結合のパターンに幅広く使えます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc13">CONCATENATE・CONCAT・&#038;演算子との違い</span></h2>



<h3 class="wp-block-heading"><span id="toc14">4方法比較表</span></h3>



<p>スプレッドシートの文字列結合方法を表にまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>方法</th><th>セル範囲</th><th>区切り文字</th><th>空白スキップ</th><th>引数上限</th></tr></thead><tbody><tr><td>TEXTJOIN</td><td>対応</td><td>自動（第1引数で指定）</td><td>対応（第2引数で制御）</td><td>252</td></tr><tr><td>CONCAT</td><td>対応</td><td>手動（毎回指定）</td><td>不可</td><td>なし</td></tr><tr><td>CONCATENATE</td><td>非対応</td><td>手動（毎回指定）</td><td>不可</td><td>30</td></tr><tr><td>&#038; 演算子</td><td>非対応</td><td>手動（毎回指定）</td><td>不可</td><td>なし</td></tr></tbody></table></figure>



<p>TEXTJOINだけが区切り文字の自動挿入と空白スキップに対応しています。</p>



<h3 class="wp-block-heading"><span id="toc15">どれを使うか ── 判断フロー</span></h3>



<p>次の基準で選んでみてください。</p>



<ul class="wp-block-list"><li>セルが2〜3個でシンプルに結合 → <strong>&#038; 演算子</strong></li><li>セル範囲をまとめて区切りなしで結合 → <strong>CONCAT</strong></li><li>区切り文字を自動で入れたい → <strong>TEXTJOIN</strong></li><li>空白セルをスキップしたい → <strong>TEXTJOIN</strong></li><li>古いExcelファイルとの互換性が必要 → <strong>CONCATENATE</strong></li></ul>



<p>区切り文字か空白スキップのどちらかが必要なら、迷わずTEXTJOINを選んでください。<a href="https://mashukabu.com/spreadsheet-concatenate-function/">CONCATENATE関数の基本</a>を学んだあとのステップアップとしてぴったりです。<a href="https://mashukabu.com/spreadsheet-concat-function/">CONCAT関数との違い</a>も合わせて確認しておくと使い分けに迷わなくなりますよ。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>#VALUE! エラー</td><td>結合結果が32,767文字を超えた</td><td>結合する範囲を分割する</td></tr><tr><td>区切り文字が2つ連続する</td><td>第2引数がFALSEで空白セルがある</td><td>TRUEに変更して空白をスキップ</td></tr><tr><td>数値がシリアル値になる</td><td>日付セルをそのまま渡した</td><td>TEXT関数で書式変換してから結合</td></tr><tr><td>結果が空になる</td><td>指定範囲のセルがすべて空</td><td>データの入力範囲を確認する</td></tr></tbody></table></figure>



<p>日付の書式変換はこう書きます。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;/&quot;, TRUE, TEXT(A2, &quot;yyyy&quot;), TEXT(B2, &quot;m&quot;), TEXT(C2, &quot;d&quot;))</code></pre>



<p>日付の表示形式は結合時に失われます。TEXT関数で明示的に指定するのを忘れないでくださいね。結合後のスペース処理には<a href="https://mashukabu.com/spreadsheet-trim-function/">TRIM関数</a>も覚えておくと便利ですよ。</p>



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



<p>TEXTJOIN関数は、区切り文字を1か所で指定できる文字列結合の決定版です。</p>



<p>おさらいです。</p>



<ul class="wp-block-list"><li><strong>第1引数</strong>で区切り文字を一括指定（カンマ、スペース、スラッシュなど）</li><li><strong>第2引数</strong>でTRUEを指定すれば空白セルを自動スキップ</li><li><strong>セル範囲に対応</strong>しているので、セルが増えても数式は変わらない</li><li><strong>IF関数との組み合わせ</strong>で条件付き結合もできる</li><li>実務ではTRUE指定がほとんど。迷ったらTRUEで大丈夫</li></ul>



<p>CONCATENATE関数や&#038;演算子から始めた方も、区切り文字や空白処理が必要になったらTEXTJOINに切り替えてみてください。数式がスッキリして管理もラクになりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-textjoin-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>「単価と数量をいちいち掛け算して、さらにSUM関数で合計するのが面倒&#8230;」そんな経験、ありませんか？</p>



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



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



<p>この記事では基本の使い方から条件付き集計・加重平均の計算まで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</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>SUMPRODUCT関数（読み方: サムプロダクト関数）は、<strong>複数の配列の対応する要素を掛け算し、その合計を返す関数</strong>です。</p>



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



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



<p>SUMPRODUCT関数にできることをまとめると、次のとおりです。</p>



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



<p>「掛けてから合計」を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>カッコの中に、計算したい配列やセル範囲を指定します。</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>引数が1つだけの場合は範囲の合計を返します。SUM関数と同じ動作です。</p>



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



<p>ここで大事なポイントがひとつ。<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>実際にSUMPRODUCT関数を使ってみましょう。よくある「単価 x 数量」の合計を求める例です。</p>



<p>次のような商品リストがあるとします。</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>全商品の売上合計を出すには、次の数式を入力します。</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>この数式が内部で行っている計算はこうなります。</p>



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



<p>結果は <strong>31,000</strong> です。</p>



<p>!<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>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>引数を1つだけ指定するとSUM関数と同じ動作をします。</p>



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



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



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



<p>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>商品リストにカテゴリ列を追加したデータで考えてみます。</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>「文房具」だけの売上合計を出す数式はこちらです。</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>ちょっと不思議な書き方に見えますよね。ポイントは <code>(B2:B5="文房具")</code> の部分です。</p>



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



<p>掛け算に含めることで、条件に合わない行は自動的に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>結果は <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>条件を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>条件部分をカッコで囲んで <code><em></code> でつなぐだけです。<code></em></code> は「AND（かつ）」の意味になります。</p>



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



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



<p>「文房具<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>条件を <code>+</code> でつなぐとOR条件になります。</p>



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



<p><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>基本がわかったところで、仕事でよく使うパターンを紹介します。</p>



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



<p>見積書で「単価 x 数量」の合計を出すパターンです。</p>



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



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



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



<p>テストの点数に重み（配点）を付けて平均を出すパターンです。</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>配点を加味した加重平均を求めるにはこう書きます。</p>



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



<p>計算の中身はこうなります。</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>単純な平均 <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>「営業部<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>条件が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><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>SUMPRODUCT関数は条件に合うデータの件数を数えることもできます。</p>



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



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



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



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



<p>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>最も多い原因は配列のサイズ不一致です。</p>



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



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



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



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



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



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



<p>セルの表示が左揃えなら文字列型のサインです。次の方法で修正できます。</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>条件式のカッコ忘れが原因のことが多いです。</p>



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



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



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



<p>条件式は必ず <code>()</code> で囲むのがルールです。</p>



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



<p>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>集計関数は段階的に使い分けるのがおすすめです。</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>条件の複雑さに合わせてステップアップするイメージです。シンプルな集計にSUMPRODUCT関数を使う必要はありません。</p>



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



<p>どちらも複数条件で合計できます。使い分けのポイントを整理しましょう。</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>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>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>引数の上限に違いはありますが、実務で30個を超えることはまずありません。ExcelのSUMPRODUCT関数と同じ書き方で使えますよ。</p>



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



<p>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>まずは <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>【Excel】INDEX関数とは？使い方・MATCH連携・エラー対処を解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-index/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-index/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 22 May 2023 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[検索・行列関数]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2303</guid>

					<description><![CDATA[ExcelのINDEX関数の使い方を基本から応用まで解説。構文・引数の意味、MATCH関数との組み合わせ、VLOOKUP・XLOOKUPとの使い分け、よくあるエラーの対処法まで、実務で使える具体例つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>ExcelのINDEX関数は、表の中から「何行目・何列目」を指定して値を取り出す関数です。</p>



<p>「VLOOKUPだと左側の列を検索できない」「もっと柔軟にデータを取り出したい」と思ったことはありませんか？ INDEX関数を覚えると、こうした悩みをスッキリ解決できます。</p>



<p>この記事では、INDEX関数の基本構文から、MATCH関数との組み合わせ方、VLOOKUP・XLOOKUPとの使い分け、よくあるエラーの対処法まで、実務で使える具体例をまじえて解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-5" checked><label class="toc-title" for="toc-checkbox-5">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">INDEX関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方と語源</a></li><li><a href="#toc3" tabindex="0">INDEX関数でできること</a></li><li><a href="#toc4" tabindex="0">配列形式とセル参照形式</a></li></ol></li><li><a href="#toc5" tabindex="0">INDEX関数の書き方（構文と引数）</a><ol><li><a href="#toc6" tabindex="0">基本構文</a></li><li><a href="#toc7" tabindex="0">引数の詳細</a></li></ol></li><li><a href="#toc8" tabindex="0">INDEX関数の基本的な使い方</a><ol><li><a href="#toc9" tabindex="0">指定した行・列の値を取得する</a></li><li><a href="#toc10" tabindex="0">行番号・列番号に0を指定して行全体・列全体を返す</a></li></ol></li><li><a href="#toc11" tabindex="0">INDEX関数とMATCH関数の組み合わせ</a><ol><li><a href="#toc12" tabindex="0">INDEX+MATCHの基本パターン</a></li><li><a href="#toc13" tabindex="0">2方向のINDEX+MATCH（クロス検索）</a></li><li><a href="#toc14" tabindex="0">VLOOKUPとの違い・使い分け</a></li><li><a href="#toc15" tabindex="0">XLOOKUPとの使い分け</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a><ol><li><a href="#toc17" tabindex="0">#REF! エラー</a></li><li><a href="#toc18" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc19" tabindex="0">#N/A エラー（INDEX+MATCH連携時）</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<h3 class="wp-block-heading"><span id="toc2">読み方と語源</span></h3>



<p>読み方は「インデックス関数」です。英語の「index」は「索引・目次」を意味します。表の中から目次のように位置を指定してデータを引っ張ってくる、というイメージですね。</p>



<h3 class="wp-block-heading"><span id="toc3">INDEX関数でできること</span></h3>



<p>INDEX関数は、<strong>指定した行番号・列番号の位置にあるセルの値を返す関数</strong>です。</p>



<p>たとえば「売上管理表の3行目・2列目の値を取り出したい」というケースで活躍します。VLOOKUPのように検索値を使うのではなく、行と列の番号をダイレクトに指定するのが特徴です。</p>



<p>対応環境は、Excel for Microsoft 365、Excel 2024、Excel 2021、Excel 2019、Excel 2016、Excel for the web、Excel for Macです。幅広いバージョンで使えるので安心してください。</p>



<h3 class="wp-block-heading"><span id="toc4">配列形式とセル参照形式</span></h3>



<p>実はINDEX関数には「配列形式」と「セル参照形式」の2種類があります。</p>



<ul class="wp-block-list"><li><strong>配列形式</strong>: <code>=INDEX(配列, 行番号, [列番号])</code> — 通常使うのはこちら</li><li><strong>セル参照形式</strong>: <code>=INDEX(参照, 行番号, [列番号], [領域番号])</code> — 複数の離れた範囲を切り替えて扱いたいときに使う</li></ul>



<p>実務ではほぼ配列形式で事足りるので、この記事では配列形式を中心に解説します。</p>



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



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



<p>INDEX関数の構文は次のとおりです。</p>



<pre class="wp-block-code"><code>=INDEX(配列, 行番号, [列番号])</code></pre>



<p>引数は3つありますが、列番号は省略できます。配列が1列だけの場合は、行番号だけで値を取り出せるということですね。</p>



<h3 class="wp-block-heading"><span id="toc7">引数の詳細</span></h3>



<p>各引数の意味を表にまとめました。</p>



<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>



<p>※列番号を指定する場合は、行番号に <code>0</code> を指定することで省略に相当する扱いになります。</p>



<p>ポイントを補足しておきます。</p>



<ul class="wp-block-list"><li><strong>行番号に「0」を指定</strong>すると、列全体の値を配列として返します</li><li><strong>列番号に「0」を指定</strong>すると、行全体の値を配列として返します</li><li>行番号・列番号に配列の範囲外の数値を指定すると、<code>#REF!</code> エラーになります</li></ul>



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



<h3 class="wp-block-heading"><span id="toc9">指定した行・列の値を取得する</span></h3>



<p>まずは一番シンプルな使い方です。次のような社員名簿があるとします。</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>営業部</td><td>1001</td></tr><tr><td>3</td><td>佐藤</td><td>経理部</td><td>2001</td></tr><tr><td>4</td><td>鈴木</td><td>人事部</td><td>3001</td></tr></tbody></table></figure>



<p>ここから「佐藤の内線番号（2行目・3列目）」を取得するには、次のように書きます。</p>



<pre class="wp-block-code"><code>=INDEX(A2:C4, 2, 3)</code></pre>



<p>結果は <code>2001</code> が返ります。配列 <code>A2:C4</code> の2行目・3列目、つまりセルC3の値を取り出しているわけです。</p>



<p>もうひとつ例を見てみましょう。配列が1列だけの場合は、列番号を省略できます。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A4, 3)</code></pre>



<p>この場合は「鈴木」が返ります。1列の範囲から3番目の値を取り出す、というシンプルな使い方です。</p>



<h3 class="wp-block-heading"><span id="toc10">行番号・列番号に0を指定して行全体・列全体を返す</span></h3>



<p>行番号または列番号に「0」を指定すると、行全体や列全体の値を配列として取得できます。</p>



<pre class="wp-block-code"><code>=INDEX(A2:C4, 0, 2)</code></pre>



<p>この数式は、2列目（B列）の全データ、つまり「営業部」「経理部」「人事部」を配列として返します。SUM関数やAVERAGE関数と組み合わせると便利ですよ。</p>



<pre class="wp-block-code"><code>=SUM(INDEX(A2:C4, 0, 3))</code></pre>



<p>こうすると、3列目（内線番号）の合計を返します。ちょっとむずかしく見えますが、やっていることはシンプルです。「0」は「全部ちょうだい」という意味だと覚えておけばOKです。</p>



<h2 class="wp-block-heading"><span id="toc11">INDEX関数とMATCH関数の組み合わせ</span></h2>



<p>INDEX関数の真価は、MATCH関数と組み合わせたときに発揮されます。ここが一番実務で役立つパートなので、しっかり押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc12">INDEX+MATCHの基本パターン</span></h3>



<p>MATCH関数は、指定した値が範囲内の何番目にあるかを返す関数です。この「何番目か」をINDEX関数の行番号に渡すことで、検索値に対応するデータを柔軟に取り出せます。</p>



<p>基本パターンはこちらです。</p>



<pre class="wp-block-code"><code>=INDEX(取り出したい範囲, MATCH(検索値, 検索する範囲, 0))</code></pre>



<p>先ほどの社員名簿で、「佐藤」の内線番号を検索値から取得する場合はこうなります。</p>



<pre class="wp-block-code"><code>=INDEX(C2:C4, MATCH(&quot;佐藤&quot;, A2:A4, 0))</code></pre>



<p>処理の流れを分解すると、次のようになります。</p>



<ol class="wp-block-list"><li><code>MATCH("佐藤", A2:A4, 0)</code> → 「佐藤」はA2:A4の2番目なので <code>2</code> を返す</li><li><code>INDEX(C2:C4, 2)</code> → C2:C4の2番目の値 <code>2001</code> を返す</li></ol>



<p>MATCH関数の第3引数「0」は完全一致を意味します。ほとんどの場合は「0」を指定すると覚えておいてください。</p>



<p>MATCH関数の詳しい使い方は、こちらの記事で解説しています。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数で範囲内から値を検索し、相対的な位置を取得する</a></p>



<h3 class="wp-block-heading"><span id="toc13">2方向のINDEX+MATCH（クロス検索）</span></h3>



<p>MATCH関数を行番号と列番号の両方に入れると、「縦軸と横軸から交差するセルを取り出す」クロス検索ができます。</p>



<p>たとえば、商品×月のマトリクス表から「商品B」の「3月」の売上を取り出すには、こう書きます。</p>



<pre class="wp-block-code"><code>=INDEX(B2:D5, MATCH(&quot;商品B&quot;, A2:A5, 0), MATCH(&quot;3月&quot;, B1:D1, 0))</code></pre>



<p>行方向と列方向、どちらの検索も柔軟にできるのがINDEX+MATCHの強みです。XLOOKUPが使えない環境でも、この組み合わせなら同じことが実現できます。</p>



<h3 class="wp-block-heading"><span id="toc14">VLOOKUPとの違い・使い分け</span></h3>



<p>「VLOOKUPがあるならINDEX+MATCHは要らないのでは？」と思うかもしれません。実は、INDEX+MATCHにはVLOOKUPにない大きなメリットがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>VLOOKUP</th><th>INDEX+MATCH</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>VLOOKUPより高速な場合がある</td></tr><tr><td>数式の読みやすさ</td><td>シンプルで直感的</td><td>慣れるまでやや複雑</td></tr></tbody></table></figure>



<p>特に重要なのが<strong>検索方向</strong>です。VLOOKUPは検索値が左端列にないと使えませんが、INDEX+MATCHなら検索列と取得列を自由に指定できます。</p>



<p>たとえば「内線番号から名前を逆引きしたい」という場合、VLOOKUPでは対応できませんが、INDEX+MATCHなら簡単です。</p>



<pre class="wp-block-code"><code>=INDEX(A2:A4, MATCH(2001, C2:C4, 0))</code></pre>



<p>結果は「佐藤」が返ります。検索列が右側にあっても問題なく動くのが、INDEX+MATCHの強みです。</p>



<p>VLOOKUPの詳しい使い方はこちらの記事で解説しています。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数を徹底解説！初心者でも使いこなせる完全ガイド</a></p>



<h3 class="wp-block-heading"><span id="toc15">XLOOKUPとの使い分け</span></h3>



<p>Excel for Microsoft 365やExcel 2021以降をお使いなら、XLOOKUP関数という新しい選択肢もあります。VLOOKUPの制限を解消した後継関数で、左方向の検索もスピルにも対応しています。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>対応バージョン</th><th>左方向検索</th><th>数式のシンプルさ</th></tr></thead><tbody><tr><td>VLOOKUP</td><td>全バージョン</td><td>×</td><td>〇</td></tr><tr><td>INDEX+MATCH</td><td>全バージョン</td><td>〇</td><td>△</td></tr><tr><td>XLOOKUP</td><td>365 / 2021以降</td><td>〇</td><td>◎</td></tr></tbody></table></figure>



<p>使い分けの目安は次のとおりです。</p>



<ul class="wp-block-list"><li><strong>Excel 2021以降 or Microsoft 365</strong> → XLOOKUPを第一候補に</li><li><strong>Excel 2019以前も含めて使うファイル</strong> → INDEX+MATCHが安全</li><li><strong>シンプルな左端検索だけ</strong> → VLOOKUPでもOK</li></ul>



<p>XLOOKUPの詳しい使い方はこちらで解説しています。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-xlookup/">XLOOKUP関数を徹底解説！基本から応用まで完全マスター</a></p>



<p>3つの関数をまとめて比較したい場合は、こちらの記事もあわせてどうぞ。</p>



<p><a href="https://mashukabu.com/excel-vlookup-xlookup-index-match-comparison/">VLOOKUP・XLOOKUP・INDEX+MATCHを徹底比較</a></p>



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



<p>INDEX関数で発生しやすいエラーと、その原因・対処法をまとめました。</p>



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



<p><code>#REF!</code> エラーは、<strong>行番号や列番号が配列の範囲を超えている</strong>ときに発生します。</p>



<pre class="wp-block-code"><code>=INDEX(A2:C4, 5, 1)</code></pre>



<p>この例では、A2:C4は3行しかないのに行番号に「5」を指定しているため、<code>#REF!</code> エラーになります。</p>



<p><strong>対処法:</strong> 配列の行数・列数を確認してください。ROWS関数やCOLUMNS関数で範囲のサイズを確認すると安心です。</p>



<pre class="wp-block-code"><code>=ROWS(A2:C4)    → 3（行数）
=COLUMNS(A2:C4) → 3（列数）</code></pre>



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



<p><code>#VALUE!</code> エラーは、<strong>行番号や列番号に数値以外の値（文字列など）を指定した</strong>場合に発生します。</p>



<pre class="wp-block-code"><code>=INDEX(A2:C4, &quot;二&quot;, 1)</code></pre>



<p><strong>対処法:</strong> 行番号・列番号には必ず数値を指定してください。セル参照を使っている場合は、参照先のセルが数値になっているか確認しましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">#N/A エラー（INDEX+MATCH連携時）</span></h3>



<p>INDEX単体ではあまり出ませんが、MATCHと組み合わせたときに <code>#N/A</code> が出ることがあります。これはMATCH側で検索値が見つからなかったサインです。</p>



<pre class="wp-block-code"><code>=INDEX(C2:C4, MATCH(&quot;高橋&quot;, A2:A4, 0))</code></pre>



<p>A列に「高橋」がいなければ、MATCHが <code>#N/A</code> を返し、そのままINDEXにも伝わってしまいます。</p>



<p><strong>対処法:</strong> IFERROR関数でラップして、見つからなかった場合のメッセージを指定しておくと実務で使いやすくなります。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX(C2:C4, MATCH(&quot;高橋&quot;, A2:A4, 0)), &quot;該当なし&quot;)</code></pre>



<p>エラー値の種類と対処方法の詳細は、こちらの記事でまとめています。</p>



<p><a href="https://mashukabu.com/excel-error-value-list/">セルに表示されるエラーの種類と原因、対処方法を解説</a></p>



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



<p>この記事では、ExcelのINDEX関数について解説しました。ポイントを振り返っておきましょう。</p>



<ul class="wp-block-list"><li><strong>INDEX関数</strong>は、行番号と列番号を指定して表から値を取り出す関数</li><li>基本構文は <code>=INDEX(配列, 行番号, [列番号])</code></li><li><strong>MATCH関数との組み合わせ</strong>で、検索値に対応するデータを柔軟に取得できる</li><li>2方向のINDEX+MATCHなら、クロス表からの検索も可能</li><li>VLOOKUPでは対応できない「左方向の検索」や「逆引き」も可能</li><li>Excel 2021以降なら、より簡潔なXLOOKUPも選択肢に</li><li><code>#REF!</code> は範囲外、<code>#VALUE!</code> は数値以外、<code>#N/A</code> はMATCH側の検索失敗が主な原因</li></ul>



<p>INDEX+MATCHは最初はちょっと複雑に感じるかもしれませんが、パターンを覚えてしまえば応用が利く強力な組み合わせです。ぜひ実際のデータで試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-index/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのARRAYTOTEXT関数の使い方｜配列をテキストに変換する方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-arraytotext/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-arraytotext/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Tue, 20 Dec 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ARRAYTOTEXT関数]]></category>
		<category><![CDATA[Microsoft 365]]></category>
		<category><![CDATA[テキスト変換]]></category>
		<category><![CDATA[文字列操作]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3120</guid>

					<description><![CDATA[ExcelのARRAYTOTEXT関数の使い方を解説。配列データをテキスト形式に一括変換する方法を、構文・引数・書式オプションの違い、実務での活用例とともにわかりやすく紹介します。VALUETOTEXT関数との違いも解説。]]></description>
										<content:encoded><![CDATA[
<p>Excelで複数セルのデータをまとめて1つの文字列にしたい場面、ありますよね。「報告書にデータを貼り付けたいけど、1セルずつコピーするのが面倒&#8230;」と感じたことはないでしょうか。</p>



<p>そのままだと、セルをひとつずつ手作業でつなげるしかなくて非効率です。</p>



<p>そんなときに便利なのが <strong>ARRAYTOTEXT関数</strong> です。この関数を使えば、配列やセル範囲のデータをまとめて1つのテキストに変換できますよ。</p>



<p>この記事では、ARRAYTOTEXT関数の基本的な使い方から実務での活用例まで、わかりやすく解説していきます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-6" checked><label class="toc-title" for="toc-checkbox-6">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">ExcelのARRAYTOTEXT関数とは</a></li><li><a href="#toc2" tabindex="0">ARRAYTOTEXT関数の構文と引数</a><ol><li><a href="#toc3" tabindex="0">基本構文</a></li><li><a href="#toc4" tabindex="0">引数の詳細</a></li><li><a href="#toc5" tabindex="0">書式オプションの違い</a></li></ol></li><li><a href="#toc6" tabindex="0">ARRAYTOTEXT関数の基本的な使い方</a><ol><li><a href="#toc7" tabindex="0">セル範囲を指定する</a></li><li><a href="#toc8" tabindex="0">2次元の範囲を指定する</a></li><li><a href="#toc9" tabindex="0">配列定数を直接指定する</a></li></ol></li><li><a href="#toc10" tabindex="0">ARRAYTOTEXT関数の活用例</a><ol><li><a href="#toc11" tabindex="0">担当者名の一覧を1セルにまとめる</a></li><li><a href="#toc12" tabindex="0">TEXTJOIN関数との組み合わせ</a></li><li><a href="#toc13" tabindex="0">厳格形式を活用したデータ加工</a></li></ol></li><li><a href="#toc14" tabindex="0">ARRAYTOTEXT関数とVALUETOTEXT関数の違い</a></li><li><a href="#toc15" tabindex="0">ARRAYTOTEXT関数の注意点とエラー対処</a><ol><li><a href="#toc16" tabindex="0">対応バージョンに注意</a></li><li><a href="#toc17" tabindex="0">空白セルの扱い</a></li><li><a href="#toc18" tabindex="0">大量データの場合</a></li></ol></li><li><a href="#toc19" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ExcelのARRAYTOTEXT関数とは</span></h2>



<p>ARRAYTOTEXT関数は、配列やセル範囲のデータをテキスト形式に変換して返す関数です。読み方は「アレイ トゥ テキスト」です。Array（配列）をText（テキスト）に変換する、という意味がそのまま名前になっています。</p>



<p>たとえば、A1からA3に「田中」「太郎」「22」と入っている場合、ARRAYTOTEXT関数を使うと「田中, 太郎, 22」のように1つの文字列にまとめてくれます。</p>



<p>複数のセルに散らばったデータを1つにまとめたいときに活躍する関数ですよ。</p>



<p>なお、ARRAYTOTEXT関数は <strong>Microsoft 365</strong> または <strong>Excel 2021</strong> 以降で利用できます。お使いのバージョンが対応しているか、確認しておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc2">ARRAYTOTEXT関数の構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=ARRAYTOTEXT(配列, [書式])</code></pre>



<p>引数は2つありますが、必須なのは「配列」だけです。「書式」は省略できます。</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>配列</td><td>必須</td><td>テキストに変換したいセル範囲または配列</td></tr><tr><td>書式</td><td>省略可</td><td>出力形式を指定する。0（簡潔形式）または1（厳格形式）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc5">書式オプションの違い</span></h3>



<p>書式の指定によって、出力されるテキストの形が変わります。ここがARRAYTOTEXT関数のポイントです。</p>



<p><strong>書式 = 0（簡潔形式 / デフォルト）</strong></p>



<p>省略時はこちらが適用されます。セルの表示そのままの値がカンマ区切りで並びます。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(A1:A3, 0)
→ 田中, 太郎, 22</code></pre>



<p>見た目がシンプルなので、報告書やメール本文にそのまま貼り付けたいときに向いています。</p>



<p><strong>書式 = 1（厳格形式）</strong></p>



<p>中括弧で囲まれ、文字列にはダブルクォーテーションが付きます。数値はそのまま表示されますよ。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(A1:A3, 1)
→ {&quot;田中&quot;,&quot;太郎&quot;,22}</code></pre>



<p>厳格形式は、出力結果を別の数式に渡したいときに便利です。データ型が明確になるので、文字列と数値を区別しやすくなります。</p>



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



<p>実際にARRAYTOTEXT関数を使ってみましょう。ここでは、よくある使い方を3つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc7">セル範囲を指定する</span></h3>



<p>もっとも基本的な使い方です。データが入ったセル範囲をそのまま指定します。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(A1:C1)
→ 田中, 太郎, 営業部</code></pre>



<p>横方向・縦方向のどちらの範囲でも同じように動作します。</p>



<h3 class="wp-block-heading"><span id="toc8">2次元の範囲を指定する</span></h3>



<p>行と列にまたがる範囲も指定できます。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(A1:C3)
→ 田中, 太郎, 営業部, 鈴木, 花子, 総務部, 佐藤, 一郎, 経理部</code></pre>



<p>複数行のデータもカンマ区切りで1行にまとめてくれます。データの一覧をさっと確認したいときに使えますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">配列定数を直接指定する</span></h3>



<p>セル参照ではなく、配列定数を直接指定することもできます。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT({&quot;東京&quot;,&quot;大阪&quot;,&quot;名古屋&quot;})
→ 東京, 大阪, 名古屋</code></pre>



<p>数式の中でちょっとした文字列を組み立てたいときに覚えておくと便利です。</p>



<h2 class="wp-block-heading"><span id="toc10">ARRAYTOTEXT関数の活用例</span></h2>



<p>ここからは、実務で役立つ活用例を紹介していきます。</p>



<h3 class="wp-block-heading"><span id="toc11">担当者名の一覧を1セルにまとめる</span></h3>



<p>プロジェクトの担当者リストが縦に並んでいるとき、報告書用に1セルにまとめるケースです。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(B2:B6)
→ 田中, 鈴木, 佐藤, 山田, 高橋</code></pre>



<p>これなら、報告資料にコピー&#038;ペーストするだけで済みますよね。</p>



<h3 class="wp-block-heading"><span id="toc12">TEXTJOIN関数との組み合わせ</span></h3>



<p>区切り文字を自由にカスタマイズしたい場合は、<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>を使うのがおすすめです。</p>



<p>ARRAYTOTEXTはカンマ区切り固定ですが、TEXTJOINなら区切り文字を「/」や「・」に変えられます。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;・&quot;, TRUE, B2:B6)
→ 田中・鈴木・佐藤・山田・高橋</code></pre>



<p>用途に応じて使い分けてみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">厳格形式を活用したデータ加工</span></h3>



<p>厳格形式（書式=1）の出力は、データの受け渡しに活用できます。</p>



<pre class="wp-block-code"><code>=ARRAYTOTEXT(A1:A3, 1)
→ {&quot;商品A&quot;,&quot;商品B&quot;,&quot;商品C&quot;}</code></pre>



<p>この形式は、VBAやPower Queryにデータを渡すときの入力として使えるケースがあります。データ型が明確なので、加工時のトラブルを減らせますよ。</p>



<h2 class="wp-block-heading"><span id="toc14">ARRAYTOTEXT関数とVALUETOTEXT関数の違い</span></h2>



<p>ARRAYTOTEXT関数と似た関数に、<a href="https://mashukabu.com/excel-function-howto-use-valuetotext/">VALUETOTEXT関数</a>があります。名前が似ているので混同しやすいですが、違いはシンプルです。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ARRAYTOTEXT</th><th>VALUETOTEXT</th></tr></thead><tbody><tr><td>対象</td><td>配列・セル範囲（複数セル）</td><td>単一の値（1つのセル）</td></tr><tr><td>出力</td><td>複数の値をまとめた文字列</td><td>1つの値をテキストに変換</td></tr><tr><td>書式オプション</td><td>0（簡潔）/ 1（厳格）</td><td>0（簡潔）/ 1（厳格）</td></tr></tbody></table></figure>



<p>ざっくり言うと、 <strong>複数のデータをまとめたいならARRAYTOTEXT、1つの値を変換したいならVALUETOTEXT</strong> と覚えておけば大丈夫ですよ。</p>



<p>また、文字列を結合する関数としては<a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT関数</a>もあります。CONCAT関数はセル範囲の値を区切り文字なしで結合するので、カンマ区切りが不要な場合はこちらも検討してみてください。</p>



<p>テキスト変換関連の関数を目的別に整理すると、次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>使う関数</th></tr></thead><tbody><tr><td>配列をテキストにまとめる</td><td>ARRAYTOTEXT</td></tr><tr><td>1つの値をテキストに変換する</td><td><a href="https://mashukabu.com/excel-function-howto-use-valuetotext/">VALUETOTEXT</a></td></tr><tr><td>区切り文字を自由に指定して結合する</td><td><a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN</a></td></tr><tr><td>区切り文字なしで文字列を結合する</td><td><a href="https://mashukabu.com/excel-function-howto-use-concat/">CONCAT</a></td></tr><tr><td>数値や日付を表示形式付きでテキスト化する</td><td><a href="https://mashukabu.com/excel-function-howto-use-text/">TEXT</a></td></tr><tr><td>テキストを区切り文字で分割する</td><td><a href="https://mashukabu.com/excel-function-howto-use-textsplit/">TEXTSPLIT</a></td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc15">ARRAYTOTEXT関数の注意点とエラー対処</span></h2>



<h3 class="wp-block-heading"><span id="toc16">対応バージョンに注意</span></h3>



<p>ARRAYTOTEXT関数はMicrosoft 365またはExcel 2021以降でのみ利用できます。それ以前のバージョンでは <code>#NAME?</code> エラーが表示されます。</p>



<p>もし <code>#NAME?</code> エラーが出たら、まずExcelのバージョンを確認してみてください。バージョンが対応していない場合は、<a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>で代用できます。</p>



<h3 class="wp-block-heading"><span id="toc17">空白セルの扱い</span></h3>



<p>配列の中に空白セルがある場合、簡潔形式（書式=0）ではスキップされずにカンマの間が空になります。</p>



<pre class="wp-block-code"><code>A1: 田中、A2: (空白)、A3: 佐藤 の場合
=ARRAYTOTEXT(A1:A3)
→ 田中, , 佐藤</code></pre>



<p>空白を除外したい場合は、TEXTJOIN関数の第2引数に TRUE を指定する方法が便利ですよ。</p>



<pre class="wp-block-code"><code>=TEXTJOIN(&quot;, &quot;, TRUE, A1:A3)
→ 田中, 佐藤</code></pre>



<h3 class="wp-block-heading"><span id="toc18">大量データの場合</span></h3>



<p>変換対象のセル数が多いと、結果の文字列が非常に長くなります。Excelのセルに格納できる文字数は32,767文字が上限なので、大量データの場合は範囲を区切って使いましょう。</p>



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



<p>ExcelのARRAYTOTEXT関数は、配列やセル範囲のデータをまとめて1つのテキストに変換できる関数です。</p>



<p>ポイントをおさらいしておきましょう。</p>



<ul class="wp-block-list"><li><strong>書式=0（簡潔形式）</strong>: カンマ区切りでシンプルに出力。報告書やメールへの貼り付けに便利</li><li><strong>書式=1（厳格形式）</strong>: 中括弧+引用符付きで出力。データの受け渡しに向いている</li><li><strong>VALUETOTEXT関数との違い</strong>: ARRAYTOTEXTは複数セル、VALUETOTEXTは単一セルが対象</li><li><strong>区切り文字を変えたいとき</strong>: <a href="https://mashukabu.com/excel-function-howto-use-textjoin/">TEXTJOIN関数</a>がおすすめ</li></ul>



<p>配列データを文字列に変換する場面で、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-arraytotext/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのCHOOSECOLS関数の使い方｜指定した列だけを取り出す方法</title>
		<link>https://mashukabu.com/excel-function-howto-use-choosecols/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-choosecols/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sun, 13 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[CHOOSECOLS]]></category>
		<category><![CDATA[スピル]]></category>
		<category><![CDATA[列抽出]]></category>
		<category><![CDATA[配列]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=3002</guid>

					<description><![CDATA[ExcelのCHOOSECOLS関数の使い方を解説。構文・引数の意味から、複数列の取り出し・逆順指定・他関数との組み合わせまで実例付きでわかりやすく紹介します。]]></description>
										<content:encoded><![CDATA[
<p>表のデータから特定の列だけを別の場所に取り出したいとき、手作業でコピー＆ペーストしていませんか？</p>



<p>列の順番を入れ替えたり、必要な列だけ抽出してレポートを作ったりするたびに、毎回手動で対応するのは非効率です。</p>



<p>CHOOSECOLS関数を使えば、指定した列番号を入力するだけで、必要な列を自動的に取り出せます。複数列の同時取り出しや逆順指定にも対応しており、データ加工の手間を大幅に削減できます。</p>



<p>この記事では、CHOOSECOLS関数の基本的な使い方から実務での活用例まで解説します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-7" checked><label class="toc-title" for="toc-checkbox-7">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">CHOOSECOLS関数とは</a><ol><li><a href="#toc2" tabindex="0">CHOOSECOLS関数でできること</a></li></ol></li><li><a href="#toc3" tabindex="0">CHOOSECOLS関数の構文と引数</a><ol><li><a href="#toc4" tabindex="0">列番号の指定方法</a></li></ol></li><li><a href="#toc5" tabindex="0">CHOOSECOLS関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">1列だけ取り出す</a></li><li><a href="#toc7" tabindex="0">複数列を同時に取り出す</a></li><li><a href="#toc8" tabindex="0">列の順番を並べ替える</a></li><li><a href="#toc9" tabindex="0">末尾から列を指定する（負の数）</a></li></ol></li><li><a href="#toc10" tabindex="0">実務での活用例</a><ol><li><a href="#toc11" tabindex="0">活用例1：レポート用に必要な列だけ抽出する</a></li><li><a href="#toc12" tabindex="0">活用例2：SORT関数と組み合わせて列を並べ替えながら並び替える</a></li><li><a href="#toc13" tabindex="0">活用例3：CHOOSEROWS関数と組み合わせて行と列を同時に指定する</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">CHOOSECOLS関数と関連する関数</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">関数一覧</a></li></ol></li></ol>
    </div>
  </div>

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



<p>CHOOSECOLS関数は、配列またはセル範囲から指定した列番号の列を返す関数です。Microsoft 365およびExcel 2021以降で使用できます。</p>



<p>読み方は「チューズ コラムズ（CHOOSE COLUMNS）」で、「列を選ぶ」という意味です。</p>



<h3 class="wp-block-heading"><span id="toc2">CHOOSECOLS関数でできること</span></h3>



<ul class="wp-block-list"><li>表の中から必要な列だけを抽出する</li><li>複数の列をまとめて取り出す</li><li>列の順番を自由に並べ替える</li><li>負の数を使って末尾から列を指定する</li></ul>



<p>スピル（自動展開）に対応しているため、結果が複数列にわたる場合も1つの数式で処理できます。</p>



<h2 class="wp-block-heading"><span id="toc3">CHOOSECOLS関数の構文と引数</span></h2>



<pre class="wp-block-code"><code>=CHOOSECOLS( 配列 , 列番号1 , [列番号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>列番号2以降</td><td>省略可</td><td>追加で取り出す列の番号（複数指定可）</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc4">列番号の指定方法</span></h3>



<ul class="wp-block-list"><li>正の数：先頭から数えた列番号（1＝1列目、2＝2列目）</li><li>負の数：末尾から数えた列番号（-1＝最終列、-2＝最終列から2番目）</li><li>複数指定：取り出したい順に列番号をカンマで区切る</li></ul>



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



<h3 class="wp-block-heading"><span id="toc6">1列だけ取り出す</span></h3>



<p>A2:D10の範囲から3列目（C列）だけを取り出す例です。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A2:D10, 3)</code></pre>



<p>指定したセル範囲の3列目のデータが、数式を入力したセルからスピルして表示されます。</p>



<h3 class="wp-block-heading"><span id="toc7">複数列を同時に取り出す</span></h3>



<p>A2:E10の範囲から1列目と4列目を取り出す例です。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A2:E10, 1, 4)</code></pre>



<p>「氏名（1列目）」と「売上（4列目）」のように、離れた列を一度に取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc8">列の順番を並べ替える</span></h3>



<p>元の表の列順を変えて取り出したい場合も、列番号の順番を指定するだけです。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A2:D10, 3, 1, 4, 2)</code></pre>



<p>元が「A・B・C・D」の順でも、「C・A・D・B」の順に並べ替えて取り出せます。</p>



<h3 class="wp-block-heading"><span id="toc9">末尾から列を指定する（負の数）</span></h3>



<pre class="wp-block-code"><code>=CHOOSECOLS(A2:E10, -1)</code></pre>



<p><code>-1</code> を指定すると最終列（E列）を取り出せます。列数が変動する表に対応する場合に便利です。</p>



<h2 class="wp-block-heading"><span id="toc10">実務での活用例</span></h2>



<h3 class="wp-block-heading"><span id="toc11">活用例1：レポート用に必要な列だけ抽出する</span></h3>



<p>販売管理表（商品コード・商品名・単価・数量・売上・担当者）から、報告書に必要な「商品名・売上・担当者」だけを取り出す場合：</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(A2:F100, 2, 5, 6)</code></pre>



<p>元のデータを変更せずにレポート用のビューを作れます。</p>



<h3 class="wp-block-heading"><span id="toc12">活用例2：SORT関数と組み合わせて列を並べ替えながら並び替える</span></h3>



<p>SORT関数と組み合わせると、列の並べ替えとデータの並び替えを同時に行えます。</p>



<pre class="wp-block-code"><code>=SORT(CHOOSECOLS(A2:E100, 2, 1, 4), 2, -1)</code></pre>



<p>「必要な列を選んで、かつ降順に並べる」という処理を1つの数式で完結できます。</p>



<h3 class="wp-block-heading"><span id="toc13">活用例3：CHOOSEROWS関数と組み合わせて行と列を同時に指定する</span></h3>



<p>CHOOSEROWS関数（行を選択する関数）と組み合わせると、必要な行と列を同時に抽出できます。</p>



<pre class="wp-block-code"><code>=CHOOSECOLS(CHOOSEROWS(A1:E20, 1, 3, 5), 2, 4)</code></pre>



<p>この例では1・3・5行目から2・4列目だけを取り出しています。</p>



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



<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>#REF!</td><td>列番号が配列の列数を超えている</td><td>配列の列数以内で指定する</td></tr><tr><td>#NAME?</td><td>関数名のスペルミスまたは非対応バージョン</td><td>Microsoft 365またはExcel 2021以降で使用する</td></tr><tr><td>結果が1列になる</td><td>列番号を1つしか指定していない</td><td>複数列を取り出すには列番号を複数指定する</td></tr></tbody></table></figure>



<h2 class="wp-block-heading"><span id="toc15">CHOOSECOLS関数と関連する関数</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>用途</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-chooserows/">CHOOSEROWS</a></td><td>行を選択して取り出す（CHOOSECOLSの行版）</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX</a></td><td>行と列の交差するセルを返す</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-filter/">FILTER</a></td><td>条件に合う行または列を抽出する</td></tr><tr><td><a href="https://mashukabu.com/excel-function-alphabetical-order/">Excel関数一覧（アルファベット順）</a></td><td>全関数の一覧</td></tr></tbody></table></figure>



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



<p>CHOOSECOLS関数は、配列から指定した列を自由に取り出せる関数です。</p>



<ul class="wp-block-list"><li>1列だけの抽出から複数列の同時取り出しまで対応</li><li>負の数で末尾から列を指定できる</li><li>SORT・CHOOSEROWS・FILTERと組み合わせると柔軟なデータ加工が可能</li><li>Microsoft 365・Excel 2021以降で使用可能</li></ul>



<p>元のデータを変えずに必要な列だけを取り出してレポートを作りたい場面で活躍します。</p>



<h3 class="wp-block-heading"><span id="toc17">関数一覧</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-alphabetical-order/">アルファベット順 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-list-by-function/">機能別 Excel関数一覧</a></li><li><a href="https://mashukabu.com/excel-function-alphabetical-order-pronunciation/">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-function-howto-use-choosecols/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>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関数の使い方を初心者向けに解説。基本の「掛けて合計」から、条件付き集計・OR条件・加重平均の実務テクニックまで実例付きで紹介。SUMIF・SUMIFSとの使い分けも解説します。]]></description>
										<content:encoded><![CDATA[
<p>「商品ごとの売上を出したいけど、単価と数量を1行ずつ掛けてから合計するのは面倒&#8230;」。Excelで集計作業をしていると、こんな場面に出くわしますよね。</p>



<p>作業列を増やすほどシートが散らかるし、ミスも起きやすくなります。</p>



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



<p>この記事では、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-8" checked><label class="toc-title" for="toc-checkbox-8">目次</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></li><li><a href="#toc6" tabindex="0">SUMPRODUCT関数の応用例｜条件付き集計</a><ol><li><a href="#toc7" tabindex="0">1つの条件で集計する</a></li><li><a href="#toc8" tabindex="0">複数条件（AND）で集計する</a></li><li><a href="#toc9" tabindex="0">OR条件で集計する</a></li></ol></li><li><a href="#toc10" tabindex="0">SUMPRODUCT関数の実務テクニック</a><ol><li><a href="#toc11" tabindex="0">加重平均を求める</a></li><li><a href="#toc12" tabindex="0">COUNTIFの代わりに条件付きカウントをする</a></li></ol></li><li><a href="#toc13" tabindex="0">SUMPRODUCT関数でよくあるエラーと対処法</a><ol><li><a href="#toc14" tabindex="0">#VALUE! エラー</a></li><li><a href="#toc15" tabindex="0">数値が入っているのに結果が0になる</a></li><li><a href="#toc16" tabindex="0">条件式で結果がおかしい</a></li></ol></li><li><a href="#toc17" tabindex="0">SUMIF・SUMIFS関数との違い・使い分け</a></li><li><a href="#toc18" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<p>名前は「SUM（合計）」と「PRODUCT（積・掛け算）」の組み合わせ。文字どおり「掛け算の合計」を一発で求められます。</p>



<p>たとえば、商品リストの「単価」と「数量」があるとき、全商品の売上合計をワンステップで計算できます。通常なら作業列に「単価 x 数量」を入力してからSUM関数で合計しますが、SUMPRODUCT関数なら数式1つで済むわけです。</p>



<p>SUMPRODUCT関数でできることを整理すると、次のとおりです。</p>



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



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



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SUMPRODUCT関数はExcel 2007以降のすべてのバージョンと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>カッコの中に、計算したい配列やセル範囲を指定します。</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>引数が1つだけの場合は、その範囲の合計を返します。<a href="https://mashukabu.com/excel-function-howto-use-sum/">SUM関数</a>と同じ動作ですね。引数を2つ以上指定すると、対応する位置の要素同士を掛け算してから合計します。</p>



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



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



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



<p>次のような商品リストがあるとします。</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>全商品の売上合計を出すには、次の数式を入力します。</p>



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



<p>この数式は内部で次のように計算しています。</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>結果は <strong>31,000</strong> です。</p>



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



<h2 class="wp-block-heading"><span id="toc6">SUMPRODUCT関数の応用例｜条件付き集計</span></h2>



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



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



<p>先ほどの商品リストにカテゴリ列を追加したデータで考えてみましょう。</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>「文房具」だけの売上合計を出したい場合、次のように書きます。</p>



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



<p>ポイントは <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>結果は <strong>28,000</strong> です。</p>



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



<p>条件を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>条件部分をカッコで囲んで <code>*</code> でつなぐだけ。条件をいくつ増やしても同じパターンで追加できます。</p>



<p>計算過程を確認してみましょう。</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>結果は <strong>16,000</strong> です。</p>



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



<p>「文房具」<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><code>*</code> がAND条件、<code>+</code> がOR条件と覚えておくとわかりやすいですよ。</p>



<p>ただし、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><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="toc10">SUMPRODUCT関数の実務テクニック</span></h2>



<p>条件付き集計以外にも、実務で使えるテクニックがあります。代表的な2つを紹介しますね。</p>



<h3 class="wp-block-heading"><span id="toc11">加重平均を求める</span></h3>



<p>「科目ごとに配点（重み）が違うテストの平均点を出したい」。こんなときは加重平均が必要です。</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>加重平均の計算式はこうなります。</p>



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



<p>計算の流れを確認しましょう。</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>AVERAGE関数の単純平均は <code>(80+90+70)/3 = 80</code> ですが、配点を考慮した加重平均は <strong>約81.7</strong> になります。配点の大きい数学の比重が高くなるわけですね。</p>



<h3 class="wp-block-heading"><span id="toc12">COUNTIFの代わりに条件付きカウントをする</span></h3>



<p>SUMPRODUCT関数で条件に合うデータの件数を数えることもできます。</p>



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



<p>条件式 <code>(B2:B5="文房具")</code> が返す <code>TRUE/FALSE</code> に <code>*1</code> を掛けると <code>1/0</code> の数値になります。その合計がそのまま件数です。この例では <strong>3</strong> が返ります。</p>



<p>単純なカウントなら<a href="https://mashukabu.com/excel-function-howto-use-countif/">COUNTIF関数</a>で十分です。ただし、「文房具で単価200以上」のように複数条件をANDやORで組み合わせたいときは、SUMPRODUCT関数のほうが柔軟に書けますよ。</p>



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



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



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



<p>SUMPRODUCT関数を使っていると遭遇しやすいエラーを3つ紹介します。</p>



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



<p><strong>原因</strong>: 指定した配列のサイズ（行数・列数）が一致していない。</p>



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



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



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



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



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



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



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



<p><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="toc16">条件式で結果がおかしい</span></h3>



<p><strong>原因</strong>: 条件部分のカッコが抜けている。</p>



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



<p><strong>対処法</strong>: 条件部分は必ずカッコで囲みましょう。</p>



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



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



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



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



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



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



<p>ポイントをおさらいしましょう。</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> でつなぐ</li><li>加重平均は <code>SUMPRODUCT(値, 重み) / SUM(重み)</code> で求められる</li><li>配列のサイズは必ず揃える（<code>#VALUE!</code> エラーの原因になる）</li><li>単純な条件合計にはSUMIF・SUMIFS、柔軟な条件合計にはSUMPRODUCTと使い分けよう</li></ul>



<p>最初はちょっと取っつきにくく感じるかもしれません。でも一度覚えてしまえば、作業列を減らせてシートがすっきりしますよ。ぜひ実務で試してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-sumproduct/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
