<?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>ADDRESS関数 &#8211; biz-tactics</title>
	<atom:link href="https://mashukabu.com/tag/address%e9%96%a2%e6%95%b0/feed/" rel="self" type="application/rss+xml" />
	<link>https://mashukabu.com</link>
	<description></description>
	<lastBuildDate>Mon, 20 Apr 2026 13:31:30 +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>ADDRESS関数 &#8211; biz-tactics</title>
	<link>https://mashukabu.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>スプレッドシートのADDRESS関数の使い方｜セル番地を自動作成</title>
		<link>https://mashukabu.com/spreadsheet-address-function/</link>
					<comments>https://mashukabu.com/spreadsheet-address-function/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Thu, 19 Mar 2026 15:13:39 +0000</pubDate>
				<category><![CDATA[Googleスプレッドシート]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[INDIRECT連携]]></category>
		<category><![CDATA[スプレッドシート関数]]></category>
		<category><![CDATA[セル番地]]></category>
		<category><![CDATA[動的参照]]></category>
		<category><![CDATA[参照形式]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=4670</guid>

					<description><![CDATA[スプレッドシートのADDRESS関数の使い方を基本から解説。行番号・列番号からセル番地を自動作成する方法、INDIRECT関数との組み合わせ、参照形式の違いまで実例つきで紹介します。]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1" checked><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">スプレッドシートのADDRESS関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・語源</a></li><li><a href="#toc3" tabindex="0">ADDRESS関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">スプレッドシートのADDRESS関数の書き方（構文・引数）</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">ADDRESS関数の基本的な使い方</a></li><li><a href="#toc8" tabindex="0">ADDRESS関数の実践的な使い方・応用例</a><ol><li><a href="#toc9" tabindex="0">ADDRESS+INDIRECTで動的セル参照を作る</a></li><li><a href="#toc10" tabindex="0">ROW・COLUMNと組み合わせて位置を動的に取得する</a></li><li><a href="#toc11" tabindex="0">別シートから動的にデータを取得する</a></li><li><a href="#toc12" tabindex="0">MATCH関数と組み合わせて検索結果の位置を表示する</a></li></ol></li><li><a href="#toc13" tabindex="0">よくあるエラーと対処法</a></li><li><a href="#toc14" tabindex="0">似た関数との違い・使い分け</a></li><li><a href="#toc15" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



<p>「行番号と列番号はわかるけど、セル番地の文字列が欲しい」――そんな場面はありませんか？</p>



<p>たとえばVLOOKUPやINDEX関数の結果をもとに、「どのセルを見ているか」を表示したい。でもセル番地を手入力で管理するのは面倒ですよね。</p>



<p>スプレッドシートの<strong>ADDRESS関数</strong>を使えば、行番号と列番号を指定するだけでセル番地の文字列を自動生成できます。<a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>（文字列をセル参照に変換する関数）と組み合わせれば、動的なセル参照の仕組みも作れますよ。</p>



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



<p>ADDRESS関数は「<strong>アドレス関数</strong>」と読みます。英語の「address」は「住所・番地」という意味です。</p>



<p>セルの「住所」にあたる番地文字列を返す関数、と覚えるとわかりやすいですね。</p>



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



<p>ADDRESS関数を使うと、次のようなことができます。</p>



<ul class="wp-block-list"><li>行番号と列番号からセル番地の文字列（例: <code>$A$1</code>）を生成する</li><li>絶対参照・相対参照・複合参照を切り替えて出力する</li><li>A1形式とR1C1形式を選んで出力する</li><li>別シートのセル番地（例: <code>Sheet2!$A$1</code>）を生成する</li><li>INDIRECT関数と組み合わせて、番地から実際の値を取得する</li></ul>



<p>ポイントは「<strong>文字列を返す</strong>」ことです。ADDRESS関数だけではセルの値は取得できません。値が欲しいときは<a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>と組み合わせます。</p>



<h2 class="wp-block-heading"><span id="toc4">スプレッドシートのADDRESS関数の書き方（構文・引数）</span></h2>



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



<pre class="wp-block-code"><code>=ADDRESS(行, 列, [参照の型], [A1形式], [シート名])</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>セルの行番号（1以上の整数）</td></tr><tr><td>列</td><td>必須</td><td>セルの列番号（1以上の整数。A列=1、B列=2&#8230;）</td></tr><tr><td>参照の型</td><td>省略可</td><td>参照形式の種類（下表参照）。省略時は1（絶対参照）</td></tr><tr><td>A1形式</td><td>省略可</td><td>TRUE=A1形式（デフォルト）、FALSE=R1C1形式</td></tr><tr><td>シート名</td><td>省略可</td><td>シート名を文字列で指定。出力にシート名が付く</td></tr></tbody></table></figure>



<h4 class="wp-block-heading">参照の型（第3引数）の一覧</h4>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>参照形式</th><th>出力例</th></tr></thead><tbody><tr><td>1</td><td>絶対参照（行・列とも固定）</td><td><code>$A$1</code></td></tr><tr><td>2</td><td>行だけ絶対参照</td><td><code>A$1</code></td></tr><tr><td>3</td><td>列だけ絶対参照</td><td><code>$A1</code></td></tr><tr><td>4</td><td>相対参照（固定なし）</td><td><code>A1</code></td></tr></tbody></table></figure>



<p>実務では「1（絶対参照）」か「4（相対参照）」を使うことがほとんどです。迷ったら省略して絶対参照にしておけばOKです。</p>



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



<p>もっともシンプルな使い方は、行番号と列番号を直接指定するパターンです。</p>



<pre class="wp-block-code"><code>=ADDRESS(3, 2)</code></pre>



<p>結果は <code>$B$3</code> です。3行目・2列目（B列）のセル番地が、絶対参照の文字列として返されます。</p>



<p>相対参照で取得したい場合は、第3引数に4を指定します。</p>



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



<p>結果は <code>B3</code> です。<code>$</code> 記号のない相対参照になります。</p>



<p>R1C1形式で出力したいときは、第4引数をFALSEにします。</p>



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



<p>結果は <code>R3C2</code> です。「R=Row（行）3、C=Column（列）2」という意味で、A1形式とは異なる表記になります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>R1C1形式はGoogleスプレッドシートの標準設定ではありません。通常はA1形式（デフォルト）のまま使えば問題ありません。</p></blockquote>



<p>別シートのセル番地を取得するには、第5引数にシート名を指定します。</p>



<pre class="wp-block-code"><code>=ADDRESS(1, 1, 1, TRUE, &quot;売上データ&quot;)</code></pre>



<p>結果は <code>'売上データ'!$A$1</code> です。シート名がシングルクォーテーションで囲まれた形式になります。</p>



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



<h3 class="wp-block-heading"><span id="toc9">ADDRESS+INDIRECTで動的セル参照を作る</span></h3>



<p>ADDRESS関数は「文字列」を返すだけなので、そのままでは値を取得できません。<a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>と組み合わせると、セルの値を取り出せます。</p>



<p>たとえばA1セルに行番号「5」、B1セルに列番号「3」が入っているとします。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(A1, B1))</code></pre>



<p>ADDRESS(A1, B1)が <code>$C$5</code> を返します。INDIRECT関数がこれをセル参照に変換して、C5セルの値を取得します。</p>



<p>行番号や列番号をセルで管理すれば、参照先を自由に切り替えられます。プルダウンや入力欄と連動させると、見たいデータをすばやく表示できますよ。</p>



<h3 class="wp-block-heading"><span id="toc10">ROW・COLUMNと組み合わせて位置を動的に取得する</span></h3>



<p>ROW関数（セルの行番号を返す関数）やCOLUMN関数（セルの列番号を返す関数）との組み合わせも便利です。現在位置を基準にしたセル番地を生成できます。</p>



<p>たとえば「2行上のセル番地」を取得するには、次のように書きます。</p>



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



<p>ROW()が現在の行番号を返し、そこから2を引いた行と同じ列のセル番地が生成されます。</p>



<p>このパターンは数式の動作確認やデバッグに便利です。「この数式はどのセルを見ているのか」を隣のセルに表示して確認できます。</p>



<h3 class="wp-block-heading"><span id="toc11">別シートから動的にデータを取得する</span></h3>



<p>ADDRESS関数のシート名引数を活用して、別シートのデータを動的に取得するパターンです。</p>



<p>A1セルに「1月」というシート名が入っているとします。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(2, 3, 1, TRUE, A1))</code></pre>



