<?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>ROW関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/row%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Wed, 29 Apr 2026 12:05:26 +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>ROW関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのROWS関数の使い方｜行数を調べる方法</title>
		<link>https://mashukabu.com/spreadsheet-rows-function/</link>
					<comments>https://mashukabu.com/spreadsheet-rows-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:51 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMNS関数]]></category>
		<category><![CDATA[COUNTA関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[ROWS関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[行数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4771</guid>

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



<p>手動で数えると行数が多いときにミスしがちです。データが増減するたびに数え直すのも面倒ですよね。</p>



<p>スプレッドシートのROWS関数を使えば、セル範囲の行数を一発で自動カウントできます。他の関数と組み合わせれば、最終行のデータ取得や可変範囲の作成にも活用できますよ。</p>



<p>この記事では、ROWS関数の基本的な書き方から、実務で使える組み合わせパターンまで紹介します。</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">スプレッドシートのROWS関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">ROWS関数の基本構文</a></li><li><a href="#toc3" tabindex="0">ROW関数との違いを押さえよう</a></li></ol></li><li><a href="#toc4" tabindex="0">ROWS関数の基本的な使い方</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">ROWS関数の実務活用パターン</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: COLUMNS関数と組み合わせて総セル数を計算</a></li></ol></li><li><a href="#toc15" tabindex="0">ROW関数との違い・使い分け</a><ol><li><a href="#toc16" tabindex="0">比較表</a></li></ol></li><li><a href="#toc17" tabindex="0">COLUMNS関数との比較</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">スプレッドシートのROWS関数とは？基本の仕組みを理解しよう</span></h2>



<p>ROWS関数（読み方: ロウズ関数）は、指定したセル範囲の<strong>行数</strong>を数値で返す関数です。「ROWS」は英語の「ROW（行）」の複数形で、行がいくつあるかを意味します。</p>



<p>たとえば <code>=ROWS(A1:A5)</code> と入力すると、結果は「5」です。A1からA5まで5行分あるからですね。</p>



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



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



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



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



<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></tbody></table></figure>



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



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



<p>ROWS関数とROW関数は名前がよく似ていますが、返す情報がまったく異なります。</p>



<pre class="wp-block-code"><code>=ROW(A3)      → 3（A3セルの行番号）
=ROWS(A3:A10) → 8（A3からA10の行数）</code></pre>



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



<p>覚え方は「複数形のROWSは範囲全体の行数を数える」と考えるとわかりやすいですよ。</p>



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



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



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



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



<p>A1からA10までの行数「10」を返します。列方向にどれだけ広がっていても結果は同じです。<code>=ROWS(A1:G10)</code> でも「10」になります。</p>



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



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



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



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



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



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



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



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



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



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



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



<p>データ範囲の最後の値を取り出したいときに便利なパターンです。</p>



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



<p>ROWS関数で範囲の行数（99）を取得し、<a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>の行番号に渡しています。範囲の最後の行、つまりA100の値を返します。</p>



<p>データが途中までしか入っていない場合は、<a href="https://mashukabu.com/spreadsheet-counta-function/">COUNTA関数</a>と組み合わせるとさらに正確です。</p>



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



<p>COUNTA関数でデータが入っているセルの数を数え、その位置のデータを取得する流れです。</p>



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



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



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



<p>ROWS関数が返す行数に応じて、OFFSET関数が返す範囲の高さが変わります。グラフの参照範囲やデータ入力規則の元データを可変にしたいときに活躍するパターンです。</p>



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



<p>文字列で組み立てた範囲の行数を調べたいときに使えます。</p>



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



<p>セルB1に入力された数値に応じて範囲のサイズが変わります。B1が「20」なら <code>=ROWS(A1:A20)</code> と同じ結果です。ユーザーが行数を指定して範囲を制御する仕組みを作りたいときに便利ですよ。</p>



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



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



<p>想定どおりのデータ件数があるかチェックする数式です。</p>



<pre class="wp-block-code"><code>=IF(ROWS(A2:A100) = COUNTA(A2:A100), &quot;OK&quot;, &quot;空白セルあり&quot;)</code></pre>



<p>ROWS関数で範囲の行数を調べ、COUNTA関数でデータが入っているセルの数を比較しています。空白行が混ざっていると数が合わなくなるので、データの欠損チェックに使えます。</p>



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



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



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



<p>この数式は <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>ROWS関数は「範囲の行数」を返すだけのシンプルな関数です。単体よりも、INDEX・OFFSET・INDIRECTなど他の関数と組み合わせてこそ真価を発揮します。</p></blockquote>



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



<p>ROWS関数とROW関数は名前が似ていますが、役割がまったく異なります。混同しやすいポイントを整理しておきましょう。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ROWS関数</th><th>ROW関数</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>=ROWS(A1:A10)</code></td><td><code>=ROW(A1)</code></td></tr><tr><td>結果の例</td><td><code>=ROWS(A3:A10)</code> → 8</td><td><code>=ROW(A3)</code> → 3</td></tr><tr><td>主な用途</td><td>範囲サイズの取得、動的範囲の制御</td><td>連番作成、動的な行参照</td></tr><tr><td>引数省略</td><td>不可（エラーになる）</td><td>可（自分のセルの行番号を返す）</td></tr></tbody></table></figure>



<p>使い分けのポイントはシンプルです。</p>



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



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



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



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



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



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



<p>また、COLUMN関数は「何列目か」を返す関数です。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>この4つの関係を押さえておけば、「行番号？ 行数？ 列番号？ 列数？」で迷うことがなくなりますよ。</p>



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



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>引数なしでエラー</td><td><code>=ROWS()</code> と引数を省略した</td><td>ROWS関数は引数が必須です。行数を調べたい範囲を指定してください</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>行番号がほしい場合はROW関数を使ってください</td></tr></tbody></table></figure>



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



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



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



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



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



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



<p>まずは <code>=ROWS(A1:A10)</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-row-function/">スプレッドシートのROW関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-column-function/">スプレッドシートのCOLUMN関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-columns-function/">スプレッドシートのCOLUMNS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-index-function/">スプレッドシートのINDEX関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-counta-function/">スプレッドシートのCOUNTA関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-rows-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのSEQUENCE関数の使い方｜連番・日付・2次元配列を自動生成</title>
		<link>https://mashukabu.com/spreadsheet-sequence-function/</link>
					<comments>https://mashukabu.com/spreadsheet-sequence-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 21 Mar 2026 11:30:37 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[SEQUENCE]]></category>
		<category><![CDATA[スプレッドシート]]></category>
		<category><![CDATA[日付連番]]></category>
		<category><![CDATA[連番]]></category>
		<category><![CDATA[配列関数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4765</guid>

					<description><![CDATA[スプレッドシートのSEQUENCE関数の使い方を解説します。縦・横・2次元の連番生成、日付の連番、ROW関数との使い分けまで、実務ですぐ使えるサンプルで丁寧に説明します。]]></description>
										<content:encoded><![CDATA[
<p>「1, 2, 3…と連番を手入力するのが面倒」「日付の一覧をサッと作りたい」。スプレッドシートで表を作っていると、こんな場面は多いですよね。</p>



<p>オートフィルで引っ張る方法もありますが、行の追加・削除のたびにズレてしまいます。数が多いと確認も大変です。</p>



<p>そんなときに便利なのが <strong>SEQUENCE関数</strong> です。行数と開始値を指定するだけで、連番や日付の一覧を自動生成してくれます。</p>



<p>この記事では、SEQUENCE関数の基本から、日付・時刻連番の作り方、FILTER・SORTとの組み合わせまで実例つきで紹介します。</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">SEQUENCE関数とは？</a></li><li><a href="#toc2" tabindex="0">SEQUENCE関数の書き方（構文と引数）</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">SEQUENCE関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">縦方向の連番を作る</a></li><li><a href="#toc7" tabindex="0">横方向の連番を作る</a></li><li><a href="#toc8" tabindex="0">2次元配列の連番を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">実践的な使い方・応用例</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：FILTER・SORTとの組み合わせ</a></li></ol></li><li><a href="#toc14" tabindex="0">ROW関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc16" tabindex="0">まとめ</a><ol><li><a href="#toc17" tabindex="0">この記事を書いた人</a></li><li><a href="#toc18" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>SEQUENCE関数は、指定した行数・列数に応じて <strong>連続した数値の配列を自動生成する</strong> 関数です。<br>読み方は「シーケンス関数」で、英語の「sequence（連続・順序）」が語源です。</p>



<p>たとえば <code>=SEQUENCE(5)</code> と入力すれば、1〜5の連番が縦方向に一括で出力されます。</p>



<p>先頭セルに数式を入力するだけで、結果が自動で展開されます。<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>を使う必要はありません。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>SEQUENCE関数はGoogleスプレッドシートと Excel（Microsoft 365 / Excel 2021 以降）で使えます。<a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数</a>も構文は同じです。</p></blockquote>



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



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



<pre class="wp-block-code"><code>=SEQUENCE(行数, [列数], [開始値], [増分量])</code></pre>



<h3 class="wp-block-heading"><span id="toc4">引数の意味と省略ルール</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>必須/任意</th><th>説明</th><th>デフォルト値</th></tr></thead><tbody><tr><td>行数</td><td>必須</td><td>生成する行数（例: <code>5</code>）</td><td>—</td></tr><tr><td>列数</td><td>任意</td><td>生成する列数（例: <code>3</code>）</td><td>1</td></tr><tr><td>開始値</td><td>任意</td><td>最初の値（例: <code>0</code> や <code>100</code>）</td><td>1</td></tr><tr><td>増分量</td><td>任意</td><td>値の増え幅（例: <code>10</code>）</td><td>1</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>=SEQUENCE(5)</code> なら、1列・開始値1・増分1で「1, 2, 3, 4, 5」が縦に並びます。</p></blockquote>



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



<h3 class="wp-block-heading"><span id="toc6">縦方向の連番を作る</span></h3>



<p>もっともシンプルな使い方です。空いているセル（たとえばA2）に次の数式を入力します。</p>



<pre class="wp-block-code"><code>=SEQUENCE(5)</code></pre>



<p>結果はこうなります。</p>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>1</td></tr><tr><td>2</td></tr><tr><td>3</td></tr><tr><td>4</td></tr><tr><td>5</td></tr></tbody></table></figure>



<p>行数に <code>5</code> を指定しただけで、1〜5の連番が自動で展開されました。</p>



<h3 class="wp-block-heading"><span id="toc7">横方向の連番を作る</span></h3>



<p>列数を指定して行数を <code>1</code> にすると、横方向に展開されます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(1,5)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th><th>D列</th><th>E列</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td><td>5</td></tr></tbody></table></figure>



<p>月ごとのヘッダーや曜日ラベルを並べたいときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc8">2次元配列の連番を作る</span></h3>



<p>行数と列数の両方を指定すると、2次元の配列が生成されます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(3,4)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列</th><th>B列</th><th>C列</th><th>D列</th></tr></thead><tbody><tr><td>1</td><td>2</td><td>3</td><td>4</td></tr><tr><td>5</td><td>6</td><td>7</td><td>8</td></tr><tr><td>9</td><td>10</td><td>11</td><td>12</td></tr></tbody></table></figure>



<p>左から右、上から下へと行優先で番号が埋まります。3行×4列で合計12個の連番ですね。</p>



<h2 class="wp-block-heading"><span id="toc9">実践的な使い方・応用例</span></h2>



<h3 class="wp-block-heading"><span id="toc10">パターン1：日付の連番を自動生成する</span></h3>



<p>SEQUENCE関数は日付の連番にも使えます。開始値にDATE関数を指定しましょう。</p>



<pre class="wp-block-code"><code>=SEQUENCE(30,1,DATE(2025,4,1),1)</code></pre>



<p>この数式で、2025年4月1日から30日分の連続した日付が生成されます。</p>



<p>ただし、結果はシリアル値（数値）で表示されます。セルを選択して「表示形式」→「日付」に変更してください。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>日付は <code>"2025/04/01"</code> のように引用符つきの文字列でも指定できます。<code>=SEQUENCE(5,1,"2025/04/01")</code> のように書けばOKです。引用符を忘れると <code>2025/04/01</code> の <code>/</code> が除算演算子として扱われ、数値として計算されてしまうので注意してください。</p></blockquote>



<p>月初日の一覧を作りたい場合は、<a href="https://mashukabu.com/spreadsheet-arrayformula-function/">ARRAYFORMULA関数</a>と組み合わせます。</p>



<pre class="wp-block-code"><code>=ARRAYFORMULA(DATE(2025, SEQUENCE(12), 1))</code></pre>



<p>この数式で2025年1〜12月の月初日が一覧で出力されます。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン2：時刻連番で予定表を作る</span></h3>



<p>タイムスケジュールを作るときに便利な使い方です。</p>



<pre class="wp-block-code"><code>=SEQUENCE(16,1,TIME(8,0,0),TIME(1,0,0))</code></pre>



<p>8:00から1時間刻みで、16個の時刻が生成されます。8:00〜23:00のタイムテーブルが一発で完成です。</p>



<p>日付と同じく、結果はシリアル値になります。「表示形式」→「時刻」に変更してください。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン3：降順・ステップ付き連番</span></h3>



<p>増分量に負の値を指定すると、降順の連番を作れます。</p>



<pre class="wp-block-code"><code>=SEQUENCE(5,1,10,-1)</code></pre>



<figure class="wp-block-table"><table><thead><tr><th>A列</th></tr></thead><tbody><tr><td>10</td></tr><tr><td>9</td></tr><tr><td>8</td></tr><tr><td>7</td></tr><tr><td>6</td></tr></tbody></table></figure>



<p>カウントダウンやランキング番号に使えます。</p>



<p>増分量を変えれば、飛び飛びの数値も簡単です。</p>



<pre class="wp-block-code"><code>=SEQUENCE(5,1,0,10)</code></pre>



<p>結果は「0, 10, 20, 30, 40」です。10刻みの連番が生成されます。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン4：FILTER・SORTとの組み合わせ</span></h3>



<p>SEQUENCE関数は他の配列関数と組み合わせると、さらに活用の幅が広がります。</p>



<p><strong>SEQUENCE + FILTERで偶数だけを抽出する例です。</strong></p>



<p>まず、SEQUENCE関数で1〜20の連番を作ります。そこから<a href="https://mashukabu.com/spreadsheet-filter-function/">FILTER関数</a>で偶数だけを抽出します。</p>



<pre class="wp-block-code"><code>=FILTER(SEQUENCE(20), MOD(SEQUENCE(20),2)=0)</code></pre>



<p>結果は「2, 4, 6, 8, 10, 12, 14, 16, 18, 20」です。</p>



<p><strong>SEQUENCE + SORTでランダム順のリストを作る例です。</strong></p>



<p><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">SORT関数</a>とRANDARRAY関数を組み合わせて、連番をシャッフルできます。</p>



<pre class="wp-block-code"><code>=SORT(SEQUENCE(10), RANDARRAY(10), TRUE)</code></pre>



<p>抽選やランダム出題など、順序をランダムにしたい場面で使えます。</p>



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



<p>連番を作る方法としては、<a href="https://mashukabu.com/spreadsheet-row-function/">ROW関数</a>もよく使われます。どう使い分ければよいでしょうか。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>SEQUENCE関数</th><th>ROW関数</th></tr></thead><tbody><tr><td>仕組み</td><td>指定した件数の配列を一括生成</td><td>セルの行番号を取得</td></tr><tr><td>行の追従</td><td>しない（固定件数）</td><td>する（行の挿入・削除に自動対応）</td></tr><tr><td>ARRAYFORMULA</td><td>不要（自動で展開）</td><td>複数行に展開するには必要</td></tr><tr><td>2次元配列</td><td>作れる（行×列を指定）</td><td>作れない</td></tr><tr><td>日付・時刻</td><td>開始値を指定して生成できる</td><td>直接は生成できない</td></tr></tbody></table></figure>



<p><strong>使い分けのポイントはこうです。</strong></p>



<ul class="wp-block-list"><li><strong>行の増減に追従させたい</strong> → ROW関数が向いています。データ行に1対1で連番を振るケースです</li><li><strong>決まった件数を一括で生成したい</strong> → SEQUENCE関数が向いています。日付一覧やタイムテーブルなど、固定の連番が欲しいケースです</li></ul>



<p>迷ったら、「データの行数に依存するか」で判断してみてください。依存するならROW関数、依存しないならSEQUENCE関数です。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>結果を展開するセルにデータがある</td><td>展開先のセルをクリアするか、数式を空き領域に移動する</td></tr><tr><td><code>#NUM!</code></td><td>行数に0や負の数を指定した</td><td>行数・列数には1以上の正の整数を指定する</td></tr><tr><td><code>#VALUE!</code></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>#REF!</code> エラーは配列関数で最もよくあるエラーです。SEQUENCE関数の結果が展開される先にデータがあると発生します。出力先の下方向・右方向に十分な空きを確保してください。</p></blockquote>



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



<p>この記事では、GoogleスプレッドシートのSEQUENCE関数の使い方を解説しました。</p>



<ul class="wp-block-list"><li><strong>SEQUENCE関数</strong>: 指定した行数・列数の連番を自動生成する</li><li><strong>基本の使い方</strong>: <code>=SEQUENCE(5)</code> で1〜5の縦方向連番</li><li><strong>横方向</strong>: <code>=SEQUENCE(1,5)</code> で横に展開</li><li><strong>2次元配列</strong>: <code>=SEQUENCE(3,4)</code> で3行4列のグリッド連番</li><li><strong>日付連番</strong>: <code>=SEQUENCE(30,1,DATE(2025,4,1),1)</code> で日付一覧</li><li><strong>ROW関数との違い</strong>: 固定件数の一括生成はSEQUENCE、行追従はROW</li></ul>



<p>まずは <code>=SEQUENCE(5)</code> から試してみてください。連番の手入力から解放されますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc17">この記事を書いた人</span></h3>



<p>biz-tactics編集部。事務職の現場で本当に使えるExcel・スプレッドシート・AIの技を発信しています。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方｜連番を自動作成</a></li><li><a href="https://mashukabu.com/spreadsheet-arrayformula-function/">スプレッドシートのARRAYFORMULA関数の使い方｜範囲に一括適用</a></li><li><a href="https://mashukabu.com/spreadsheet-filter-function/">スプレッドシートのFILTER関数の使い方｜条件抽出を自動化する方法</a></li><li><a href="https://mashukabu.com/spreadsheet-sort-sortn-sortby/">スプレッドシートのSORT・SORTN・SORTBY関数の使い方｜データを自動で並べ替える</a></li><li><a href="https://mashukabu.com/spreadsheet-unique-function/">スプレッドシートのUNIQUE関数の使い方｜重複を瞬時に除去</a></li><li><a href="https://mashukabu.com/spreadsheet-expand-function/">スプレッドシートのEXPAND関数の使い方｜配列のサイズを拡張する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-sequence/">ExcelのSEQUENCE関数の使い方｜連番・日付・2次元配列を1関数で</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-sequence-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのCOLUMN関数の使い方｜列番号を取得する方法</title>
		<link>https://mashukabu.com/spreadsheet-column-function/</link>
					<comments>https://mashukabu.com/spreadsheet-column-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:30 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[列番号]]></category>
		<category><![CDATA[横方向連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4666</guid>

					<description><![CDATA[スプレッドシートのCOLUMN関数で列番号を取得する方法を解説。横方向の連番作成やINDEX・ADDRESS関数との組み合わせ技、ROW関数との違いまで、実務で使えるテクニックを紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「スプレッドシートで列の番号を調べたいけど、A列が1でB列が2で&#8230;と数えるのは面倒」そんな経験はありませんか？</p>



<p>列数が多い表だと、目的の列が何番目か数え間違えることもあります。手作業で数えていると時間もかかりますよね。</p>



<p>スプレッドシートのCOLUMN関数を使えば、列番号を一発で取得できます。横方向の連番作成やINDEX関数との組み合わせにも活用できますよ。</p>



<p>この記事では、COLUMN関数の基本から応用技まで紹介します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-3" checked><label class="toc-title" for="toc-checkbox-3">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのCOLUMN関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">COLUMN関数の基本構文</a></li><li><a href="#toc3" tabindex="0">COLUMN()引数なしとCOLUMN(A1)の違い</a></li></ol></li><li><a href="#toc4" tabindex="0">COLUMN関数で横方向の連番を作る方法</a><ol><li><a href="#toc5" tabindex="0">月別・日別のヘッダーを自動で作る</a></li><li><a href="#toc6" tabindex="0">表の開始列がA列でない場合の対処法</a></li><li><a href="#toc7" tabindex="0">TEXT関数と組み合わせて月名を自動生成する</a></li></ol></li><li><a href="#toc8" tabindex="0">INDEX+COLUMNの組み合わせ技</a><ol><li><a href="#toc9" tabindex="0">INDEX関数と組み合わせて動的に列を切り替える</a></li></ol></li><li><a href="#toc10" tabindex="0">ADDRESS+COLUMNの組み合わせ技</a><ol><li><a href="#toc11" tabindex="0">ADDRESS関数と組み合わせてセル番地を自動生成する</a></li></ol></li><li><a href="#toc12" tabindex="0">COLUMN関数とROW関数の違い・使い分け</a><ol><li><a href="#toc13" tabindex="0">比較表</a></li></ol></li><li><a href="#toc14" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc15" tabindex="0">まとめ</a><ol><li><a href="#toc16" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>COLUMN関数（読み方: カラム関数）は、<strong>セルの列番号を数値で返す関数</strong>です。「COLUMN」は英語で「列」を意味します。</p>



<p>たとえばセルC1にCOLUMN関数を入力すると、結果は「3」です。C列は左から3番目なので、その位置を数値で教えてくれます。</p>



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



<ul class="wp-block-list"><li>セルの列番号を数値で返す</li><li>引数を省略すると、数式が入っているセル自身の列番号を返す</li><li>横方向の連番作成に使える</li><li>他の関数と組み合わせて動的な参照を作れる</li></ul>



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



<pre class="wp-block-code"><code>=COLUMN([セル参照])</code></pre>



<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></tbody></table></figure>



<p>引数は1つだけで、しかも省略できます。ROW関数と同じく、とてもシンプルな構文ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">COLUMN()引数なしとCOLUMN(A1)の違い</span></h3>



<p>COLUMN関数の使い方は大きく2つあります。</p>



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



<p>引数なしで使うと、<strong>数式が入っているセルの列番号</strong>を返します。セルD3に入力すれば結果は「4」です。D列は左から4番目ですね。</p>



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



<p>セル参照を指定すると、<strong>そのセルの列番号</strong>を返します。どのセルに入力しても結果は「1」です。A列は常に1番目だからです。</p>



<p>範囲を指定した場合は、先頭列の番号だけが返ります。</p>



<pre class="wp-block-code"><code>=COLUMN(C3:F10)</code></pre>



<p>この結果は「3」です。C列からF列の範囲のうち、先頭のC列の列番号が返る仕組みです。</p>



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



<h2 class="wp-block-heading"><span id="toc4">COLUMN関数で横方向の連番を作る方法</span></h2>



<p>COLUMN関数の最も実用的な使い方が、<strong>横方向に並ぶ連番</strong>の作成です。</p>



<h3 class="wp-block-heading"><span id="toc5">月別・日別のヘッダーを自動で作る</span></h3>



<p>たとえば、B1セルから右方向に「1, 2, 3&#8230;」と月番号を振りたい場合です。</p>



<pre class="wp-block-code"><code>=COLUMN()-1</code></pre>



<p>B1セルに入力すると <code>2-1=1</code>、C1セルなら <code>3-1=2</code> になります。数式を右にコピーするだけで連番が完成します。</p>



<p>列の挿入・削除にも自動で対応するので、手入力の番号より管理がラクです。</p>



<h3 class="wp-block-heading"><span id="toc6">表の開始列がA列でない場合の対処法</span></h3>



<p>実務では、表の左側にラベル列があるケースが多いですよね。たとえばデータがD列から始まる場合を考えてみましょう。</p>



<p><code>=COLUMN()-1</code> だとD列のセルは「3」になってしまいます。こんなときは次の数式を使います。</p>



<pre class="wp-block-code"><code>=COLUMN()-COLUMN($D$1)+1</code></pre>



<p><code>$D$1</code> はデータ開始列のセルです。絶対参照にするのがポイントです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル位置</th><th>計算内容</th><th>結果</th></tr></thead><tbody><tr><td>D列</td><td>4 &#8211; 4 + 1</td><td>1</td></tr><tr><td>E列</td><td>5 &#8211; 4 + 1</td><td>2</td></tr><tr><td>F列</td><td>6 &#8211; 4 + 1</td><td>3</td></tr></tbody></table></figure>



<p>この方法なら、表がどの列から始まっても正しい連番になります。列を挿入・削除しても自動で振り直されるので安心ですよ。</p>



<h3 class="wp-block-heading"><span id="toc7">TEXT関数と組み合わせて月名を自動生成する</span></h3>



<p>COLUMN関数で作った連番を月名に変換するテクニックです。</p>



<pre class="wp-block-code"><code>=TEXT(DATE(2026,COLUMN()-1,1),&quot;M月&quot;)</code></pre>



<p>B1セルに入力して右にコピーすると、「1月, 2月, 3月&#8230;」と月名ヘッダーが自動で並びます。</p>



<p>DATE関数で各月の1日を作り、TEXT関数で月名に整形する流れです。COLUMN()-1 の部分が月番号になっています。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>縦方向の連番にはROW関数、横方向の連番にはCOLUMN関数と覚えておくと迷いません。ROW関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-row-function/">スプレッドシートのROW関数の使い方</a>」で解説しています。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc8">INDEX+COLUMNの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc9">INDEX関数と組み合わせて動的に列を切り替える</span></h3>



<p>INDEX関数（指定した範囲から行番号・列番号で値を取り出す関数）と組み合わせると、<strong>列の位置に連動して参照先が自動的に変わる数式</strong>を作れます。</p>



<p>たとえば、A1:E10に売上データが入っているとします。2行目以降のデータを、列番号に連動して取り出すケースです。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$E$10, 2, COLUMN())</code></pre>



<p>A列に入力すると1列目、B列なら2列目の値が取り出されます。数式を右にコピーするだけで、各列のデータを横に並べられます。</p>



<p>データの開始列がずれている場合は、オフセットを加えます。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$E$10, 2, COLUMN()-COLUMN($C$1)+1)</code></pre>



<p>C1セルから数式を入力し始める場合の例です。COLUMN()-COLUMN($C$1)+1 で常に1から始まる連番を作り、INDEXの列番号に渡しています。</p>



<p>この組み合わせが活きる場面は次のとおりです。</p>



<ul class="wp-block-list"><li>元データの列順を変えずに、別の場所で並び替えた表を作りたいとき</li><li>ダッシュボードで表示項目を切り替えたいとき</li><li>複数シートから同じ列位置のデータを集約したいとき</li></ul>



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



<h2 class="wp-block-heading"><span id="toc10">ADDRESS+COLUMNの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc11">ADDRESS関数と組み合わせてセル番地を自動生成する</span></h3>



<p>ADDRESS関数（行番号と列番号からセル番地の文字列を作る関数）にCOLUMN関数の結果を渡すと、<strong>セル番地を動的に生成</strong>できます。</p>



<pre class="wp-block-code"><code>=ADDRESS(1, COLUMN())</code></pre>



<p>A列に入力すると「$A$1」、B列なら「$B$1」が返ります。列の位置に応じてセル番地が自動で変わる仕組みです。</p>



<p>INDIRECT関数と組み合わせれば、生成したセル番地をそのまま参照に変換できます。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(ROW(), COLUMN()-1))</code></pre>



<p>この数式は「自分の1つ左のセルの値」を返します。ROW関数で行番号、COLUMN()-1 で1つ左の列番号を取得し、ADDRESS関数でセル番地を組み立てています。</p>



<p>こうした動的参照は、次のような場面で便利です。</p>



<ul class="wp-block-list"><li>累計計算で「1つ前のセルの値を足す」パターン</li><li>条件によって参照先の列を切り替えたいとき</li><li>マクロを使わずに柔軟なセル参照を実現したいとき</li></ul>



<p>ADDRESS関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a>」を参考にしてみてください。</p>



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



<p>COLUMN関数とROW関数は、どちらもセルの位置を数値で返す関数です。取得する方向が異なります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>COLUMN関数</th><th>ROW関数</th></tr></thead><tbody><tr><td>返す値</td><td>列番号（横方向の位置）</td><td>行番号（縦方向の位置）</td></tr><tr><td>構文</td><td><code>=COLUMN([セル参照])</code></td><td><code>=ROW([セル参照])</code></td></tr><tr><td>使用例</td><td><code>=COLUMN(C1)</code> → 3</td><td><code>=ROW(A3)</code> → 3</td></tr><tr><td>連番の方向</td><td>横方向（右にコピー）</td><td>縦方向（下にコピー）</td></tr><tr><td>よくある用途</td><td>横の連番、列ベースの動的参照</td><td>縦の連番、行ベースの動的参照</td></tr></tbody></table></figure>



<p>使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>横方向の連番やヘッダー</strong> → COLUMN関数</li><li><strong>縦方向の連番やナンバリング</strong> → ROW関数</li></ul>



<p>また、COLUMNS関数（範囲の列数を数える関数）との混同に注意してください。COLUMN関数は「<strong>何列目か</strong>」、COLUMNS関数は「<strong>何列あるか</strong>」を返す別の関数です。</p>



<pre class="wp-block-code"><code>=COLUMN(C3:F10)    → 3（先頭列の列番号）
=COLUMNS(C3:F10)   → 4（範囲の列数）</code></pre>



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



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



<p>COLUMN関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、他の関数と組み合わせたときにエラーが出るケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>参照先のセルや列が削除された</td><td>数式内のセル参照を確認し、有効な範囲に修正する</td></tr><tr><td><code>#VALUE!</code></td><td>COLUMN関数に文字列を渡した</td><td>引数にはセル参照のみ指定する。<code>"A1"</code> のような文字列は不可</td></tr><tr><td><code>#REF!</code>（INDIRECT併用時）</td><td>INDIRECT関数の参照先が存在しない</td><td>シート名やセルアドレスの文字列を確認する</td></tr><tr><td>連番がずれる</td><td>列の挿入・削除でオフセットが変わった</td><td><code>=COLUMN()-COLUMN($開始セル)+1</code> の形式で、開始セルを絶対参照にする</td></tr></tbody></table></figure>



<p>特に注意したいのが「連番がずれる」ケースです。単純な <code>=COLUMN()-1</code> だと、列を挿入したときにオフセット値が合わなくなります。</p>



<p>安全に連番を作りたい場合は、<code>=COLUMN()-COLUMN($開始セル)+1</code> のパターンを使ってください。開始セルを絶対参照にしておけば、列の挿入・削除に強くなりますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>COLUMN関数の引数にセルアドレスの文字列を渡すのはよくある間違いです。<code>=COLUMN("C1")</code> はエラーになります。文字列をセル参照に変換したい場合は、INDIRECT関数を使いましょう。<code>=COLUMN(INDIRECT("C1"))</code> のように書けばOKです。</p></blockquote>



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



<p>COLUMN関数は、セルの列番号を返すシンプルな関数です。単体で使うだけでなく、横方向の連番や動的参照の土台として幅広く活用できます。</p>



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



<ul class="wp-block-list"><li>COLUMN関数は引数なしで自分のセルの列番号、セル参照指定でそのセルの列番号を返す</li><li><code>=COLUMN()-COLUMN($開始セル)+1</code> で、表がどの列から始まっても正しい横方向の連番を作れる</li><li>列の挿入・削除にも自動対応するので、手入力の番号より管理がラク</li><li>INDEX関数と組み合わせれば、列位置に連動する動的な値の取得ができる</li><li>ADDRESS関数と組み合わせれば、セル番地の動的生成もできる</li><li>COLUMN関数は「何列目か」、ROW関数は「何行目か」、COLUMNS関数は「何列あるか」</li></ul>



<p>まずは <code>=COLUMN()-COLUMN($A$1)+1</code> の横方向連番パターンから試してみてください。月別ヘッダーや日別の集計表で、すぐに効果を実感できますよ。</p>



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



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



<ul class="wp-block-list"><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-match-function/">スプレッドシートのMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-column-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スプレッドシートのROW関数の使い方｜連番を自動作成</title>
		<link>https://mashukabu.com/spreadsheet-row-function/</link>
					<comments>https://mashukabu.com/spreadsheet-row-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:12:58 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[INDIRECT関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[行番号]]></category>
		<category><![CDATA[連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4652</guid>

					<description><![CDATA[スプレッドシートのROW関数を使って、行追加・削除しても崩れない連番を自動作成する方法を解説。ROW()-offsetの基本パターンからINDEX+ROW、INDIRECT+ROWの組み合わせ技まで、実務で使えるテクニックを丁寧に紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「スプレッドシートで連番を振ったのに、行を追加したらズレてしまった&#8230;」そんな経験はありませんか？</p>



<p>手入力の連番は、行の追加や削除で簡単に崩れてしまいます。そのたびに振り直すのは面倒ですよね。</p>



<p>スプレッドシートのROW関数を使えば、行番号をもとに連番を自動作成できます。行の追加・削除にも自動で対応するので、メンテナンスの手間がなくなりますよ。</p>



<p>この記事では、ROW関数の基本から連番の作り方、INDEX・INDIRECTとの組み合わせ技まで紹介します。</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">スプレッドシートのROW関数とは？基本の仕組みを理解しよう</a><ol><li><a href="#toc2" tabindex="0">ROW関数の基本構文</a></li><li><a href="#toc3" tabindex="0">ROW()引数なしとROW(A1)の違い</a></li></ol></li><li><a href="#toc4" tabindex="0">ROW()-offsetで崩れない連番を作る</a><ol><li><a href="#toc5" tabindex="0">行を追加・削除しても連番が維持される仕組み</a></li><li><a href="#toc6" tabindex="0">表の開始行が1行目でない場合の対処法</a></li></ol></li><li><a href="#toc7" tabindex="0">INDEX+ROWの組み合わせ技</a><ol><li><a href="#toc8" tabindex="0">INDEX関数と組み合わせて動的参照を作る</a></li></ol></li><li><a href="#toc9" tabindex="0">INDIRECT+ROWの組み合わせ技</a><ol><li><a href="#toc10" tabindex="0">文字列参照でシートをまたいだ動的参照</a></li></ol></li><li><a href="#toc11" tabindex="0">ROWとCOLUMNの違いと使い分け</a><ol><li><a href="#toc12" tabindex="0">比較表</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">まとめ</a><ol><li><a href="#toc15" tabindex="0">この記事で紹介した関数・関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p>ROW関数（読み方: ロウ関数）は、<strong>セルの行番号を返す関数</strong>です。「ROW」は英語の「Row（行）」がそのまま名前になっています。</p>



<p>たとえばセルA3にROW関数を入力すると、結果は「3」です。そのセルが何行目にあるかを教えてくれるシンプルな関数です。</p>



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



<ul class="wp-block-list"><li>セルの行番号を数値で返す</li><li>引数を省略すると、数式が入っているセル自身の行番号を返す</li><li>連番の自動作成に使える</li><li>他の関数と組み合わせて動的な参照を作れる</li></ul>



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



<pre class="wp-block-code"><code>=ROW([セル参照])</code></pre>



<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></tbody></table></figure>



<p>引数は1つだけで、しかも省略可能です。スプレッドシートの関数の中でもトップクラスにシンプルな構文ですね。</p>



<h3 class="wp-block-heading"><span id="toc3">ROW()引数なしとROW(A1)の違い</span></h3>



<p>ROW関数の使い方は大きく2つあります。</p>



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



<p>引数なしで使うと、<strong>数式が入っているセルの行番号</strong>を返します。セルB5に入力すれば結果は「5」です。</p>



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



<p>セル参照を指定すると、<strong>そのセルの行番号</strong>を返します。どのセルに入力しても結果は「1」です。</p>



<p>範囲を指定した場合は、先頭行の番号だけが返ります。</p>



<pre class="wp-block-code"><code>=ROW(B3:B10)</code></pre>



<p>この結果は「3」です。B3からB10の範囲のうち、先頭のB3の行番号が返る仕組みです。</p>



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



<h2 class="wp-block-heading"><span id="toc4">ROW()-offsetで崩れない連番を作る</span></h2>



<p>ROW関数の最も実用的な使い方が、<strong>行の追加・削除に強い連番</strong>の作成です。</p>



<h3 class="wp-block-heading"><span id="toc5">行を追加・削除しても連番が維持される仕組み</span></h3>



<p>手入力で「1, 2, 3&#8230;」と連番を振ると、途中に行を挿入したときに番号がズレます。ROW関数なら行番号をもとに計算するので、自動的に振り直されます。</p>



<p>たとえば、A2セルからデータが始まる表で連番を振る場合です。</p>



<pre class="wp-block-code"><code>=ROW()-1</code></pre>



<p>A2セルに入力すると <code>2-1=1</code>、A3セルなら <code>3-1=2</code> になります。数式を下にコピーするだけで連番が完成します。</p>



<p>途中に行を挿入しても、各セルのROW()の値が自動で変わるため、連番が崩れません。これが手入力との大きな違いです。</p>



<h3 class="wp-block-heading"><span id="toc6">表の開始行が1行目でない場合の対処法</span></h3>



<p>実務では、表の上にタイトルやヘッダーが複数行あるケースが多いですよね。たとえばデータが5行目から始まる場合を考えてみましょう。</p>



<p><code>=ROW()-1</code> だと5行目のセルは「4」になってしまいます。こんなときは次の数式を使います。</p>



<pre class="wp-block-code"><code>=ROW()-ROW($A$5)+1</code></pre>



<p><code>$A$5</code> はデータ開始行のセルです。絶対参照にするのがポイントです。</p>



<figure class="wp-block-table"><table><thead><tr><th>セル位置</th><th>計算内容</th><th>結果</th></tr></thead><tbody><tr><td>5行目</td><td>5 &#8211; 5 + 1</td><td>1</td></tr><tr><td>6行目</td><td>6 &#8211; 5 + 1</td><td>2</td></tr><tr><td>7行目</td><td>7 &#8211; 5 + 1</td><td>3</td></tr></tbody></table></figure>



<p>この方法なら、表がどの行から始まっても正しい連番になります。行を挿入・削除しても自動で振り直されるので、メンテナンスフリーですよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>もうひとつの連番作成方法としてSEQUENCE関数があります。<code>=SEQUENCE(10)</code> で1から10までの連番を一括生成できます。ただし、ROW関数のほうが数式コピーで直感的に使えるので、まずはROW関数から覚えるのがおすすめです。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc7">INDEX+ROWの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc8">INDEX関数と組み合わせて動的参照を作る</span></h3>



<p>INDEX関数は、指定した範囲から行番号・列番号で値を取り出す関数です。ROW関数と組み合わせると、<strong>行の位置に連動して参照先が自動的に変わる数式</strong>を作れます。</p>



<p>たとえば、A1からA10に商品名が入っているとします。別の場所にこのリストを動的に参照したいケースを考えましょう。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$A$10, ROW())</code></pre>



<p>この数式を1行目に入力すると、ROW()は「1」を返すのでA1の値が表示されます。2行目なら「2」でA2の値です。</p>



<p>データの開始行がずれている場合は、オフセットを加えます。</p>



<pre class="wp-block-code"><code>=INDEX($A$1:$A$10, ROW()-ROW($D$1)+1)</code></pre>



<p>D1セルから数式を入力し始める場合の例です。ROW()-ROW($D$1)+1 で常に1から始まる連番を作り、INDEXの行番号に渡しています。</p>



<p>この組み合わせが活きる場面は次のとおりです。</p>



<ul class="wp-block-list"><li>元データの並び順を変えずに、別の場所で独自の一覧を作りたいとき</li><li>フィルタ条件に応じて表示するデータを切り替えたいとき</li><li>複数のシートから特定の行を動的に引っ張りたいとき</li></ul>



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



<h2 class="wp-block-heading"><span id="toc9">INDIRECT+ROWの組み合わせ技</span></h2>



<h3 class="wp-block-heading"><span id="toc10">文字列参照でシートをまたいだ動的参照</span></h3>



<p>INDIRECT関数は、文字列をセル参照として解釈する関数です。ROW関数と組み合わせると、<strong>セルアドレスを文字列で動的に組み立てる</strong>ことができます。</p>



<p>もっとも基本的なパターンはこちらです。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;A&quot; &amp; ROW())</code></pre>



<p>この数式をB3セルに入力すると、ROW()が「3」を返します。そのため <code>INDIRECT("A3")</code> となり、A3セルの値が表示されます。</p>



<p>これだけだとあまりメリットを感じないかもしれませんが、シートをまたぐ参照で真価を発揮します。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;'売上データ'!B&quot; &amp; ROW())</code></pre>



<p>「売上データ」シートのB列から、現在の行番号に対応するセルの値を取得できます。</p>



<p>さらに応用すると、シート名自体をセルから動的に取得することもできます。</p>



<pre class="wp-block-code"><code>=INDIRECT(&quot;'&quot; &amp; C1 &amp; &quot;'!B&quot; &amp; ROW())</code></pre>



<p>C1セルに「4月売上」と入力されていれば、「4月売上」シートのB列を参照します。C1の値を変えるだけで参照先のシートが切り替わるので、月次レポートの作成に便利です。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>INDIRECT関数は文字列を参照に変換するため、参照先のシートが存在しないと <code>#REF!</code> エラーになります。シート名のスペルに注意してください。</p></blockquote>



<p>INDIRECT関数の詳しい使い方は「<a href="https://mashukabu.com/spreadsheet-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a>」を参考にしてみてください。</p>



<h2 class="wp-block-heading"><span id="toc11">ROWとCOLUMNの違いと使い分け</span></h2>



<p>ROW関数と似た関数にCOLUMN関数があります。どちらもセルの位置を数値で返しますが、方向が異なります。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>項目</th><th>ROW関数</th><th>COLUMN関数</th></tr></thead><tbody><tr><td>返す値</td><td>行番号（縦方向の位置）</td><td>列番号（横方向の位置）</td></tr><tr><td>構文</td><td><code>=ROW([セル参照])</code></td><td><code>=COLUMN([セル参照])</code></td></tr><tr><td>使用例</td><td><code>=ROW(A3)</code> → 3</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>使い分けのポイントはシンプルです。</p>



<ul class="wp-block-list"><li><strong>縦方向の連番</strong> → ROW関数</li><li><strong>横方向の連番</strong> → COLUMN関数</li></ul>



<p>たとえば、月ごとの列ヘッダー（1月、2月&#8230;）を自動で作るならCOLUMN関数が向いています。</p>



<pre class="wp-block-code"><code>=COLUMN()-1</code></pre>



<p>B1セルに入力して右にコピーすれば「1, 2, 3&#8230;」の連番になります。</p>



<p>また、ROWS関数（範囲の行数を数える関数）との混同に注意してください。ROW関数は「<strong>何行目か</strong>」、ROWS関数は「<strong>何行あるか</strong>」を返す、まったく別の関数です。</p>



<pre class="wp-block-code"><code>=ROW(A3:A10)    → 3（先頭行の行番号）
=ROWS(A3:A10)   → 8（範囲の行数）</code></pre>



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



<p>ROW関数自体は非常にシンプルなので、単独でエラーになることはほとんどありません。ただし、他の関数と組み合わせたときにエラーが出るケースがあります。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#REF!</code></td><td>参照先のセルや行が削除された</td><td>数式内のセル参照を確認し、有効な範囲に修正する</td></tr><tr><td><code>#VALUE!</code></td><td>ROW関数に不正な文字列を渡した</td><td>引数にはセル参照のみ指定する。文字列（<code>"A1"</code>など）は不可</td></tr><tr><td><code>#REF!</code>（INDIRECT併用時）</td><td>INDIRECT関数の参照先が存在しない</td><td>シート名やセルアドレスの文字列を確認する</td></tr><tr><td>連番が飛ぶ</td><td>非表示の行がある</td><td>フィルタで非表示にした行もROW関数は元の行番号を返す。SUBTOTAL関数と組み合わせて対処</td></tr></tbody></table></figure>



<p>特に注意したいのが「連番が飛ぶ」ケースです。フィルタで行を非表示にしても、ROW関数は元の行番号をそのまま返します。フィルタ後の見た目と連番が一致しないのは仕様です。</p>



<p>フィルタ後に1から始まる連番が必要な場合は、SUBTOTAL関数との組み合わせを検討してみてください。ARRAYFORMULA関数を使う方法もありますよ。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>TIP</strong></p><p>ROW関数の引数にセルアドレスの文字列を渡すのはよくある間違いです。<code>=ROW("A1")</code> はエラーになります。文字列をセル参照に変換したい場合は、INDIRECT関数を使いましょう。<code>=ROW(INDIRECT("A1"))</code> のように書けばOKです。</p></blockquote>



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



<p>ROW関数は、セルの行番号を返すシンプルな関数です。単体で使うだけでなく、連番や動的参照の土台として幅広く活用できます。</p>



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



<ul class="wp-block-list"><li>ROW関数は引数なしで自分のセルの行番号、セル参照指定でそのセルの行番号を返す</li><li><code>=ROW()-ROW($開始セル)+1</code> で、表がどの行から始まっても正しい連番を作れる</li><li>行の追加・削除にも自動対応するので、手入力の連番より圧倒的にラク</li><li>INDEX関数と組み合わせれば、行位置に連動する動的な値の取得ができる</li><li>INDIRECT関数と組み合わせれば、シートをまたいだ動的参照も可能</li><li>ROW関数は「何行目か」、COLUMN関数は「何列目か」、ROWS関数は「何行あるか」</li></ul>



<p>まずは <code>=ROW()-ROW($A$1)</code> の連番パターンから試してみてください。行の追加・削除のたびに番号を振り直す手間がなくなりますよ。</p>



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



<h3 class="wp-block-heading"><span id="toc15">この記事で紹介した関数・関連記事</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-indirect-function/">スプレッドシートのINDIRECT関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-match-function/">スプレッドシートのMATCH関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-address-function/">スプレッドシートのADDRESS関数の使い方</a></li><li><a href="https://mashukabu.com/spreadsheet-offset-function/">スプレッドシートのOFFSET関数の使い方</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-row-function/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのROWS関数とは？行数を調べる使い方からROW関数との違いまで解説</title>
		<link>https://mashukabu.com/excel-function-howto-use-rows/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-rows/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Mon, 04 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[COLUMNS関数]]></category>
		<category><![CDATA[ROWS関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[行数]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2331</guid>

					<description><![CDATA[ExcelのROWS関数の使い方を基本から応用まで解説。セル範囲の行数を調べる基本構文、ROW関数との違い、INDEX・INDIRECT・OFFSETとの組み合わせパターン、可変範囲の作り方、よくあるエラーの対処法まで実務で使える具体例つきで紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「この表って何行あるんだろう？」と数えたくなること、ありますよね。手動で数えると行数が多いときにミスしがちですし、データが増減するたびに数え直すのも面倒です。ROWS関数を使えば、セル範囲の行数を一発で自動カウントできますよ。</p>



<p>しかも、単に行数を数えるだけではありません。HLOOKUP・INDEX・OFFSETと組み合わせれば、行番号の自動採番やデータ範囲の動的制御まで実現できる、地味だけれど縁の下の力持ちです。この記事では、ROWS関数の基本構文から実務で頻出する組み合わせパターン、ROW関数・COLUMNS関数との違い、よくあるエラー対処までまとめて紹介します。</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">ROWS関数とは？</a></li><li><a href="#toc2" tabindex="0">ROWS関数の書き方</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">ROWS関数の基本的な使い方</a><ol><li><a href="#toc6" tabindex="0">セル範囲の行数を調べる</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><li><a href="#toc10" tabindex="0">配列定数の行数を調べる</a></li></ol></li><li><a href="#toc11" tabindex="0">ROWS関数の実務活用パターン</a><ol><li><a href="#toc12" tabindex="0">パターン1: HLOOKUP関数と組み合わせて行番号を自動化</a></li><li><a href="#toc13" tabindex="0">パターン2: INDEX関数と組み合わせて最終行のデータを取得</a></li><li><a href="#toc14" tabindex="0">パターン3: OFFSET関数と組み合わせて可変範囲を作る</a></li><li><a href="#toc15" tabindex="0">パターン4: INDIRECT関数と組み合わせて動的な範囲サイズを取得</a></li><li><a href="#toc16" tabindex="0">パターン5: データ件数の検証に使う</a></li><li><a href="#toc17" tabindex="0">パターン6: SEQUENCE関数の代わりに連番を作る（古いバージョン向け）</a></li><li><a href="#toc18" tabindex="0">パターン7: 配列数式のサイズを可変にする</a></li></ol></li><li><a href="#toc19" tabindex="0">ROW関数とROWS関数の違い</a></li><li><a href="#toc20" tabindex="0">COLUMNS関数との違い</a></li><li><a href="#toc21" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc22" tabindex="0">まとめ</a><ol><li><a href="#toc23" tabindex="0">関連記事</a></li></ol></li></ol>
    </div>
  </div>

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



<p><strong>ROWS関数</strong>（読み方: ロウズ）は、指定したセル範囲の<strong>行数</strong>を数値で返す関数です。「ROWS」は英語の「ROW（行）」の複数形で、行がいくつあるかを意味します。</p>



<p>たとえば <code>=ROWS(A1:A5)</code> と入力すると、結果は <code>5</code> になります。A1からA5まで5行分あるからですね。列の範囲がどれだけ広くても、行数だけを数える点がポイントです。<code>=ROWS(A1:Z5)</code> と書いても結果は同じく <code>5</code> ですし、<code>=ROWS(A1:A100)</code> なら <code>100</code> を返します。</p>



<p>シンプルですが「範囲のサイズを数値化できる」という性質が、他の関数と組み合わせたときに威力を発揮します。後ほど実務パターンで詳しく見ていきましょう。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>ROWS関数はExcel 2007以降のすべてのバージョンで使用できます。Microsoft 365・Excel 2021・Googleスプレッドシートでも同じ構文で動作するので、環境を問わず安心して使えます。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc2">ROWS関数の書き方</span></h2>



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



<pre class="wp-block-code"><code>=ROWS(配列)</code></pre>



<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></tbody></table></figure>



<p>引数は1つだけなので、覚えやすい関数です。ただし、<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>と違って引数の省略はできません。<code>=ROWS()</code> と書くと「この関数に対して、少なすぎる引数が入力されています」というエラーが返るので注意してください。</p>



<p>引数に指定できるのは以下のいずれかです。</p>



<ul class="wp-block-list"><li>セル範囲（例: <code>A1:A10</code>）</li><li>単一セル（例: <code>B5</code>）</li><li>名前付き範囲（例: <code>売上データ</code>）</li><li>テーブル名（例: <code>テーブル1[売上]</code>）</li><li>配列定数（例: <code>{1;2;3}</code>）</li><li>他の関数が返す範囲（例: <code>OFFSET(A1,0,0,5,1)</code>）</li></ul>



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



<p>まずは基本パターンから順番に見ていきましょう。</p>



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



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



<p>A1からA10までの行数 <code>10</code> を返します。列方向にどれだけ広がっていても結果は同じです。<code>=ROWS(A1:G10)</code> でも <code>10</code> ですし、<code>=ROWS(A5:Z14)</code> でも <code>10</code> です。「どこから始まる範囲か」ではなく「縦方向の行数」だけが結果に反映されます。</p>



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



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



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



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



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



<p>名前の定義で「売上データ」と名付けた範囲の行数を返します。テーブルやデータ範囲に名前を付けている場合は、セル参照を書くよりわかりやすくなりますよ。「数式」タブの「名前の管理」から定義済みの名前を一覧確認できます。</p>



<h3 class="wp-block-heading"><span id="toc9">テーブル名の行数を調べる</span></h3>



<pre class="wp-block-code"><code>=ROWS(テーブル1)
=ROWS(テーブル1[売上])</code></pre>



<p><code>Ctrl + T</code> で作成したテーブルなら、テーブル名や列名を指定して行数を取得できます。データを追加すると自動で行数が増えるので、動的なデータ集計に向いています。見出し行はカウントされず、データ部分の行数だけが返るのもポイントです。</p>



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



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



<p>配列定数の行数 <code>3</code> を返します。セミコロン（<code>;</code>）で区切られたブロックが行に対応します。カンマ（<code>,</code>）は列の区切りなので、<code>{1,2,3}</code> は1行3列、<code>{1;2;3}</code> は3行1列という違いを覚えておきましょう。</p>



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



<p>ここからが本番です。ROWS関数の真価は「他の関数と組み合わせる」ところにあります。実務でよく使う7つのパターンを紹介します。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン1: HLOOKUP関数と組み合わせて行番号を自動化</span></h3>



<p>横方向の検索テーブルでHLOOKUP関数を使うとき、行番号を手入力していませんか？ ROWS関数を組み合わせると、オートフィルで行番号が自動的にずれてくれます。</p>



<pre class="wp-block-code"><code>=HLOOKUP(B$8,$A$1:$G$5,ROWS($A$1:A1),FALSE)</code></pre>



<p>この数式を下方向にコピーすると、ROWS関数の部分が <code>ROWS($A$1:A2)</code>、<code>ROWS($A$1:A3)</code>&#8230; と変化します。行番号が 1, 2, 3&#8230; と自動で増えていくので、手入力の手間がなくなります。複数行の検索結果をまとめて取り出したいときに便利な定番テクニックです。</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/excel-function-howto-use-vlookup/">VLOOKUP関数</a>でも使えます。VLOOKUPの列番号を自動化したい場合は、対になる<a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数</a>を使ってください。</p></blockquote>



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



<p>データ範囲の最後の値を取り出したいときに便利なパターンです。</p>



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



<p>ROWS関数で範囲の行数を取得し、INDEX関数の行番号に渡しています。範囲が99行あるので、99行目（つまり最後の行）のデータを返します。</p>



<p>データが途中までしか入っていない場合は、COUNTA関数と組み合わせるとさらに正確です。</p>



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



<p>ROWSは「範囲のサイズ」、COUNTAは「データが入っているセルの数」を返すので、空白セルが混ざる可能性があるかどうかで使い分けましょう。</p>



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



<p>OFFSET関数の「高さ」引数にROWS関数を使うと、範囲のサイズを動的に制御できます。</p>



<pre class="wp-block-code"><code>=OFFSET(A1,0,0,ROWS(データ範囲),1)</code></pre>



<p>名前付き範囲「データ範囲」の行数に応じて、OFFSET関数が返す範囲の高さが変わります。グラフの参照範囲やドロップダウンリストの元データを可変にしたいときに活躍するパターンです。</p>



<p>たとえばグラフの参照範囲を「名前の定義」で以下のように設定すると、データが増減してもグラフが自動的に追従します。</p>



<pre class="wp-block-code"><code>=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A:$A)-1,1)</code></pre>



<p>このパターンは「動的グラフ範囲」と呼ばれ、月次レポートや日次集計を運用する現場で重宝します。詳しくは<a href="https://mashukabu.com/excel-function-howto-use-offset/">OFFSET関数の解説記事</a>も参考にしてください。</p>



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



<p>文字列で組み立てた範囲の行数を調べたいときに使えます。</p>



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



<p>セルB1に入力された数値に応じて範囲のサイズが変わります。B1が <code>20</code> なら <code>=ROWS(A1:A20)</code> と同じ結果です。ユーザーが行数を入力して範囲を制御する仕組みを作りたいときに便利ですよ。</p>



<p>シート名を可変にした参照にも応用できます。</p>



<pre class="wp-block-code"><code>=ROWS(INDIRECT(&quot;'&quot;&amp;A1&amp;&quot;'!B2:B100&quot;))</code></pre>



<p>A1セルに「2026年4月」のようなシート名を入れておくと、対応するシートのB2:B100の行数を返します。月別に分かれたシートを横断して件数を集計するときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc16">パターン5: データ件数の検証に使う</span></h3>



<p>想定どおりのデータ件数があるかチェックする数式です。</p>



<pre class="wp-block-code"><code>=IF(ROWS(データ範囲)=COUNTA(データ範囲),&quot;OK&quot;,&quot;空白セルあり&quot;)</code></pre>



<p>ROWS関数で範囲の行数を調べ、COUNTA関数でデータが入っているセルの数を比較しています。空白行が混ざっていると数が合わなくなるので、データの欠損チェックに使えます。</p>



<p>入力フォームや取り込みデータの整合性確認に向いているパターンです。「100行あるはずなのに件数が合わない」というトラブルを早期に発見できます。</p>



<h3 class="wp-block-heading"><span id="toc17">パターン6: SEQUENCE関数の代わりに連番を作る（古いバージョン向け）</span></h3>



<p>Microsoft 365より前のバージョンではSEQUENCE関数が使えませんが、ROWSとオートフィルを組み合わせれば連番を作れます。</p>



<pre class="wp-block-code"><code>=ROWS($A$1:A1)</code></pre>



<p>A2セルにこの数式を入れて下方向にコピーすると、ROWS関数の範囲が <code>$A$1:A1</code>、<code>$A$1:A2</code>、<code>$A$1:A3</code> と広がっていき、結果が <code>1</code>、<code>2</code>、<code>3</code>&#8230; となります。行を挿入・削除しても番号が自動で振り直されるので、ROW関数より安定した連番が作れますよ。</p>



<h3 class="wp-block-heading"><span id="toc18">パターン7: 配列数式のサイズを可変にする</span></h3>



<p>SUMPRODUCT関数や配列数式で範囲サイズを動的に決めたいときに役立ちます。</p>



<pre class="wp-block-code"><code>=SUMPRODUCT((A1:INDEX(A:A,ROWS(売上データ)))*1)</code></pre>



<p>ROWS関数で「売上データ」の行数を取得し、INDEX関数で範囲の終端を決めることで、データが増えてもそのまま使える式が組めます。データ量に応じて自動でスケールするレポートを作るときに便利なテクニックです。</p>



<h2 class="wp-block-heading"><span id="toc19">ROW関数とROWS関数の違い</span></h2>



<p>ROWS関数とROW関数は名前が1文字違うだけなので混同しがちですが、役割はまったく別物です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>戻り値</th><th>引数</th><th>イメージ</th></tr></thead><tbody><tr><td><strong>ROWS</strong></td><td>行数（個数）</td><td>範囲必須</td><td>「物差しの長さ」を測る</td></tr><tr><td><strong>ROW</strong></td><td>行番号（位置）</td><td>省略可</td><td>「現在地の番地」を返す</td></tr></tbody></table></figure>



<p>具体例で比較してみましょう。</p>



<pre class="wp-block-code"><code>=ROW(A3)       → 3   （A3は3行目にあるので「3」）
=ROW(A5:A10)   → 5   （範囲の先頭A5の行番号）
=ROW()         → 数式が入っているセルの行番号

=ROWS(A3)        → 1   （A3は1行分なので「1」）
=ROWS(A5:A10)    → 6   （A5からA10まで6行分ある）
=ROWS()          → エラー（引数省略不可）</code></pre>



<p>ポイントは「複数形のROWSは複数の行を数える」「単数形のROWは1つのセルの位置を返す」と覚えることです。</p>



<p>実務での使い分けは、ざっくり以下のように分かれます。</p>



<ul class="wp-block-list"><li>セルが<strong>何行目にあるか</strong>知りたい → ROW関数</li><li>範囲に<strong>何行分のデータがあるか</strong>知りたい → ROWS関数</li><li>オートフィルで<strong>連番</strong>を作りたい → どちらでも可（ROWSのほうが行挿入に強い）</li></ul>



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



<p>ROWSと対称ペアになるのが<a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数</a>です。両者は方向が違うだけで、構文も使い方もそっくりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>数えるもの</th><th>例</th><th>結果</th></tr></thead><tbody><tr><td><strong>ROWS</strong></td><td>行数（縦方向）</td><td><code>=ROWS(A1:A10)</code></td><td><code>10</code></td></tr><tr><td><strong>COLUMNS</strong></td><td>列数（横方向）</td><td><code>=COLUMNS(A1:J1)</code></td><td><code>10</code></td></tr></tbody></table></figure>



<p>組み合わせて使えば、範囲のセル総数も計算できます。</p>



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



<p>10行 × 5列で <code>50</code> が返ります。範囲のサイズ感を数値化したいときに便利です。</p>



<p>なお、ROWS・COLUMNSの兄弟関数として、位置を返すROW・COLUMNがあります。4つの関係をまとめると以下のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>戻り値</th><th>方向</th></tr></thead><tbody><tr><td><strong>ROWS</strong></td><td>行数（サイズ）</td><td>縦</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-row/">ROW</a></td><td>行番号（位置）</td><td>縦</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS</a></td><td>列数（サイズ）</td><td>横</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN</a></td><td>列番号（位置）</td><td>横</td></tr></tbody></table></figure>



<p>「単数形 = 位置」「複数形 = サイズ」「ROW系 = 縦」「COLUMN系 = 横」という4象限で覚えておくと、必要なときに迷わず選べますよ。</p>



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



<p>ROWS関数で実務でつまずきやすいパターンと対処法をまとめました。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー・症状</th><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>「少なすぎる引数」エラー</td><td><code>=ROWS()</code> と引数を省略した</td><td>ROWS関数は引数が必須です。行数を調べたい範囲を必ず指定してください</td></tr><tr><td><code>#REF!</code></td><td>参照していたセルや範囲が削除された</td><td>参照先が存在するか確認してください。シートを削除した場合も発生します</td></tr><tr><td><code>#NAME?</code></td><td>名前付き範囲のスペルミス、関数名のtypo</td><td>「数式」タブの「名前の管理」から定義済みの名前を確認してください。<code>=ROW(</code> と書いていないか（複数形のSが抜けていないか）も要チェック</td></tr><tr><td>期待と違う数値が返る</td><td>行数ではなく行番号を求めていた</td><td>行番号がほしい場合は<a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数</a>を使ってください</td></tr><tr><td><code>1</code> しか返らない</td><td>単一セルを引数にしていた</td><td>範囲を <code>A1:A10</code> のようにコロンで指定してください</td></tr><tr><td>テーブルで思ったより少ない</td><td>テーブル名指定では見出し行が含まれない</td><td>見出し行も含めたい場合は <code>テーブル1[#すべて]</code> を使ってください</td></tr><tr><td>シートを統合したら値がずれた</td><td>INDIRECT組み合わせ時にシート名にスペースや日本語が含まれる</td><td>シート名はシングルクォートで囲んでください: <code>"'シート名'!A1:A10"</code></td></tr></tbody></table></figure>



<p>トラブルが起きたら、まずはROWS関数単体で <code>=ROWS(範囲)</code> と書いて期待通りの行数が返ってくるか確認するのが鉄則です。組み合わせ式の中で問題が起きていることが多いので、切り分けが大切ですよ。</p>



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



<p>ROWS関数はセル範囲の行数を取得するシンプルな関数ですが、他の関数と組み合わせることで、行番号の自動化やデータ範囲の動的制御まで幅広く活用できます。</p>



<ul class="wp-block-list"><li>構文は <code>=ROWS(配列)</code> で引数は1つだけ（省略不可）</li><li>ROW関数が「位置」、ROWS関数が「サイズ」を返す</li><li>HLOOKUP・INDEX・OFFSET・INDIRECT などとの組み合わせが実務で便利</li><li>動的グラフ範囲・データ件数検証・連番採番などに応用できる</li><li>対称ペアのCOLUMNS関数もあわせて覚えておくと効果的</li></ul>



<p>「行数を数える」だけの地味な関数に見えて、可変範囲を扱う数式の屋台骨になる関数です。HLOOKUP や OFFSET を多用する現場では特に出番が多いので、構文と組み合わせパターンを引き出しに入れておきましょう。</p>



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



<ul class="wp-block-list"><li><a href="https://mashukabu.com/excel-function-howto-use-row/">ROW関数の使い方｜行番号の取得から連番・応用まで解説</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数の使い方｜セル範囲の列数を調べる</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数の使い方｜列番号を調べる</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数の使い方｜検索値の位置を調べる</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数の使い方｜行と列を指定して値を取得する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-offset/">OFFSET関数の使い方｜基準セルからの相対参照</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数の使い方｜文字列をセル参照に変換する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-vlookup/">VLOOKUP関数の使い方｜表から値を検索する</a></li><li><a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数の使い方｜エラーを非表示にする</a></li></ul>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-rows/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのROW関数の使い方｜行の増減に強い連番と5つの実務パターン</title>
		<link>https://mashukabu.com/excel-function-howto-use-row/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-row/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Fri, 27 May 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[INDIRECT関数]]></category>
		<category><![CDATA[ROW関数]]></category>
		<category><![CDATA[SEQUENCE関数]]></category>
		<category><![CDATA[SMALL関数]]></category>
		<category><![CDATA[行番号]]></category>
		<category><![CDATA[連番]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2063</guid>

					<description><![CDATA[ExcelのROW関数の使い方を基本から応用まで解説。行の追加・削除に強い崩れない連番の作り方、INDEX×ROWで行を動的参照する方法、SMALL+IFの配列数式、FILTERやSEQUENCEとの使い分けまで実務5パターンを紹介します。]]></description>
										<content:encoded><![CDATA[
<p>Excelで連番を手入力していて、行を挿入したら番号がズレた経験ありませんか？　1つ2つならすぐ直せますが、100行を超えるリストだと修正漏れが出てきますよね。そんな悩みを解決するのが、ExcelのROW関数です。</p>



<p>この記事では、ROW関数の基本から崩れない連番の作り方まで解説します。INDEX・SMALL・INDIRECTとの組み合わせなど、実務で使える5つのパターンを紹介します。</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">ROW関数とは？基本の使い方をおさらい</a><ol><li><a href="#toc2" tabindex="0">引数なし：入力セル自身の行番号を返す</a></li><li><a href="#toc3" tabindex="0">引数あり：任意のセルの行番号を取得する</a></li><li><a href="#toc4" tabindex="0">COLUMN関数との対称パターン表（行と列の整理）</a></li></ol></li><li><a href="#toc5" tabindex="0">崩れない連番｜行の増減に強い自動ナンバリング</a><ol><li><a href="#toc6" tabindex="0">手入力の連番が壊れる場面（行挿入・削除のあるある）</a></li><li><a href="#toc7" tabindex="0">ROW()-Nで1から始める思考ステップ</a></li><li><a href="#toc8" tabindex="0">ROW()-ROW(見出しセル)で開始行フリーにする</a></li><li><a href="#toc9" tabindex="0">M365スピル対応：SEQUENCE関数との比較</a></li></ol></li><li><a href="#toc10" tabindex="0">INDEX + ROW｜行番号を動的に切り替える</a><ol><li><a href="#toc11" tabindex="0">基本形：行番号をキーにした縦展開</a></li><li><a href="#toc12" tabindex="0">実際の数式：複数行を一括取得するサンプル</a></li></ol></li><li><a href="#toc13" tabindex="0">SMALL + IF + ROW｜条件付きデータ抽出の配列数式</a><ol><li><a href="#toc14" tabindex="0">ROWが行番号配列を生成する役割</a></li><li><a href="#toc15" tabindex="0">M365ではFILTER関数に置き換え</a></li></ol></li><li><a href="#toc16" tabindex="0">INDIRECT + ROWで動的セル参照</a></li><li><a href="#toc17" tabindex="0">FILTER・SEQUENCEでROW関数が不要になるケース</a><ol><li><a href="#toc18" tabindex="0">ROW関数が担っていた役割と現代的な代替</a></li><li><a href="#toc19" tabindex="0">それでもROW関数が必要な場面</a></li></ol></li><li><a href="#toc20" tabindex="0">ROW関数 よくある質問・エラー対処</a><ol><li><a href="#toc21" tabindex="0">#VALUE!・#REF!が出たときの確認ポイント</a></li><li><a href="#toc22" tabindex="0">ROWS関数との違いは？</a></li></ol></li><li><a href="#toc23" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">ROW関数とは？基本の使い方をおさらい</span></h2>



<p>ROW関数（読み：ロウ）は、セルの行番号を数値で返す関数です。1行目なら1、2行目なら2、10行目なら10を返します。名前のとおり「行（Row）」の番号を取得する、シンプルな関数です。</p>



<p>構文はこちらです。</p>



<pre class="wp-block-code"><code>=ROW([参照])</code></pre>



<p>引数は1つだけで、しかも省略もできます。</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>それでは、具体的な使い方を見ていきましょう。</p>



<h3 class="wp-block-heading"><span id="toc2">引数なし：入力セル自身の行番号を返す</span></h3>



<p>引数を省略すると、数式を入力したセル自身の行番号を返します。</p>



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



<p>たとえば、A3セルにこの数式を入れると「3」が返ります。A5なら「5」、A10なら「10」です。「いま自分がどの行にいるか」を取得したいときに便利ですよ。</p>



<h3 class="wp-block-heading"><span id="toc3">引数あり：任意のセルの行番号を取得する</span></h3>



<p>引数にセル参照を指定すると、そのセルの行番号を返します。</p>



<pre class="wp-block-code"><code>=ROW(A1)    → 1
=ROW(D10)   → 10
=ROW(G5)    → 5</code></pre>



<p>範囲を指定した場合は、先頭の行番号を返します。たとえば =ROW(A1:A5) は「1」です。Microsoft 365環境では、スピルで {1;2;3;4;5} と複数の行番号を返します。</p>



<h3 class="wp-block-heading"><span id="toc4">COLUMN関数との対称パターン表（行と列の整理）</span></h3>



<p>ROW関数には、列番号を返す<a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>という対になる関数があります。この2つは完全に対称です。</p>



<figure class="wp-block-table"><table><thead><tr><th>比較項目</th><th>ROW()</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>下にコピーで増える</td><td>右にコピーで増える</td></tr><tr><td>典型パターン</td><td>=ROW()-ROW($A$1)</td><td>=COLUMN()-COLUMN($A$1)</td></tr></tbody></table></figure>



<p>COLUMN関数で横方向の連番を振った経験があれば、ROW関数はその縦方向バージョンだと考えてください。</p>



<h2 class="wp-block-heading"><span id="toc5">崩れない連番｜行の増減に強い自動ナンバリング</span></h2>



<p>ROW関数が最も活躍するのは、縦方向の連番を自動生成する場面です。手入力の連番は、行の追加・削除であっさり壊れます。</p>



<h3 class="wp-block-heading"><span id="toc6">手入力の連番が壊れる場面（行挿入・削除のあるある）</span></h3>



<p>連番を「1, 2, 3, 4&#8230;」と手入力していると、こんな問題が起きます。</p>



<ul class="wp-block-list"><li>途中に行を挿入すると、番号が飛ぶ</li><li>行を削除すると、番号が欠番になる</li><li>並べ替えをすると、連番がバラバラになる</li></ul>



<p>10行程度ならすぐ振り直せます。でも数百行のリストだと、修正漏れが確実に発生しますよね。</p>



<h3 class="wp-block-heading"><span id="toc7">ROW()-Nで1から始める思考ステップ</span></h3>



<p>ROW関数を使えば、連番が自動で更新されます。考え方は次の3ステップです。</p>



<ol class="wp-block-list"><li>ROW() で数式セルの行番号を取得する</li><li>見出し行の行数を引いて、1から始まるように調整する</li><li>下にコピーすれば自動で2, 3, 4&#8230;と増える</li></ol>



<p>たとえば、1行目が見出しでA2セルからデータが始まる場合はこうなります。</p>



<pre class="wp-block-code"><code>=ROW()-1</code></pre>



<p>A2セルでは ROW() が2を返します。2 &#8211; 1 = 1です。A3なら3 &#8211; 1 = 2、A4なら4 &#8211; 1 = 3と、自動で連番になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc8">ROW()-ROW(見出しセル)で開始行フリーにする</span></h3>



<p>=ROW()-1 には弱点があります。データの開始行が2行目以外だと、引く数を変えなければなりません。見出しが2行あれば =ROW()-2、5行目から始まるなら =ROW()-4 と、毎回計算が必要です。</p>



<p>そこで、汎用的なのがこの書き方です。</p>



<pre class="wp-block-code"><code>=ROW()-ROW($A$1)</code></pre>



<p>$A$1 は見出し行（連番の1つ上の行）を絶対参照で指定しています。データが何行目から始まっても、見出しセルを変えるだけで正しい連番になります。</p>



<p>見出しが2行ある場合は、参照を $A$2 にするだけです。</p>



<pre class="wp-block-code"><code>=ROW()-ROW($A$2)</code></pre>



<p>A3セルに入力すると、3 &#8211; 2 = 1。A4なら4 &#8211; 2 = 2と、正しく連番が振られます。開始行を気にしなくてよいので、テンプレートの使い回しにも向いていますよ。</p>



<h3 class="wp-block-heading"><span id="toc9">M365スピル対応：SEQUENCE関数との比較</span></h3>



<p>Microsoft 365をお使いなら、<a href="https://mashukabu.com/excel-function-howto-use-sequence/">SEQUENCE関数</a>でも縦方向の連番を生成できます。</p>



<figure class="wp-block-table"><table><thead><tr><th>目的</th><th>ROW()（※M365）</th><th>SEQUENCE()</th></tr></thead><tbody><tr><td>1から10の連番</td><td>=ROW(A1:A10) → {1;2;&#8230;;10}</td><td>=SEQUENCE(10)</td></tr><tr><td>100から始まる連番</td><td>計算が必要</td><td>=SEQUENCE(10,1,100)</td></tr><tr><td>偶数だけの連番</td><td>直接指定できない</td><td>=SEQUENCE(5,1,2,2)</td></tr><tr><td>全バージョンで動作</td><td>ROW()-N なら全対応</td><td>Excel 2021以降のみ</td></tr></tbody></table></figure>



<p>※ ROW()のスピル展開はMicrosoft 365（またはExcel 2021以降）のみ対応です。</p>



<p>連番を振ることが目的で、開始値や増分を自由に設定したいならSEQUENCE関数が便利です。一方、すべてのExcelバージョンで動作する連番が必要な場面では、ROW関数が安定した選択肢になります。</p>



<h2 class="wp-block-heading"><span id="toc10">INDEX + ROW｜行番号を動的に切り替える</span></h2>



<p><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>の行引数にROW関数を使うと、行番号を動的に変えられます。</p>



<h3 class="wp-block-heading"><span id="toc11">基本形：行番号をキーにした縦展開</span></h3>



<p>INDEX関数の基本形はこちらです。</p>



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



<p>この「行番号」の部分にROW関数を組み込むと、数式をコピーするだけで参照行が自動で変わります。</p>



<h3 class="wp-block-heading"><span id="toc12">実際の数式：複数行を一括取得するサンプル</span></h3>



<p>たとえば、B列からE列のデータ表があり、別の場所に縦方向に展開したい場合です。</p>



<pre class="wp-block-code"><code>=INDEX($B$2:$B$20, ROW()-ROW($A$1))</code></pre>



<p>この数式をA2セルに入力すると、ROW()-ROW($A$1) は 2-1 = 1で、範囲の1行目を返します。A3にコピーすれば2行目、A4なら3行目と、順番にデータを取得できます。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>と組み合わせれば、検索値に一致した行を柔軟に取得できますよ。</p>



<pre class="wp-block-code"><code>=INDEX($B$2:$E$20, MATCH($A2,$B$2:$B$20,0), COLUMN()-COLUMN($G$1))</code></pre>



<p>この数式をH列以降に横にコピーすると、列番号が自動で変わります。INDEX + MATCH + COLUMNの3関数で、縦横どちらにも展開できる柔軟な数式になります。</p>



<h2 class="wp-block-heading"><span id="toc13">SMALL + IF + ROW｜条件付きデータ抽出の配列数式</span></h2>



<p>ROW関数は、配列数式の中で行番号の配列を生成する役割も担います。レガシーExcel（Excel 2019以前）で条件に合うデータを順番に抽出する定番テクニックです。</p>



<h3 class="wp-block-heading"><span id="toc14">ROWが行番号配列を生成する役割</span></h3>



<p>次の配列数式は、A列が「東京」の行のB列の値を上から順に取り出します。</p>



<pre class="wp-block-code"><code>=IFERROR(INDEX($B$2:$B$20, SMALL(IF($A$2:$A$20=&quot;東京&quot;, ROW($A$2:$A$20)-ROW($A$2)+1), ROW()-1)), &quot;&quot;)</code></pre>



<p>※ Excel 2019以前では Ctrl + Shift + Enter で確定する必要があります。</p>



<p>ちょっとむずかしく見えますが、やっていることはシンプルです。</p>



<ol class="wp-block-list"><li>ROW($A$2:$A$20)-ROW($A$2)+1 で1から始まる連番配列を生成</li><li>IF関数で条件に合う行だけ番号を残し、それ以外はFALSEにする</li><li><a href="https://mashukabu.com/excel-function-howto-use-small/">SMALL関数</a>で小さい順に番号を取り出す</li><li>INDEX関数でその番号の行のデータを返す</li></ol>



<p>ROW関数が「行番号の配列を作る」という裏方の仕事を担っているわけです。<a href="https://mashukabu.com/excel-function-howto-use-iferror/">IFERROR関数</a>で該当データがなくなったときの #NUM! エラーを空文字に変換しています。</p>



<h3 class="wp-block-heading"><span id="toc15">M365ではFILTER関数に置き換え</span></h3>



<p>Microsoft 365をお使いなら、上記の配列数式はFILTER関数1つで置き換えられます。</p>



<pre class="wp-block-code"><code>=FILTER($B$2:$B$20, $A$2:$A$20=&quot;東京&quot;)</code></pre>



<p>SMALL + IF + ROWの配列数式に比べて、圧倒的にシンプルですよね。M365環境であれば、新しく数式を書くときはFILTER関数を使うのがおすすめです。</p>



<p>ただし、既存のブックがExcel 2019以前で運用されている場合は、ROW関数を使った配列数式が現役で活躍します。</p>



<h2 class="wp-block-heading"><span id="toc16">INDIRECT + ROWで動的セル参照</span></h2>



<p><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせると、行番号から動的にセル参照を生成できます。</p>



<p>たとえば、ROW関数で行番号を取得し、ADDRESS関数でセル参照文字列に変換します。その参照文字列をINDIRECTで実際のセル参照に変えるパターンです。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(ROW()-1, COLUMN(), 4))</code></pre>



<p>3つの関数を重ねていますが、処理の流れはシンプルです。ROW関数で行番号を取得し、ADDRESS関数でセル参照文字列（例: &#8220;A2&#8243;）に変換します。INDIRECTで、その文字列を実際のセル参照にしています。A3セルに入力した場合、「1行上のセル＝A2」の値を返します。</p>



<p>もう1つの定番が、位置に依存しない固定配列を生成するパターンです。</p>



<pre class="wp-block-code"><code>=ROW(INDIRECT(&quot;1:10&quot;))</code></pre>



<p>この数式は、どのセルに入力しても {1;2;3;4;5;6;7;8;9;10} の配列を返します。セルの位置に左右されない点が、SMALL + IF の配列数式で重宝されるポイントです。</p>



<h2 class="wp-block-heading"><span id="toc17">FILTER・SEQUENCEでROW関数が不要になるケース</span></h2>



<p>Microsoft 365や Excel 2021以降では、ROW関数が担っていた役割の多くを新しい関数で代替できます。</p>



<h3 class="wp-block-heading"><span id="toc18">ROW関数が担っていた役割と現代的な代替</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>ROW関数の用途</th><th>代替関数</th><th>メリット</th></tr></thead><tbody><tr><td>連番の自動生成</td><td>SEQUENCE</td><td>開始値・増分を引数で指定できる</td></tr><tr><td>条件付きデータ抽出</td><td>FILTER</td><td>配列数式が不要でシンプル</td></tr><tr><td>行番号配列の生成</td><td>SEQUENCE</td><td>ROW(INDIRECT(&#8230;)) より直感的</td></tr></tbody></table></figure>



<p>新しく数式を書くときは、SEQUENCE・FILTERを優先した方が読みやすい数式になります。</p>



<h3 class="wp-block-heading"><span id="toc19">それでもROW関数が必要な場面</span></h3>



<p>新しい関数を使っていても、ROW関数の出番がなくなるわけではありません。</p>



<ul class="wp-block-list"><li>Excel 2019以前の環境で連番や配列数式を使いたいとき</li><li>条件付き書式で「行番号が偶数なら色を付ける」判定をしたいとき</li><li>数式セル自身の位置を取得して、動的に処理を分岐させたいとき</li><li>VBAやマクロに行番号を渡したいとき</li></ul>



<p>新しい関数で連番や抽出を処理しつつ、行番号の取得が必要な場面ではROW関数を使う。この使い分けがポイントですよ。</p>



<h2 class="wp-block-heading"><span id="toc20">ROW関数 よくある質問・エラー対処</span></h2>



<h3 class="wp-block-heading"><span id="toc21">#VALUE!・#REF!が出たときの確認ポイント</span></h3>



<p>ROW関数でエラーが出るケースは多くありません。ただし、次の場面では注意が必要です。</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>#REF!</td><td>参照先の行が削除された</td><td>数式を再入力する</td></tr></tbody></table></figure>



<p>=ROW(&#8220;A1&#8221;) のようにダブルクォーテーションで囲むと、文字列として扱われ #VALUE! エラーになります。正しくは =ROW(A1) です。引用符なしのセル参照を使ってください。</p>



<p>また、非連続範囲（例：=ROW((A1,A5))）は指定できません。連続した範囲で指定するようにしましょう。</p>



<h3 class="wp-block-heading"><span id="toc22">ROWS関数との違いは？</span></h3>



<p>名前が似ている<a href="https://mashukabu.com/excel-function-howto-use-rows/">ROWS関数</a>は、まったく別の関数です。</p>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>機能</th><th>例</th></tr></thead><tbody><tr><td>ROW</td><td>指定セルの行番号を返す</td><td>=ROW(A3) → 3</td></tr><tr><td>ROWS</td><td>範囲の行数を返す</td><td>=ROWS(A1:A3) → 3</td></tr></tbody></table></figure>



<p>ROW関数は「位置」を返し、ROWS関数は「個数」を返します。末尾にSが付くかどうかで意味が変わるので、混同しないように気をつけてくださいね。</p>



<p>同じ関係がCOLUMN関数と<a href="https://mashukabu.com/excel-function-howto-use-columns/">COLUMNS関数</a>にもあります。</p>



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



<p>ROW関数は、セルの行番号を返すシンプルな関数です。単体ではあまり目立ちませんが、他の関数と組み合わせることで真価を発揮します。</p>



<p>この記事で紹介した活用パターンをおさらいします。</p>



<ul class="wp-block-list"><li>ROW()-ROW(見出しセル) で行の増減に強い連番を作る</li><li>INDEX + ROWで行番号を動的に切り替えて縦展開する</li><li>SMALL + IF + ROWで条件付きデータを順番に抽出する（レガシー環境向け）</li><li>INDIRECT + ROWで位置に依存しない固定配列を生成する</li><li>M365ではSEQUENCE・FILTERが代替になるが、行番号の取得にはROWが現役</li></ul>



<p>まずは手入力の連番を =ROW()-ROW($A$1) に置き換えるところから試してみてください。行を挿入しても連番が崩れないので、リストのメンテナンスがぐっと楽になりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-row/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
