A1参照形式とR1C1参照形式

A1参照形式に設定された画面

Microsoft Excel(以下Excel)には、セルの参照形式でA1参照形式とR1C1参照形式の2方式が使用可能です。Excel2003のHELPによれば、

既定では、A1 参照形式が使用されます。この参照形式では、列にアルファベット文字 (A ~ IV の計 256 列)、行に番号 (1 ~ 65536 まで) を使ってセルを参照します。 これらの文字と番号はそれぞれ列見出し、行見出しと呼ばれます。セルを参照するには、列を表す文字に続けて行番号を入力します。 たとえば、B2 は列 B と行 2 が交わる位置にあるセルの参照を表します。

Excel2007では列数行数とも拡張されているので、列は (A ~ XFD の計 16384 列)、行は (1 ~ 1048576 まで)になっています。


R1C1参照形式に設定(MS-Excel2007)

Excel2007でA1参照形式からR1C1参照形式に変更するには以下の手順を行います。

  1. 左上の「Officeボタン」をクリック
  2. 下の「Excelのオプション」ボタンをクリック
  3. 左の一覧から「数式」をクリック
  4. 「数式の処理」の「R1C1参照形式を使用する」にチェックを付ける
  5. 下の「OK」ボタンをクリック

A1参照形式に戻す場合は、「R1C1参照形式を使用する」のチェックを外します。


R1C1参照形式に設定(MS-Excel2003)

Excel2003でA1参照形式からR1C1参照形式に変更するには以下の手順を行います。

  1. メニューの「ツール」→「オプション」をクリック
  2. 「オプション」ペインが開くので「全般」タブをクリック
  3. 「設定」の「R1C1参照形式を使用する」にチェックを付ける
  4. 下の「OK」ボタンをクリック

A1参照形式に戻す場合は、「R1C1参照形式を使用する」のチェックを外します。


R1C1参照形式に設定された画面

R1C1参照形式では、列見出しの表示がアルファベット(A~)が、数字に変化します。それだけではなく、数式中のセルの参照表記も変化します。


絶対参照と相対参照

実際に試して見ましょう。今セルA1~A10までに100から始まって100刻みで数値を入力します。

セルB1に相対参照でセルA1を参照する式「=A1」を入力します。

セルC1に絶対参照でセルA1を参照する式「=$A$1」を入力します。

セルB1:Cを選択し、フィルハンドルを下側にドラッグします。

(D列には、B列に設定した式を式の形で、E列には、C列に設定した式を式の形で表示してあります。)


A1参照形式の時の数式

ドラッグした結果です。分かりやすいようにセルに罫線を引き、列を色分けしています。

相対参照の式は行がずれる毎に行番号が補正されているのに対し、絶対参照の式ではA1固定で変化していません。


R1C1参照形式の時の数式

それでは、R1C1参照形式に変更してみます。相対参照の一つ左を参照する式は「RC[-1]」になりました。 RはRow(行)、CはColumn(列)を表します。[]を付けるとそのセルからの差を表します。R(行)の場合Rだけならそのセルと同じ行、R[-1]なら1行上、R[1]なら1行下を表します。 同様にC(列)の場合は、Cはそのセルと同じ列、C[-1]は1つ左の列、C[1]は一つ右の列を表します。

絶対参照は[]を付けません。R1C1なら第1行第1列、すなわちA1参照形式のセルA1と同じです。


それではなぜこのような2方式があるのでしょうか?

Excelは、現在ではMicrosoft Windows上の主流のスプレッドシート(表計算)のソフトウェアになっていますが、以前はその地位をLotus123が占めていました。Lotus123は、A1参照形式を採用していました。

またマイクロソフトはExcelの前にマルチプランというスプレッドシートソフトウェアを販売していました。マルチプランはR1C1参照形式を採用していたそうです。

ExcelはLotus123とマルチプランの両方のユーザーが違和感なく移行できるように配慮したのだと思います。 自社のマルチプランのR1C1方式ではなくA1参照形式を既定の方式としたのは、営業上の政策と共に、A1参照形式の方が取っつきやすいと思ったのかもしれません。 実際、「二つ左の5つ上のセル」よりも「C32」とそのものずばりで記述した方が、パッと見て分かりやすいと思います。

では常にA1参照形式が良いのかというと、そうでもありません。R1C1参照形式の利点としてまず、列表示が分かりやすいという点が上げられます。

A1参照形式の列見出し表示

A1参照形式のアルファベットも、A~Zくらいまでは数えれば何列あるか分かりますが、AAなどになってくると、今何列目なのかすぐに分からなくなってきます。 特にExcel2007では最大列数が拡張されたので、列数が大きくなればなるほど分からなくなってきます。例えばAAA列というのは実際には何列目でしょうか?


R1C1参照形式の列見出し表示

「えーとAAAは、26×27+1だから703か?」と考えるよりも、R1C1参照形式に変えれば一発でわかります。


もう一つのR1C1参照形式の利点は、セルが変わっても数式が変化しないという点です。どういうことかと言いますと、上の例で言うと、一つ左のセルを参照する数式が、A1参照形式だと、 「=A1」「=A2」...と行が変わると違う式になったのに対し、R1C1参照形式では「=RC[-1]」と同じ式で書けるのです。

相対参照形式のセルの修正はExcelが自動的に行うので、通常のシート操作ではあまり利点とは感じないかもしれません。 しかしシートに式を埋め込んでいくマクロを書く場合は、その都度違う式になるA1参照形式よりもR1C1参照形式で式を書いた方が簡単にマクロを作成することができるのです。

なお、A1参照形式、R1C1参照形式の設定はアプリケーションレベルで行われます。同一ブックのこのシートはA1参照形式で、このシートはR1C1参照形式でといった設定はできません。 また同一プロセスのExcel上に複数のブックを読み込んだ場合、ブック毎に設定分けをすることもできません。

(2007/11/17)


「レジにて半額」Yahoo!出張所に戻る