<p>ADDRESS関数が <code>'1月'!$C$2</code> を返します。INDIRECT関数がこの文字列をセル参照に変換し、「1月」シートのC2セルの値を取得します。</p>



<p>A1セルを「2月」に変えれば、参照先は自動的に「2月」シートに切り替わります。</p>



<p>月次レポートの集計や、部署別シートの切り替えなど、同じ構成のシートを横断するときに重宝します。</p>



<h3 class="wp-block-heading"><span id="toc12">MATCH関数と組み合わせて検索結果の位置を表示する</span></h3>



<p><a href="https://mashukabu.com/spreadsheet-match-function/">MATCH関数</a>（検索値の位置を返す関数）の結果をADDRESS関数に渡すと、検索結果がどのセルにあるかを番地で表示できます。</p>



<p>A列に商品名が入っているとします。</p>



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



<p>MATCH関数が「りんご」の行番号を返します。ADDRESS関数がその行のA列のセル番地を生成します。結果は <code>$A$5</code> のような文字列です。</p>



<p>「検索した値がどこにあるか」を別セルに表示したいとき、このパターンが使えます。</p>



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



<p>ADDRESS関数で発生するエラーとその対処法をまとめます。</p>



<figure class="wp-block-table"><table><thead><tr><th>エラー</th><th>主な原因</th><th>対処法</th></tr></thead><tbody><tr><td><code>#VALUE!</code></td><td>行番号に0以下の値を指定した</td><td>行番号が1以上の整数になっているか確認する</td></tr><tr><td><code>#VALUE!</code></td><td>列番号に0以下の値を指定した</td><td>列番号が1以上の整数になっているか確認する</td></tr><tr><td><code>#VALUE!</code></td><td>引数に文字列を指定した</td><td>行・列番号が数値であることを確認する</td></tr><tr><td><code>#REF!</code></td><td>INDIRECTと組み合わせたとき、存在しないシート名を指定した</td><td>シート名のスペルを確認する</td></tr></tbody></table></figure>



<p>ADDRESS関数自体はエラーが起きにくい関数です。行番号と列番号に正の整数を渡せば、ほぼ確実に動作します。</p>



<p>エラーが出るのは多くの場合、INDIRECT関数と組み合わせたときです。ADDRESS関数が生成した文字列をINDIRECT関数に渡す場面で、参照先が存在しないと<code>#REF!</code>になります。</p>



<p>デバッグするときは、まずADDRESS関数だけの結果を確認してみてください。出力された文字列が正しいセル番地になっているかを目視で確認するのが早いです。</p>



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



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>特徴</th><th>使いどころ</th></tr></thead><tbody><tr><td>ADDRESS</td><td>行番号・列番号からセル番地の文字列を返す</td><td>セル番地の文字列を生成したいとき</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT</a></td><td>文字列をセル参照に変換して値を取得する</td><td>ADDRESS等で作った番地文字列から値を取り出すとき</td></tr><tr><td><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX</a></td><td>範囲から行番号・列番号で直接値を取得する</td><td>「セル番地の文字列」が不要で値だけ欲しいとき</td></tr><tr><td>ROW / COLUMN</td><td>セルの行番号・列番号を数値で返す</td><td>ADDRESS関数に渡す行・列番号を取得するとき</td></tr></tbody></table></figure>



<p><strong>ADDRESS関数とINDEX関数の使い分けがポイントです。</strong></p>



<p><a href="https://mashukabu.com/spreadsheet-index-function/">INDEX関数</a>は、行番号と列番号から直接値を取得します。「値だけ欲しい」なら、ADDRESS+INDIRECTの2段階を踏むよりINDEX関数のほうがシンプルです。</p>



