<?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>OFFSET関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/offset%E9%96%A2%E6%95%B0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Thu, 04 Jun 2026 14:43:09 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://mashukabu.com/wp-content/uploads/2022/04/cropped-site-icon-32x32.png</url>
	<title>OFFSET関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのCOLUMNS関数の使い方｜列数を調べる方法</title>
		<link>https://mashukabu.com/spreadsheet-columns-function/</link>
					<comments>https://mashukabu.com/spreadsheet-columns-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:37:04 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMNS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[OFFSET関数]]></category>
		<category><![CDATA[ROWS関数]]></category>
		<category><![CDATA[列数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4891</guid>

					<description><![CDATA[スプレッドシートのCOLUMNS関数でセル範囲の列数を調べる方法を解説。COLUMN関数との違い、INDEX・OFFSET・ROWS関数との組み合わせ技、エラー対処法まで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「この表って何列あるんだろう？」と数えたくなること、ありますよね。</p>



<p class="wp-block-paragraph">列数が多い表だと、目的の範囲が何列分あるか数え間違えることもあります。データの列が増減するたびに数え直すのも面倒です。</p>



<p class="wp-block-paragraph">スプレッドシートのCOLUMNS関数を使えば、セル範囲の列数を一発で自動カウントできます。他の関数と組み合わせれば、動的な範囲制御やデータサイズの検証にも活用できますよ。</p>



<p class="wp-block-paragraph">この記事では、COLUMNS関数の基本的な書き方から、実務で使える組み合わせパターンまで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのCOLUMNS関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">COLUMNS関数の基本構文</a></li><li><a href="#toc3" tabindex="0">COLUMN関数との違いを押さえよう</a></li></ol></li><li><a href="#toc4" tabindex="0">COLUMNS関数の基本的な使い方</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">COLUMNS関数の実務活用パターン</a><ol><li><a href="#toc10" tabindex="0">パターン1: INDEX関数と組み合わせて最終列のデータを取得</a></li><li><a href="#toc11" tabindex="0">パターン2: OFFSET関数と組み合わせて可変範囲を作る</a></li><li><a href="#toc12" tabindex="0">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</a></li><li><a href="#toc13" tabindex="0">パターン4: データ項目数の検証に使う</a></li><li><a href="#toc14" tabindex="0">パターン5: ROWS関数と組み合わせて総セル数を計算</a></li></ol></li><li><a href="#toc15" tabindex="0">COLUMN関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">ROWS関数との比較</a></li><li><a href="#toc18" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc19" tabindex="0">まとめ</a><ol><li><a href="#toc20" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのCOLUMNS関数とは？基本の仕組みを理解しよう</span></h2>



<p class="wp-block-paragraph">COLUMNS関数（読み方: カラムズ関数）は、指定したセル範囲の<strong>列数</strong>を数値で返す関数です。「COLUMNS」は英語の「COLUMN（列）」の複数形で、列がいくつあるかを意味します。</p>



<p class="wp-block-paragraph">たとえば <code>=COLUMNS(A1:C1)</code> と入力すると、結果は「3」です。A列からC列まで3列分あるからですね。</p>



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



<ul class="wp-block-list"><li>セル範囲の列数を数値で返す</li><li>行方向にどれだけ広がっていても、列数だけをカウントする</li><li>名前付き範囲や配列定数にも使える</li><li>他の関数と組み合わせて動的な範囲制御に使える</li></ul>



<h3 class="wp-block-heading"><span id="toc2">COLUMNS関数の基本構文</span></h3>



<pre class="wp-block-code"><code>=COLUMNS(範囲)</code></pre>



<p class="wp-block-paragraph">カッコの中に、列数を調べたい範囲を指定します。</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></tbody></table></figure>



<p class="wp-block-paragraph">引数は1つだけなので覚えやすい関数です。ただし、COLUMN関数と違って<strong>引数の省略はできません</strong>。<code>=COLUMNS()</code> と書くとエラーになるので注意してください。</p>



<h3 class="wp-block-heading"><span id="toc3">COLUMN関数との違いを押さえよう</span></h3>



<p class="wp-block-paragraph">COLUMNS関数とCOLUMN関数は名前がよく似ていますが、返す情報がまったく異なります。</p>



<pre class="wp-block-code"><code>=COLUMN(C1)      → 3（C1セルの列番号）
=COLUMNS(A1:C10) → 3（A1からC10の列数）</code></pre>



<ul class="wp-block-list"><li><strong>COLUMN関数</strong>: セルが「何列目にあるか」を返す（位置の情報）</li><li><strong>COLUMNS関数</strong>: 範囲に「何列あるか」を返す（サイズの情報）</li></ul>



<p class="wp-block-paragraph">覚え方は「複数形のCOLUMNSは範囲全体の列数を数える」と考えるとわかりやすいですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>COLUMNS関数はGoogleスプレッドシートの全バージョンで使えます。Excelでもまったく同じ構文で動作します。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc5">セル範囲の列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS(A1:E1)</code></pre>



<p class="wp-block-paragraph">A1からE1までの列数「5」を返します。行方向にどれだけ広がっていても結果は同じです。<code>=COLUMNS(A1:E10)</code> でも「5」になります。</p>



<h3 class="wp-block-heading"><span id="toc6">単一セルの列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS(B5)</code></pre>



<p class="wp-block-paragraph">単一セルは1列分なので、結果は「1」です。実務で単体で使う場面は少ないですが、数式の仕組みを理解するための基本として押さえておきましょう。</p>



<h3 class="wp-block-heading"><span id="toc7">名前付き範囲の列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS(売上データ)</code></pre>



<p class="wp-block-paragraph">名前付き範囲「売上データ」の列数を返します。メニューの「データ」>「名前付き範囲」で設定した範囲が対象です。セル参照を直接書くよりわかりやすくなりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">配列定数の列数を調べる</span></h3>



<pre class="wp-block-code"><code>=COLUMNS({1,2,3;4,5,6;7,8,9})</code></pre>



<p class="wp-block-paragraph">配列定数の列数「3」を返します。カンマ（<code>,</code>）で区切られた要素が列に対応します。セミコロン（<code>;</code>）は行の区切りなので、列数には影響しません。</p>



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



<h3 class="wp-block-heading"><span id="toc10">パターン1: INDEX関数と組み合わせて最終列のデータを取得</span></h3>



<p class="wp-block-paragraph">データ範囲の最後の列の値を取り出したいときに便利なパターンです。</p>



<pre class="wp-block-code"><code>=INDEX(A1:G1, COLUMNS(A1:G1))</code></pre>



<p class="wp-block-paragraph">COLUMNS関数で範囲の列数（7）を取得し、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>の列番号に渡しています。範囲の最後の列、つまりG1の値を返します。</p>



<p class="wp-block-paragraph">2次元範囲で最終列・最終行のデータを取り出す場合は、ROWS関数と組み合わせます。</p>



<pre class="wp-block-code"><code>=INDEX(A1:G10, ROWS(A1:G10), COLUMNS(A1:G10))</code></pre>



<p class="wp-block-paragraph">ROWS関数で行数（10）、COLUMNS関数で列数（7）を取得して、範囲の右下隅のデータを返す仕組みです。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2: OFFSET関数と組み合わせて可変範囲を作る</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-offset-function/">OFFSET関数</a>の「幅」引数にCOLUMNS関数を使うと、範囲のサイズを動的に制御できます。</p>



<pre class="wp-block-code"><code>=OFFSET(A1, 0, 0, 1, COLUMNS(A1:E1))</code></pre>



<p class="wp-block-paragraph">COLUMNS関数が返す列数に応じて、OFFSET関数が返す範囲の幅が変わります。グラフの参照範囲やデータ入力規則の元データを可変にしたいときに活躍するパターンです。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3: INDIRECT関数と組み合わせて動的な範囲サイズを取得</span></h3>



<p class="wp-block-paragraph">文字列で組み立てた範囲の列数を調べたいときに使えます。</p>



<pre class="wp-block-code"><code>=COLUMNS(INDIRECT(&quot;A1:&quot; &amp; B1 &amp; &quot;1&quot;))</code></pre>



<p class="wp-block-paragraph">セルB1に入力された列文字に応じて範囲のサイズが変わります。B1が「F」なら <code>=COLUMNS(A1:F1)</code> と同じ結果（6）です。ユーザーが列数を指定して範囲を制御する仕組みを作りたいときに便利ですよ。</p>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>の詳しい使い方は関連記事を参考にしてみてください。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4: データ項目数の検証に使う</span></h3>



<p class="wp-block-paragraph">想定どおりの列数があるかチェックする数式です。</p>



<pre class="wp-block-code"><code>=IF(COLUMNS(A1:G1) = 7, &quot;OK&quot;, &quot;列数が違います&quot;)</code></pre>



<p class="wp-block-paragraph">COLUMNS関数で範囲の列数を調べ、期待値（7列）と比較しています。他のシートからデータを取り込んだときに、列構造が変わっていないか検証するのに使えます。</p>



<h3 class="wp-block-heading"><span id="toc14">パターン5: ROWS関数と組み合わせて総セル数を計算</span></h3>



<p class="wp-block-paragraph">COLUMNS関数とROWS関数を掛け合わせると、データ範囲の総セル数がわかります。</p>



<pre class="wp-block-code"><code>=ROWS(A1:G10) * COLUMNS(A1:G10)</code></pre>



<p class="wp-block-paragraph">この数式は <code>10 * 7 = 70</code> を返します。想定どおりのデータサイズか確認したいときに使えるパターンです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>COLUMNS関数は「範囲の列数」を返すだけのシンプルな関数です。単体よりも、INDEX・OFFSET・INDIRECTなど他の関数と組み合わせてこそ真価を発揮します。</p></blockquote>



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



<p class="wp-block-paragraph">COLUMNS関数とCOLUMN関数は名前が似ていますが、役割がまったく異なります。混同しやすいポイントを整理しておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMNS関数</th><th>COLUMN関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の列数（サイズ）</td><td>セルの列番号（位置）</td></tr><tr><td>引数</td><td>セル範囲（必須）</td><td>セル参照（省略可）</td></tr><tr><td>構文</td><td><code>=COLUMNS(A1:E1)</code></td><td><code>=COLUMN(A1)</code></td></tr><tr><td>結果の例</td><td><code>=COLUMNS(C1:F1)</code> → 4</td><td><code>=COLUMN(C1)</code> → 3</td></tr><tr><td>主な用途</td><td>範囲サイズの取得、動的範囲の制御</td><td>連番作成、動的な列参照</td></tr><tr><td>引数省略</td><td>不可（エラーになる）</td><td>可（自分のセルの列番号を返す）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li>「この範囲は<strong>何列あるか</strong>」を知りたい → <strong>COLUMNS関数</strong></li><li>「このセルは<strong>何列目か</strong>」を知りたい → <strong>COLUMN関数</strong></li></ul>



<p class="wp-block-paragraph">COLUMN関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-column-function/">スプレッドシートのCOLUMN関数の使い方</a>」で解説しています。</p>



<h2 class="wp-block-heading"><span id="toc17">ROWS関数との比較</span></h2>



<p class="wp-block-paragraph">COLUMNS関数とROWS関数は、列と行の方向が違うだけの<strong>対称ペア</strong>です。</p>



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMNS関数</th><th>ROWS関数</th></tr></thead><tbody><tr><td>返す値</td><td>範囲の列数</td><td>範囲の行数</td></tr><tr><td>構文</td><td><code>=COLUMNS(範囲)</code></td><td><code>=ROWS(範囲)</code></td></tr><tr><td>結果の例</td><td><code>=COLUMNS(A1:C10)</code> → 3</td><td><code>=ROWS(A1:C10)</code> → 10</td></tr><tr><td>方向</td><td>横方向のサイズ</td><td>縦方向のサイズ</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">構文も <code>=COLUMNS(範囲)</code> と <code>=ROWS(範囲)</code> でまったく同じ形です。セットで覚えてしまいましょう。</p>



<p class="wp-block-paragraph">また、ROW関数は「何行目か」を返す関数です。4つの関数の関係を整理すると次のようになります。</p>



<figure class="wp-block-table"><table><thead><tr><th>&nbsp;</th><th>位置（1つのセル）</th><th>サイズ（範囲）</th></tr></thead><tbody><tr><td>行（縦）</td><td>ROW関数</td><td>ROWS関数</td></tr><tr><td>列（横）</td><td>COLUMN関数</td><td>COLUMNS関数</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">この4つの関係を押さえておけば、「行番号？ 行数？ 列番号？ 列数？」で迷うことがなくなりますよ。</p>



<p class="wp-block-paragraph">ROWS関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a>」で解説しています。</p>



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



<p class="wp-block-paragraph">COLUMNS関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、いくつか注意点があります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>引数なしでエラー</td><td><code>=COLUMNS()</code> と引数を省略した</td><td>COLUMNS関数は引数が必須です。列数を調べたい範囲を指定してください</td></tr><tr><td><code>#REF!</code></td><td>参照先の行や列が削除された</td><td>参照先セルが存在するか確認してください</td></tr><tr><td><code>#NAME?</code></td><td>名前付き範囲のスペルミス</td><td>「データ」>「名前付き範囲」から名前を確認してください</td></tr><tr><td>期待と違う数値が返る</td><td>列数ではなく列番号を求めていた</td><td>列番号がほしい場合はCOLUMN関数を使ってください</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">特に注意したいのが「引数省略」のケースです。COLUMN関数は <code>=COLUMN()</code> と引数なしで使えますが、COLUMNS関数は必ず範囲を指定する必要があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>「期待と違う数値が返る」場合は、COLUMNS関数とCOLUMN関数を混同していることがほとんどです。COLUMNS関数は範囲の「サイズ」、COLUMN関数はセルの「位置」を返します。<code>=COLUMNS(C1:F1)</code> は「4」、<code>=COLUMN(C1)</code> は「3」です。</p></blockquote>



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



<p class="wp-block-paragraph">COLUMNS関数は、セル範囲の列数を取得するシンプルな関数です。他の関数と組み合わせることで、最終列データの取得や動的な範囲制御に活用できます。</p>



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



<ul class="wp-block-list"><li>COLUMNS関数は <code>=COLUMNS(範囲)</code> で、範囲の列数を数値で返す（引数の省略は不可）</li><li>COLUMN関数は「何列目か（位置）」、COLUMNS関数は「何列あるか（サイズ）」を返す</li><li>INDEX関数と組み合わせれば、最終列のデータを簡単に取得できる</li><li>OFFSET関数と組み合わせれば、動的に伸縮する範囲を作れる</li><li>ROWS関数とは行・列の方向が違うだけの対称ペア</li></ul>



<p class="wp-block-paragraph">まずは <code>=COLUMNS(A1:E1)</code> のシンプルな使い方から試してみてください。INDEX関数やOFFSET関数との組み合わせを覚えれば、データ管理がグッとラクになりますよ。</p>



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



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-column-function/">スプレッドシートのCOLUMN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-rows-function/">スプレッドシートのROWS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-columns-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのOFFSET関数の使い方｜動的な範囲指定で集計を自動化</title>
		<link>https://mashukabu.com/spreadsheet-offset-function/</link>
					<comments>https://mashukabu.com/spreadsheet-offset-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:03 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COUNTA]]></category>
		<category><![CDATA[OFFSET関数]]></category>
		<category><![CDATA[SUM]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[動的範囲]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4654</guid>

					<description><![CDATA[スプレッドシートのOFFSET関数の使い方を基本から実務活用まで解説。SUM・COUNTAとの組み合わせで動的範囲を作る方法、MATCH関数との連携、よくあるエラーの対処法まで実例付きで紹介します。]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">「データが増えるたびに集計範囲を手で直している」。スプレッドシートでそんな手間、ありませんか？</p>



<p class="wp-block-paragraph">毎回セル範囲を修正するのは面倒ですし、直し忘れると集計がズレてしまいます。</p>



<p class="wp-block-paragraph">スプレッドシートの<strong>OFFSET関数</strong>を使えば解決できます。基準セルからの移動量を指定して、動的に範囲を作れる関数です。基本の書き方から実務で使える動的集計の作り方まで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのOFFSET関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・語源</a></li><li><a href="#toc3" tabindex="0">OFFSET関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">OFFSET関数の書き方（構文と引数）</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li></ol></li><li><a href="#toc7" tabindex="0">OFFSET関数の基本的な使い方</a><ol><li><a href="#toc8" tabindex="0">単一セルを参照する</a></li><li><a href="#toc9" tabindex="0">上方向・左方向に移動する</a></li><li><a href="#toc10" tabindex="0">範囲を返す（高さ・幅の指定）</a></li></ol></li><li><a href="#toc11" tabindex="0">OFFSET関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">SUM + OFFSET + COUNTAで動的合計</a></li><li><a href="#toc13" tabindex="0">AVERAGE + OFFSETで直近N件の平均</a></li><li><a href="#toc14" tabindex="0">AVERAGE + OFFSETで直近N件の平均</a></li><li><a href="#toc15" tabindex="0">MATCH + OFFSETで検索結果のずれた列を取得</a></li></ol></li><li><a href="#toc16" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc17" tabindex="0">似た関数との違い・使い分け</a><ol><li><a href="#toc18" tabindex="0">OFFSET関数 と INDEX関数</a></li><li><a href="#toc19" tabindex="0">OFFSET関数 と INDIRECT関数</a></li></ol></li><li><a href="#toc20" tabindex="0">まとめ</a><ol><li><a href="#toc21" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">スプレッドシートのOFFSET関数とは？</span></h2>



<p class="wp-block-paragraph">OFFSET関数は、基準セルから指定した行数・列数だけ移動した位置のセルやセル範囲を返す関数です。</p>



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



<p class="wp-block-paragraph">OFFSET関数は「<strong>オフセット関数</strong>」と読みます。英語の「offset」は「ずらす」という意味です。基準セルからの「ずれ」を指定して参照先を決めます。</p>



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



<p class="wp-block-paragraph">最大の特徴は、第4・第5引数で「高さ」と「幅」を指定できる点です。任意のサイズの範囲を動的に生成できます。<a href="https://mashukabu.com/spreadsheet-sum-function/">SUM関数</a>の引数に入れれば、データの増減に自動で対応する集計式が作れますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>OFFSET関数は「揮発性関数」です。シート内のどこかのセルが変更されるたびに再計算されます。大量に使うとシートの動作が重くなることがあるので注意してください。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=OFFSET(セル参照, 行数, 列数, [高さ], [幅])</code></pre>



<h3 class="wp-block-heading"><span id="toc6">引数の説明</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>基準から下方向に移動する行数。負の数で上方向</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>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>行数・列数に <code>0</code> を指定すると移動しません。「行だけずらしたい」ときは列数を <code>0</code> にします。</p></blockquote>



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



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



<h3 class="wp-block-heading"><span id="toc8">単一セルを参照する</span></h3>



<p class="wp-block-paragraph">セルA1を基準に、2行下・1列右のセルを参照する例です。</p>



<pre class="wp-block-code"><code>=OFFSET(A1, 2, 1)</code></pre>



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



<p class="wp-block-paragraph">A1から2行下・1列右なので、B3の値が返ります。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/03_result_offset-basic.png" alt="03 result offset basic" /></figure>



<h3 class="wp-block-heading"><span id="toc9">上方向・左方向に移動する</span></h3>



<p class="wp-block-paragraph">行数や列数に負の数を指定すると、反対方向に移動できます。</p>



<pre class="wp-block-code"><code>=OFFSET(C5, -2, -1)</code></pre>



<p class="wp-block-paragraph">C5から2行上・1列左に移動するので、B3の値が返ります。</p>



<h3 class="wp-block-heading"><span id="toc10">範囲を返す（高さ・幅の指定）</span></h3>



<p class="wp-block-paragraph">第4・第5引数を指定すると、複数セルの範囲を返します。</p>



<pre class="wp-block-code"><code>=SUM(OFFSET(A1, 0, 0, 5, 1))</code></pre>



<p class="wp-block-paragraph">A1を起点に、高さ5行・幅1列の範囲（A1:A5）の合計です。この「範囲を返す」使い方が実務では最も重要です。</p>



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



<h3 class="wp-block-heading"><span id="toc12">SUM + OFFSET + COUNTAで動的合計</span></h3>



<p class="wp-block-paragraph">データが随時追加される表で、常に最新の合計を出したい場面はよくありますよね。OFFSET関数と<a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>（空白以外のセルを数える関数）を組み合わせましょう。</p>



<p class="wp-block-paragraph">B列に売上金額が入っていて、B1が見出し行だとします。</p>



<pre class="wp-block-code"><code>=SUM(OFFSET(B1, 1, 0, COUNTA(B:B)-1, 1))</code></pre>



<p class="wp-block-paragraph">この数式の動きを分解するとこうなります。</p>



<ul class="wp-block-list"><li><code>COUNTA(B:B)-1</code> でB列のデータ件数を取得します（見出し行を除く）</li><li><code>OFFSET(B1, 1, 0, ...)</code> でB2を起点にした範囲を生成します</li><li><a href="https://mashukabu.com/spreadsheet-sum-function/">SUM関数</a>でその範囲を合計します</li></ul>



<p class="wp-block-paragraph">データを1行追加すると、COUNTAの結果が1つ増えます。OFFSETの高さも自動的に1行広がるのがポイントです。</p>



<figure class="wp-block-image"><img decoding="async" src="https://mashukabu.com/wp-content/uploads/2026/06/04_result_sum-offset-counta.png" alt="04 result sum offset counta" /></figure>



<h3 class="wp-block-heading"><span id="toc13">AVERAGE + OFFSETで直近N件の平均</span></h3>



<h3 class="wp-block-heading"><span id="toc14">AVERAGE + OFFSETで直近N件の平均</span></h3>



<p class="wp-block-paragraph">直近のデータだけを対象に平均を出したい場合にも使えます。</p>



<p class="wp-block-paragraph">B列に売上金額、E1に「直近何件分か」の件数を入力するとします。</p>



<pre class="wp-block-code"><code>=AVERAGE(OFFSET(B1, COUNTA(B:B)-E1, 0, E1, 1))</code></pre>



<p class="wp-block-paragraph">E1に <code>5</code> と入力すれば、最新5件の平均が計算されます。値を変えるだけで件数を切り替えられるのが便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc15">MATCH + OFFSETで検索結果のずれた列を取得</span></h3>



<p class="wp-block-paragraph"><a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>（検索値の位置を返す関数）で見つけた行位置を使い、隣の列の値を取得するパターンです。</p>



<p class="wp-block-paragraph">A列に商品名、B列に価格が入っている表で、商品名から価格を取得します。</p>



<pre class="wp-block-code"><code>=OFFSET(A1, MATCH(&quot;りんご&quot;, A:A, 0)-1, 1)</code></pre>



<p class="wp-block-paragraph">MATCH関数が「りんご」の行番号を返します。OFFSET関数がA1からその行数分だけ下に移動し、1列右（B列）を参照します。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>この用途では<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>とMATCH関数の組み合わせが一般的です。OFFSETが活きるのは、行と列の両方を動的に動かしたい場合です。</p></blockquote>



<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>#REF!</td><td>移動先がシートの範囲外</td><td>行数・列数の値を確認する</td></tr><tr><td>#REF!</td><td>高さまたは幅に0を指定した</td><td>高さ・幅は1以上の正の数にする</td></tr><tr><td>#VALUE!</td><td>引数に数値以外が入っている</td><td>行数・列数・高さ・幅にはすべて数値を指定する</td></tr><tr><td>意図しない結果</td><td>基準セルの位置がずれている</td><td>基準セルに <code>$A$1</code> のような絶対参照を使う</td></tr></tbody></table></figure>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>OFFSET関数の参照先を確認したいときは、数式が入ったセルを選択してみてください。参照範囲が色付きの枠で表示されるので、意図した位置を指しているか目視で確認できます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc18">OFFSET関数 と INDEX関数</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>OFFSET関数</th><th><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a></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><tr><td>使い分け</td><td>動的範囲の生成（SUM+OFFSET等）</td><td>固定範囲からの値取得（INDEX+MATCH等）</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">単一セルの値を取得するだけならINDEX関数が有利です。高さ・幅を動的に変えて範囲を生成する場面がOFFSET関数の出番です。</p>



<h3 class="wp-block-heading"><span id="toc19">OFFSET関数 と INDIRECT関数</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>OFFSET関数</th><th><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a></th></tr></thead><tbody><tr><td>参照の指定方法</td><td>基準セル＋行数・列数の数値</td><td>文字列で参照先を指定</td></tr><tr><td>範囲の返却</td><td>高さ・幅で範囲サイズを指定</td><td>文字列で&#8221;A1:A10&#8243;のように指定</td></tr><tr><td>揮発性</td><td>揮発性</td><td>揮発性</td></tr><tr><td>使い分け</td><td>相対位置で動的範囲を作る</td><td>シート名やセルアドレスを文字列で組み立てる</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">OFFSETは数値で位置を指定します。INDIRECTは文字列で参照先を組み立てます。別シートの参照ならINDIRECT関数、データ件数に応じた範囲変更ならOFFSET関数が向いています。</p>



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



<p class="wp-block-paragraph">OFFSET関数は、基準セルからの相対位置で参照先を動的に変えられる関数です。</p>



<ul class="wp-block-list"><li>基本は <code>=OFFSET(基準, 行数, 列数)</code> の3引数</li><li>第4・第5引数で高さ・幅を指定すると範囲を返せる</li><li>SUM関数+COUNTA関数と組み合わせると、データ追加に自動対応する集計式が作れる</li><li>揮発性関数のため、大量使用は避けてINDEX関数を検討する</li></ul>



<p class="wp-block-paragraph">「数式を直す手間」をなくせるのがOFFSET関数の強みです。まずはSUM+OFFSET+COUNTAの動的合計から試してみてください。</p>



<h3 class="wp-block-heading"><span id="toc21">関連記事</span></h3>



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方｜行列指定で値を取得する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方｜INDEX+MATCHで左側も検索できる</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方｜文字列からセル参照</a></li><li><a href="https://mashukabu.com/spreadsheet-vlookup-function/">スプレッドシートのVLOOKUP関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-sum-function/">スプレッドシートのSUM関数の使い方｜合計を求める基本から実務活用まで</a></li><li><a href="https://mashukabu.com/spreadsheet-counta-function/">スプレッドシートのCOUNTA関数の使い方｜空白以外のセルを数える方法</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-offset-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