<p>ADDRESS関数が活きるのは「セル番地そのもの」が必要な場面です。参照先の番地を表示したいとき、文字列操作でセル番地を組み立てたいとき、シート名付きの参照文字列を作りたいとき。こうした場面ではADDRESS関数が適しています。</p>



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



<p>スプレッドシートのADDRESS関数は、行番号と列番号からセル番地の文字列を生成する関数です。</p>



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



<ul class="wp-block-list"><li>構文は <code>=ADDRESS(行, 列, [参照の型], [A1形式], [シート名])</code></li><li>行番号と列番号を指定するだけでセル番地の文字列を返す</li><li>第3引数で絶対参照・相対参照・複合参照を切り替えられる</li><li><a href="https://mashukabu.com/spreadsheet-indirect-function/">INDIRECT関数</a>と組み合わせることで、動的なセル参照が実現できる</li><li>INDEX関数で値だけ取得できる場面では、ADDRESS+INDIRECTは不要</li><li>エラーは少ないが、行・列番号には1以上の整数を指定すること</li></ul>



<p>「セル番地を数式で自動生成したい」「参照先を動的に切り替えたい」――そんなときはADDRESS関数を活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/spreadsheet-address-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-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">スプレッドシートの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>Excelで列番号をアルファベットに変換する方法｜COLUMN・ADDRESS・SUBSTITUTEの組み合わせ技</title>
		<link>https://mashukabu.com/excel-function-howto-get-column-alphabet/</link>
					<comments>https://mashukabu.com/excel-function-howto-get-column-alphabet/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 16 Jul 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[COLUMN関数]]></category>
		<category><![CDATA[Excel]]></category>
		<category><![CDATA[SUBSTITUTE関数]]></category>
		<category><![CDATA[列番号変換]]></category>
		<category><![CDATA[関数の組み合わせ]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2104</guid>

					<description><![CDATA[Excelで列番号をアルファベット（列名）に変換する数式を解説します。COLUMN・ADDRESS・SUBSTITUTEの3関数を組み合わせたコピペ用数式を、仕組みからステップごとに丁寧に説明。VBAでの実装例・よくあるエラー対処・実務応用パターンも紹介します。]]></description>
										<content:encoded><![CDATA[
<p>Excelで「この列って何列目？」はCOLUMN関数ですぐわかります。でも「列番号をアルファベットに変換したい」となると、専用の関数がないので困りますよね。</p>



<p>たとえば、マクロで列を動的に指定したいとき、数式内で列名を文字列として扱いたいとき、表ヘッダーを自動生成したいとき。こういった場面で「列番号 → A, B, AA&#8230;」の変換が必要になります。</p>



<p>実はCOLUMN・ADDRESS・SUBSTITUTEの3つを組み合わせれば、たった1行の数式で列のアルファベットを取得できます。この記事ではコピペで使える数式から仕組みの解説、実務での応用パターン、VBAでの実装まで幅広く解説します。</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">コピペで使える数式2パターン</a><ol><li><a href="#toc2" tabindex="0">パターン1：数式を入力したセルの列を取得する</a></li><li><a href="#toc3" tabindex="0">パターン2：列番号を指定して変換する</a></li></ol></li><li><a href="#toc4" tabindex="0">数式の仕組みをステップごとに解説</a><ol><li><a href="#toc5" tabindex="0">ステップ1：COLUMN関数で列番号を取得する</a></li><li><a href="#toc6" tabindex="0">ステップ2：ADDRESS関数でセル番地を作る</a></li><li><a href="#toc7" tabindex="0">ステップ3：SUBSTITUTE関数で行番号を取り除く</a></li></ol></li><li><a href="#toc8" tabindex="0">実務で使える応用パターン</a><ol><li><a href="#toc9" tabindex="0">パターン1：別のセルの列アルファベットを取得する</a></li><li><a href="#toc10" tabindex="0">パターン2：連番の列アルファベット一覧を作る</a></li><li><a href="#toc11" tabindex="0">パターン3：見出し行と組み合わせて列名を自動表示する</a></li><li><a href="#toc12" tabindex="0">パターン4：INDIRECTと組み合わせてセル範囲を動的に指定する</a></li><li><a href="#toc13" tabindex="0">パターン5：MATCH関数と組み合わせて列名を逆引きする</a></li></ol></li><li><a href="#toc14" tabindex="0">VBAで列番号をアルファベットに変換する</a></li><li><a href="#toc15" tabindex="0">よくあるミスと対処法</a><ol><li><a href="#toc16" tabindex="0">行番号にROW()を使うと誤置換が起きることがある</a></li><li><a href="#toc17" tabindex="0">#VALUE!エラーが出る場合</a></li><li><a href="#toc18" tabindex="0">列番号に0以下を指定した場合</a></li><li><a href="#toc19" tabindex="0">結果が数値になっている場合</a></li></ol></li><li><a href="#toc20" tabindex="0">使用する3つの関数の役割まとめ</a></li><li><a href="#toc21" tabindex="0">よくある質問（FAQ）</a></li><li><a href="#toc22" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">コピペで使える数式2パターン</span></h2>



<p>まず結論から。すぐに使える数式はこちらです。</p>



<h3 class="wp-block-heading"><span id="toc2">パターン1：数式を入力したセルの列を取得する</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;)</code></pre>



<p>数式を入力したセルの列アルファベットを返します。たとえばD列のセルに入力すると「D」、AN列なら「AN」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc3">パターン2：列番号を指定して変換する</span></h3>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,列番号,4),1,&quot;&quot;)</code></pre>



<p>列番号を直接指定するパターンです。たとえば <code>=SUBSTITUTE(ADDRESS(1,40,4),1,"")</code> と書くと40列目の「AN」が返ります。</p>



<p>セル参照で列番号を渡すこともできます。A1セルに列番号が入っている場合は次のようにします。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,A1,4),1,&quot;&quot;)</code></pre>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong><br>行番号は「1」に固定するのがポイントです。理由はこの記事の「よくあるミスと対処法」で説明しますね。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc4">数式の仕組みをステップごとに解説</span></h2>



<p>一見むずかしそうに見えますが、やっていることはシンプルです。3つの関数がそれぞれ1つずつ役割を担当しています。</p>



<h3 class="wp-block-heading"><span id="toc5">ステップ1：COLUMN関数で列番号を取得する</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>は、セルの列番号を数値で返す関数です。</p>



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



<p>D列のセルで実行すると「4」が返ります。引数を省略すると、数式を入力したセル自身の列番号になりますよ。</p>



<p>特定のセルを参照させるときは <code>=COLUMN(G5)</code> のように書きます。G5のG列は7列目なので「7」が返ります。</p>



<h3 class="wp-block-heading"><span id="toc6">ステップ2：ADDRESS関数でセル番地を作る</span></h3>



<p>次に<a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a>を使って、列番号からセル番地の文字列を組み立てます。</p>



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



<p>この数式は「1行目・4列目・相対参照」を意味します。結果は文字列「D1」です。</p>



<p>ADDRESS関数の引数は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>引数</th><th>意味</th><th>この数式での値</th></tr></thead><tbody><tr><td>行番号</td><td>セル番地の行</td><td>1（固定）</td></tr><tr><td>列番号</td><td>セル番地の列</td><td>COLUMN()の結果</td></tr><tr><td>参照の型</td><td>$記号の有無</td><td>4（相対参照＝$なし）</td></tr></tbody></table></figure>



<p>第3引数を「4」にするのがポイントです。「$D$1」のように$記号が付くと、あとで行番号だけを取り除くのが面倒になります。「4」を指定すれば「D1」のようにシンプルな形で返ってきますよ。</p>



<h3 class="wp-block-heading"><span id="toc7">ステップ3：SUBSTITUTE関数で行番号を取り除く</span></h3>



<p>最後に<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>で、セル番地から行番号部分を空文字に置換します。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(&quot;D1&quot;, 1, &quot;&quot;)</code></pre>



<p>「D1」から「1」を取り除いて「D」だけが残る、という仕組みです。</p>



<p>これら3つのステップをまとめると、冒頭の数式になります。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), 1, &quot;&quot;)</code></pre>



<p>COLUMN()→ADDRESS()→SUBSTITUTE()の順にデータが流れていくイメージですね。</p>



<h2 class="wp-block-heading"><span id="toc8">実務で使える応用パターン</span></h2>



<p>基本の数式がわかったところで、実務で役立つ応用パターンを5つ紹介します。</p>



<h3 class="wp-block-heading"><span id="toc9">パターン1：別のセルの列アルファベットを取得する</span></h3>



<p>特定のセルの列アルファベットを知りたい場合は、COLUMN関数に参照を渡します。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(G5),4),1,&quot;&quot;)</code></pre>



<p>G5セルの列番号（7）をCOLUMN関数が返し、結果は「G」になります。</p>



<h3 class="wp-block-heading"><span id="toc10">パターン2：連番の列アルファベット一覧を作る</span></h3>



<p>A1セルに「1」、A2に「2」&#8230;と列番号を並べておき、B列に次の数式を入れます。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,A1,4),1,&quot;&quot;)</code></pre>



<p>下方向にコピーすれば、列番号に対応するアルファベットの一覧表が完成します。26列目まで入れればA〜Z、27列目以降はAA、AB&#8230;と2文字の列名も正しく返ってきますよ。</p>



<h3 class="wp-block-heading"><span id="toc11">パターン3：見出し行と組み合わせて列名を自動表示する</span></h3>



<p>データの1行目に項目名がある表で、「何列目が何の項目か」を確認したいケースです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;列: &quot; &amp; B1</code></pre>



<p>B1セルの上に配置すれば「B列: 売上」のように、列アルファベットと項目名をまとめて表示できます。</p>



<h3 class="wp-block-heading"><span id="toc12">パターン4：INDIRECTと組み合わせてセル範囲を動的に指定する</span></h3>



<p><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせると、列アルファベットを使ってセル範囲を文字列で組み立て、動的に参照できます。</p>



<pre class="wp-block-code"><code>=SUM(INDIRECT(SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;2:&quot; &amp; SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;) &amp; &quot;100&quot;))</code></pre>



<p>この数式は「数式を入力した列の2〜100行目を合計する」という意味です。列を増やしてもコピーするだけで自動的に集計列が切り替わるため、動的な集計表を作るときに便利です。</p>



<h3 class="wp-block-heading"><span id="toc13">パターン5：MATCH関数と組み合わせて列名を逆引きする</span></h3>



<p>特定の見出し名が何列目にあるかを<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>で調べ、その列名を取得するパターンです。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,MATCH(&quot;売上&quot;,1:1,0),4),1,&quot;&quot;)</code></pre>



<p>1行目から「売上」という見出しを探し、その列アルファベットを返します。列の順番が変わっても自動追従するので、ダイナミックな表操作に使えます。</p>



<h2 class="wp-block-heading"><span id="toc14">VBAで列番号をアルファベットに変換する</span></h2>



<p>マクロを使う場合は、<code>Cells(1, 列番号).Address(False, False)</code> で取得できます。</p>



<pre class="wp-block-code"><code>Sub GetColumnLetter()
    Dim colNum As Long
    Dim colLetter As String
    
    colNum = 5  ' E列を取得したい場合
    colLetter = Left(Cells(1, colNum).Address(False, False), _
                    Len(Cells(1, colNum).Address(False, False)) - 1)
    
    MsgBox colLetter  ' &quot;E&quot; と表示される
End Sub</code></pre>



<p><code>Cells(1, 列番号).Address(False, False)</code> は「行=相対参照、列=相対参照」のセル番地（例: E1）を返します。そこから行番号の「1」を除けば列アルファベットだけが取れます。</p>



<p>もっとシンプルな方法として、Split関数を使う書き方もあります。</p>



<pre class="wp-block-code"><code>Function ColNumToLetter(colNum As Long) As String
    ColNumToLetter = Split(Cells(1, colNum).Address(True, False), &quot;$&quot;)(0)
End Function</code></pre>



<p>この関数はコードの中で <code>ColNumToLetter(5)</code> のように呼び出せばいつでも使えます。</p>



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



<h3 class="wp-block-heading"><span id="toc16">行番号にROW()を使うと誤置換が起きることがある</span></h3>



<p>旧バージョンの数式 <code>=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),"")</code> には落とし穴があります。</p>



<p>たとえば11行目のA列で実行してみましょう。ADDRESS関数は「A11」を返します。ここでSUBSTITUTEが「11」を空文字に置換すると、結果は「A」で正しく動きます。</p>



<p>しかし問題が起きるケースがあります。行番号が変わるたびに置換対象の数値が変わるため、アルファベット部分に同じ数値が含まれる列では誤置換が起きる可能性があります。</p>



<p><strong>行番号を「1」に固定しておけば、こうした心配は一切不要です。</strong></p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,&quot;&quot;)</code></pre>



<p>行番号1なら、末尾の「1」を消すだけで確実にアルファベットだけが残りますよ。</p>



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



<p>COLUMN関数に無効な参照を渡すと<code>#VALUE!</code>エラーになることがあります。引数を省略するか、有効なセル参照を指定しているか確認してみてください。</p>



<h3 class="wp-block-heading"><span id="toc18">列番号に0以下を指定した場合</span></h3>



<p>ADDRESS関数の列番号に0以下の値を渡すと<code>#VALUE!</code>エラーになります。列番号は1以上の整数を指定しましょう。</p>



<h3 class="wp-block-heading"><span id="toc19">結果が数値になっている場合</span></h3>



<p>数式バー上では正しく見えるのに、セルに数値が表示されている場合は、セルの書式設定が「数値」になっていることがあります。書式を「標準」か「文字列」に変更してください。</p>



<h2 class="wp-block-heading"><span id="toc20">使用する3つの関数の役割まとめ</span></h2>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th><th>この数式での使い方</th></tr></thead><tbody><tr><td><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a></td><td>列番号を取得</td><td>セルの列を数値で返す</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a></td><td>セル番地を文字列で生成</td><td>行番号1＋列番号→「A1」形式の文字列</td></tr><tr><td><a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a></td><td>文字列を置換</td><td>セル番地から行番号「1」を除去</td></tr></tbody></table></figure>



<p>データの流れは <strong>列番号（数値）→ セル番地（文字列）→ アルファベットのみ（文字列）</strong> です。</p>



<h2 class="wp-block-heading"><span id="toc21">よくある質問（FAQ）</span></h2>



<p><strong>Q. XFD列（16,384列目）など、3文字の列名でも動きますか？</strong></p>



<p>動きます。<code>=SUBSTITUTE(ADDRESS(1,16384,4),1,"")</code> を試すと「XFD」が返ります。Excelの最大列（XFD）まで正しく変換できますよ。</p>



<p><strong>Q. Googleスプレッドシートでも同じ数式が使えますか？</strong></p>



<p>使えます。COLUMN・ADDRESS・SUBSTITUTE関数はスプレッドシートにも同名で存在するため、まったく同じ数式が動きます。</p>



<p><strong>Q. 逆変換（アルファベット → 列番号）はできますか？</strong></p>



<p>できます。<code>=COLUMN(INDIRECT(アルファベット & "1"))</code> の形で、任意のアルファベットから列番号を取得できます。たとえば <code>=COLUMN(INDIRECT("D1"))</code> で「4」が返ります。<a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>と組み合わせるのがシンプルですよ。</p>



<p><strong>Q. CELL関数では取得できないのですか？</strong></p>



<p><code>=CELL("address", A1)</code> で「$A$1」のような絶対参照の文字列は取れますが、列アルファベットだけを取り出すにはさらにSUBSTITUTEやLEFT関数で加工が必要です。SUBSTITUTE(ADDRESS(&#8230;))の数式のほうがシンプルに書けますよ。</p>



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



<p>Excelで列番号をアルファベットに変換する数式は次のとおりです。</p>



<figure class="wp-block-table"><table><thead><tr><th>やりたいこと</th><th>数式</th></tr></thead><tbody><tr><td>自セルの列を取得</td><td><code>=SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,"")</code></td></tr><tr><td>列番号を指定して変換</td><td><code>=SUBSTITUTE(ADDRESS(1,列番号,4),1,"")</code></td></tr><tr><td>別セルの列を取得</td><td><code>=SUBSTITUTE(ADDRESS(1,COLUMN(セル),4),1,"")</code></td></tr></tbody></table></figure>



<p>ポイントは3つの関数の役割分担です。<a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>で列番号を取得し、<a href="https://mashukabu.com/excel-function-howto-use-address/">ADDRESS関数</a>でセル番地の文字列を作り、<a href="https://mashukabu.com/excel-function-howto-use-substitute/">SUBSTITUTE関数</a>で行番号を除去します。行番号は「1」に固定しておくのが安全ですよ。</p>



<p><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>や<a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>との組み合わせでさらに柔軟な使い方もできます。列名の動的参照が必要になった場面で、ぜひ活用してみてください。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-get-column-alphabet/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ExcelのADDRESS関数の使い方｜INDIRECT連携で動的セル参照を実現</title>
		<link>https://mashukabu.com/excel-function-howto-use-address/</link>
					<comments>https://mashukabu.com/excel-function-howto-use-address/#respond</comments>
		
		<dc:creator><![CDATA[まっしゅ]]></dc:creator>
		<pubDate>Sat, 04 Jun 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[Excel関数]]></category>
		<category><![CDATA[ADDRESS関数]]></category>
		<category><![CDATA[INDEX関数]]></category>
		<category><![CDATA[INDIRECT関数]]></category>
		<category><![CDATA[MATCH関数]]></category>
		<category><![CDATA[セル参照]]></category>
		<category><![CDATA[動的セル参照]]></category>
		<guid isPermaLink="false">https://mashukabu.com/?p=2156</guid>

					<description><![CDATA[ExcelのADDRESS関数の使い方を解説。ADDRESS単体は文字列を返すだけですが、INDIRECTと組み合わせると別シートへの動的参照が実現します。INDEX関数との使い分け、MATCH・ROWとの応用パターンを実務例で紹介します。]]></description>
										<content:encoded><![CDATA[
<p>「行番号と列番号からセル番地を作りたい」<br>「シート名を動的に切り替えて値を取得したい」<br>こんな場面で手が止まったことはありませんか？</p>



<p>手動でセル番地を書き換えていると、<br>シートが増えるたびに修正の手間が増えていきます。</p>



<p>ExcelのADDRESS関数を使えば，<br>行番号と列番号からセル番地を自動生成できます。<br>INDIRECT関数と組み合わせれば，<br>動的にセル参照を切り替える仕組みも作れますよ。</p>



<p>この記事では，ADDRESS関数の基本構文から<br>MATCH+ADDRESS+INDIRECTとの実務パターンまで，<br>具体例つきで解説していきます。</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">ADDRESS関数とは？</a><ol><li><a href="#toc2" tabindex="0">読み方・語源</a></li><li><a href="#toc3" tabindex="0">ADDRESS関数でできること</a></li></ol></li><li><a href="#toc4" tabindex="0">ADDRESS関数の基本構文と引数</a><ol><li><a href="#toc5" tabindex="0">基本構文</a></li><li><a href="#toc6" tabindex="0">引数の説明</a></li><li><a href="#toc7" tabindex="0">参照の種類（第3引数）</a></li><li><a href="#toc8" tabindex="0">参照形式（第4引数）</a></li><li><a href="#toc9" tabindex="0">シート名（第5引数）</a></li></ol></li><li><a href="#toc10" tabindex="0">ADDRESS関数の基本的な使い方</a><ol><li><a href="#toc11" tabindex="0">絶対参照でセル番地を取得する</a></li><li><a href="#toc12" tabindex="0">相対参照・混合参照に切り替える</a></li><li><a href="#toc13" tabindex="0">別シートのセル番地を生成する</a></li></ol></li><li><a href="#toc14" tabindex="0">ADDRESS関数をINDIRECT関数と組み合わせてセル参照に変換する</a><ol><li><a href="#toc15" tabindex="0">データフローのイメージ</a></li><li><a href="#toc16" tabindex="0">実際の数式</a></li><li><a href="#toc17" tabindex="0">別シートの値を動的に取得する</a></li></ol></li><li><a href="#toc18" tabindex="0">MATCH+ADDRESS+INDIRECTで行を動的に特定する</a><ol><li><a href="#toc19" tabindex="0">3関数の役割</a></li><li><a href="#toc20" tabindex="0">月次集計表から当月データを抽出する例</a></li></ol></li><li><a href="#toc21" tabindex="0">ADDRESS関数で列番号をアルファベットに変換する方法</a></li><li><a href="#toc22" tabindex="0">ADDRESS関数とINDEX関数の使い分け</a><ol><li><a href="#toc23" tabindex="0">判断基準</a></li></ol></li><li><a href="#toc24" tabindex="0">ADDRESS関数のよくあるエラーと対処法</a><ol><li><a href="#toc25" tabindex="0">#VALUE!エラー</a></li><li><a href="#toc26" tabindex="0">INDIRECT連携時の#REF!エラー</a></li></ol></li><li><a href="#toc27" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

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



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



<p>読み方は「アドレス関数」です。<br>英語の「address（住所・番地）」が語源になっています。<br>セルの「住所」を文字列で返す関数ですよ。</p>



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



<p>ADDRESS関数はExcel 2003以降で使えます。<br>行番号と列番号を指定して，<br>セル番地を<strong>文字列</strong>として返す関数です。</p>



<p>たとえば <code>=ADDRESS(3,4)</code> と入力すると，<br>「$D$3」という文字列が返ります。<br>ここで大事なポイントがあります。<br>返るのはあくまで「文字列」です。<br>セル参照そのものではありません。</p>



<p>そのため，ADDRESS関数だけでは値を取得できません。<br>値を取り出すには<br><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>との<br>組み合わせが必要です。</p>



<p>「文字列しか返せない」という特徴を押さえておくと，<br>この後の応用パターンが理解しやすくなりますよ。</p>



<h2 class="wp-block-heading"><span id="toc4">ADDRESS関数の基本構文と引数</span></h2>



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



<pre class="wp-block-code"><code>=ADDRESS(行番号, 列番号, [参照の種類], [参照形式], [シート名])</code></pre>



<p>必ず指定するのは「行番号」と「列番号」の2つです。<br>残りの3つは省略できます。</p>



<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>セルの行番号（1以上の整数）</td></tr><tr><td>列番号</td><td>必須</td><td>セルの列番号（A列=1、B列=2…）</td></tr><tr><td>参照の種類</td><td>省略可</td><td>1〜4で参照形式を指定（後述）</td></tr><tr><td>参照形式</td><td>省略可</td><td>TRUE=A1形式、FALSE=R1C1形式</td></tr><tr><td>シート名</td><td>省略可</td><td>別シート参照時にシート名を文字列で指定</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc7">参照の種類（第3引数）</span></h3>



<p>第3引数で絶対参照・相対参照を切り替えられます。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>行</th><th>列</th><th>結果の例</th></tr></thead><tbody><tr><td>1（既定）</td><td>絶対</td><td>絶対</td><td>$D$3</td></tr><tr><td>2</td><td>絶対</td><td>相対</td><td>D$3</td></tr><tr><td>3</td><td>相対</td><td>絶対</td><td>$D3</td></tr><tr><td>4</td><td>相対</td><td>相対</td><td>D3</td></tr></tbody></table></figure>



<p>省略すると「1」（完全な絶対参照）になります。</p>



<h3 class="wp-block-heading"><span id="toc8">参照形式（第4引数）</span></h3>



<p>TRUEまたは省略でA1形式になります。<br>FALSEを指定するとR1C1形式で返ります。</p>



<figure class="wp-block-table"><table><thead><tr><th>値</th><th>形式</th><th>結果の例</th></tr></thead><tbody><tr><td>TRUE（既定）</td><td>A1形式</td><td>$C$5</td></tr><tr><td>FALSE</td><td>R1C1形式</td><td>R3C4</td></tr></tbody></table></figure>



<p>R1C1形式はVBAやマクロで使われる形式です。<br>通常のワークシートではA1形式を使うため，<br>この引数は省略するケースがほとんどですよ。</p>



<h3 class="wp-block-heading"><span id="toc9">シート名（第5引数）</span></h3>



<p>別シートのセル番地を作りたいときに指定します。</p>



<pre class="wp-block-code"><code>=ADDRESS(3, 4, 1, TRUE, &quot;売上データ&quot;)</code></pre>



<p>この数式は <code>売上データ!$D$3</code> を返します。<br>別ブックを参照する場合は<br><code>"[Book2.xlsx]Sheet1"</code> のように指定してください。</p>



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



<h3 class="wp-block-heading"><span id="toc11">絶対参照でセル番地を取得する</span></h3>



<p>もっとも基本的な使い方を見てみましょう。<br>3行目・4列目（D列）のセル番地を取得します。</p>



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



<p>結果は <code>$D$3</code> です。<br>第3引数を省略すると絶対参照になりますよ。</p>



<h3 class="wp-block-heading"><span id="toc12">相対参照・混合参照に切り替える</span></h3>



<p>第3引数の値を変えるだけで切り替えられます。</p>



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



<p>結果は <code>D3</code>（相対参照）です。<br>混合参照にしたい場合は2または3を指定します。<br>2なら行だけ絶対（D$3）、3なら列だけ絶対（$D3）です。</p>



<h3 class="wp-block-heading"><span id="toc13">別シートのセル番地を生成する</span></h3>



<p>第5引数にシート名を指定すると，<br>シート名つきのセル番地が返ります。</p>



<pre class="wp-block-code"><code>=ADDRESS(1, 1, 1, TRUE, &quot;1月&quot;)</code></pre>



<p>結果は <code>'1月'!$A$1</code> です。<br>月別シートへの参照を動的に作りたいときに便利ですよ。</p>



<h2 class="wp-block-heading"><span id="toc14">ADDRESS関数をINDIRECT関数と組み合わせてセル参照に変換する</span></h2>



<p>ADDRESS関数が返すのは「文字列」です。<br>セルの値を取得するには<br><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>で<br>セル参照に変換する必要があります。</p>



<h3 class="wp-block-heading"><span id="toc15">データフローのイメージ</span></h3>



<p>処理は3ステップで進みます。</p>



<ol class="wp-block-list"><li>ADDRESS関数がセル番地の文字列を生成する</li><li>INDIRECT関数が文字列をセル参照に変換する</li><li>セル参照を通じてセルの値を取得する</li></ol>



<h3 class="wp-block-heading"><span id="toc16">実際の数式</span></h3>



<p>セルA1に行番号「5」、B1に列番号「3」が<br>入っているとしましょう。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(A1, B1))</code></pre>



<p>この数式はC5セルの値を返します。<br>ADDRESS関数が <code>$C$5</code> という文字列を作り，<br>INDIRECT関数がセル参照に変換しています。</p>



<p>A1やB1の値を変えるだけで，<br>参照先が自動的に切り替わりますよ。</p>



<h3 class="wp-block-heading"><span id="toc17">別シートの値を動的に取得する</span></h3>



<p>シート名をセルに入力しておけば，<br>参照先のシートも動的に切り替えられます。<br>セルC1にシート名「1月」が入っている場合です。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(A1, B1, 1, TRUE, C1))</code></pre>



<p>この数式は「1月」シートのC5セルの値を返します。<br>C1を「2月」「3月」と変えるだけで，<br>取得先シートが自動で切り替わります。</p>



<p>シート名を動的に変更できる点が，<br>INDIRECT+ADDRESSの組み合わせの真の強みです。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p><strong>NOTE</strong></p><p>INDIRECT関数は揮発性関数です。<br>ブックを開くたびに再計算されるため，<br>大量に使うとパフォーマンスが低下します。<br>目安として，INDIRECT+ADDRESSの組み合わせは<br>INDEX関数の約5,000倍遅いというデータもあります。<br>数百セル程度なら問題ありませんが，<br>数千セル以上で使う場合は注意してください。</p></blockquote>



<h2 class="wp-block-heading"><span id="toc18">MATCH+ADDRESS+INDIRECTで行を動的に特定する</span></h2>



<p>実務では「検索値から該当行を見つけて値を取得する」<br>というパターンがよく出てきますよね。<br><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>を<br>加えた3関数の組み合わせで実現できます。</p>



<h3 class="wp-block-heading"><span id="toc19">3関数の役割</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>関数</th><th>役割</th></tr></thead><tbody><tr><td>MATCH</td><td>検索値が何行目にあるかを返す</td></tr><tr><td>ADDRESS</td><td>行番号と列番号からセル番地を作る</td></tr><tr><td>INDIRECT</td><td>文字列をセル参照に変換して値を取得する</td></tr></tbody></table></figure>



<h3 class="wp-block-heading"><span id="toc20">月次集計表から当月データを抽出する例</span></h3>



<p>A列に月名（1月〜12月）、B列に売上が<br>入った集計表があるとします。<br>セルD1に「3月」と入力して，<br>対応する売上を取得してみましょう。</p>



<pre class="wp-block-code"><code>=INDIRECT(ADDRESS(MATCH(D1, A:A, 0), 2))</code></pre>



<p>処理の流れは次のとおりです。</p>



<ol class="wp-block-list"><li><code>MATCH(D1, A:A, 0)</code> → A列で「3月」の行番号を取得</li><li><code>ADDRESS(..., 2)</code> → その行の2列目のセル番地を生成</li><li><code>INDIRECT(...)</code> → セル番地から実際の値を取得</li></ol>



<p>D1の値を「4月」「5月」と変えるだけで，<br>取得先が自動的に切り替わります。</p>



<p>ちょっと複雑に見えますが，<br>やっていることは<br>「探す→番地を作る→値を取る」の3ステップです。</p>



<p>ただし，同じシート内ならこの処理は<br><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>と<br>MATCH関数の組み合わせでも実現できます。<br>パフォーマンスを考えると，<br>同一シートではINDEX+MATCHがおすすめですよ。</p>



<h2 class="wp-block-heading"><span id="toc21">ADDRESS関数で列番号をアルファベットに変換する方法</span></h2>



<p>「列番号はわかるけどアルファベットで表示したい」<br>という場面ではSUBSTITUTE関数が活躍します。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1, 5, 4), &quot;1&quot;, &quot;&quot;)</code></pre>



<p>この数式は <code>E</code> を返します。<br>仕組みはシンプルです。</p>



<ol class="wp-block-list"><li><code>ADDRESS(1, 5, 4)</code> → <code>E1</code>（相対参照）を生成</li><li><code>SUBSTITUTE(..., "1", "")</code> → 「1」を除去して列名だけ残す</li></ol>



<p>第1引数を「1」に固定しているのがポイントです。<br>行番号「1」のセル番地を作ることで，<br>SUBSTITUTEで数字部分を確実に除去できます。</p>



<p>2桁以上の列でも対応できます。<br>たとえば列番号28なら <code>AB</code> が返りますよ。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1, 28, 4), &quot;1&quot;, &quot;&quot;)</code></pre>



<p>現在のセルの列名を知りたい場合は，<br><a href="https://mashukabu.com/excel-function-howto-use-column/">COLUMN関数</a>と<br>組み合わせてみてください。</p>



<pre class="wp-block-code"><code>=SUBSTITUTE(ADDRESS(1, COLUMN(), 4), &quot;1&quot;, &quot;&quot;)</code></pre>



<p>列番号のアルファベット変換については<br><a href="https://mashukabu.com/excel-function-howto-get-column-alphabet/">列番号をアルファベットに変換する方法</a>で<br>さらに詳しく解説しています。</p>



<h2 class="wp-block-heading"><span id="toc22">ADDRESS関数とINDEX関数の使い分け</span></h2>



<p>「行番号と列番号から値を取得する」という目的なら，<br><a href="https://mashukabu.com/excel-function-howto-use-index/">INDEX関数</a>でも<br>実現できます。<br>では，どちらを使うべきでしょうか？</p>



<h3 class="wp-block-heading"><span id="toc23">判断基準</span></h3>



<figure class="wp-block-table"><table><thead><tr><th>観点</th><th>INDEX関数</th><th>INDIRECT+ADDRESS</th></tr></thead><tbody><tr><td>処理速度</td><td>高速（約0.001秒）</td><td>低速（約5.2秒）</td></tr><tr><td>別シート動的参照</td><td>不可</td><td>可能</td></tr><tr><td>数式の読みやすさ</td><td>シンプル</td><td>やや複雑</td></tr><tr><td>推奨場面</td><td>同一シート内のデータ取得</td><td>シート名を動的に切り替えたい場合</td></tr></tbody></table></figure>



<p>処理速度には約5,000倍の差があります。<br>同じシート内で値を取得するだけなら，<br>INDEX関数を使うのが正解です。</p>



<p>一方，シート名をセルの値で切り替えたい場合は<br>INDEX関数では対応できません。<br>この場面がINDIRECT+ADDRESSの出番です。</p>



<p>迷ったときの判断はシンプルですよ。<br>「シート名を動的に変えたいか？」がYesなら<br>INDIRECT+ADDRESS、NoならINDEXを選んでください。</p>



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



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



<p>行番号または列番号に問題がある場合に発生します。</p>



<figure class="wp-block-table"><table><thead><tr><th>原因</th><th>対処法</th></tr></thead><tbody><tr><td>行番号・列番号が0以下</td><td>1以上の整数を指定する</td></tr><tr><td>行番号・列番号が数値でない</td><td>文字列が混入していないか確認する</td></tr><tr><td>参照の種類が1〜4以外</td><td>1〜4の整数を指定する</td></tr></tbody></table></figure>



<pre class="wp-block-code"><code>=ADDRESS(0, 3)</code></pre>



<p>この数式は #VALUE! エラーになります。<br>行番号は1以上の整数を指定してくださいね。</p>



<h3 class="wp-block-heading"><span id="toc26">INDIRECT連携時の#REF!エラー</span></h3>



<p>ADDRESS関数自体は正しくても，<br>INDIRECT関数と組み合わせたときに<br>#REF!エラーが出ることがあります。</p>



<p>主な原因は次の2つです。</p>



<ul class="wp-block-list"><li><strong>存在しないシート名を指定している</strong></li></ul>



<p>  シート名のスペルミスや，<br>  削除済みシートの参照が原因です。<br>  シート名を正確に確認してください。</p>



<ul class="wp-block-list"><li><strong>シート名に特殊文字が含まれている</strong></li></ul>



<p>  スペースや記号を含むシート名は，<br>  シングルクォーテーションで囲む必要があります。<br>  ADDRESS関数の第5引数で指定すれば自動で付きます。<br>  ただし手動で文字列結合している場合は<br>  自分で付ける必要があるので注意してくださいね。</p>



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



<p>ADDRESS関数は，行番号と列番号から<br>セル番地の文字列を生成するExcel関数です。</p>



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



<ul class="wp-block-list"><li>ADDRESS関数が返すのは「文字列」であり，セル参照ではない</li><li>値を取得するにはINDIRECT関数との組み合わせが必須</li><li>MATCH+ADDRESS+INDIRECTで検索値から動的にデータを取得できる</li><li>列番号→アルファベット変換にも使える</li><li>同一シート内のデータ取得にはINDEX関数のほうが高速</li><li>INDIRECT+ADDRESSの出番はシート名を動的に切り替えたい場面</li></ul>



<p>ADDRESS関数は単体で使うことはあまりありません。<br><a href="https://mashukabu.com/excel-function-howto-use-indirect/">INDIRECT関数</a>や<br><a href="https://mashukabu.com/excel-function-howto-use-match/">MATCH関数</a>と<br>組み合わせることで真価を発揮します。</p>



<p>まずはINDIRECTとの基本パターンを試してみてください。<br>動的なセル参照の仕組みがわかると，<br>月別集計やシート横断の処理がぐっと楽になりますよ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://mashukabu.com/excel-function-howto-use-address/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
