Googleスプレッドシートの使い方について、このブログ記事の中でも何回か扱ってきました。
基本的に Microsoft Excelと同様に使えるので、Excelとの違う部分にスポットを当ててご紹介してきました。
今回は、これら表計算アプリを扱う上でもっとも大事な知識のひとつ「セル参照」について取り上げてみます。
大半は、Excelと同様なので“おさらい”としてお読みいただけますが、Googleスプレッドシート特有の部分も出てきます。

まず「セル参照」というと、相対参照・絶対参照が思い起こされますね。

例えば、GoogleスプレッドシートでセルA1に数値が入力されていて、それをセルC3から参照するには「=A1」と入力します。(下図)

 

数式中でセル番地をこのように列番号Aと行番号1を組み合わせて参照する、これが相対参照と呼ばれる参照形式です。

それでは、セルC3をセルC5にコピーしてみます。
すると、セルC5は「=A3」となり、セルA3は何も入力されていないので、セルC5も何も表示されません。(下図)

 

セルC5が「=A1」とはならず「=A3」となったことが相対参照である所以なのです。

相対参照の「相対」とは、参照元のセルと参照先のセルの相対的な位置を表わしている形式ということです。
最初の図では、参照元セルC3から見ると参照先セルA1は、左に 2つ、上に 2つ移動したところという意味です。
なので、その次の図でセルC3をセルC5にコピーしましたが、セルC5にも同じ参照ルールが適用され、参照元セルC5から見て 左に 2つ、上に 2つ移動したところ、つまりセルA3が参照先セルということになります。

それでは、セルC3の数式を編集します。
「=A1」であったところを、「A1」の直前でも真ん中でも直後でもよいので文字カーソルを入れて [F4]キーを 1回押します。
「=$A$1」と変わったと思います。
このように、列番号と行番号の両方に「$」が付いた形式を絶対参照と呼びます。

セルC3をセルC5にコピーすると、セルC5も「=$A$1」となり、結果的に参照先セルA1の値がセルC5にも表示されます。(下図)

 

絶対参照は、相対参照のように参照元セルと参照先セルの相対的な位置で参照するのではなく、表現されたセル番地でそのまま参照するので、参照元セルの場所に関わらず「$A$1」は A列1行 のセルを参照します。

ちなみに、「$」はいずれか一方だけに付けることもでき、これを複合参照と呼びます。
数式中のセル番地に文字カーソルを入れ、[F4]キーを押すと「A1」→「$A$1」→「A$1」→「$A1」→「A1」と順にセル参照形式が変わります。

次に、他のシートのセルを参照してみます。
現在のシートとは別に「会員名簿」シートには下図のようなデータが入力されているとします。

 

現在のシートのセルA1から「会員名簿」シートのセルA2を参照するには、現在のシートのセルA1に「='会員名簿'!A2」と入力します。
すべてを手入力しなくとも、セルA1で「=」と入力、続けて「会員名簿」シート見出しをクリック、「会員名簿」シートのセルA2をクリックして「Enter」キーを押せばよろしいです。
こうして、現在のシートのセルA1には参照先のデータが表示されます。(下図)

 

参照先のシート名が「Sheet1」のように英数字だけなら「=Sheet1!A2」でよろしいですが、スペースや英数字以外の文字または記号が含まれているときは「='会員名簿'!A2」のようにシート名を引用符で囲みます。

それでは、参照先のセルが他のスプレッドシートにある場合はどうでしょう。
Googleスプレッドシートには「IMPORTRANGE」という関数が用意されています。
IMPORTRANGE関数の書式は次のようになります:
  IMPORTRANGE(スプレッドシートの URL, 範囲の文字列)

IMPORTRANGE関数の詳しい説明は、Googleのヘルプページ「IMPORTRANGE」をご参照いただきますが、ここでは簡単な使用例だけ示します。

参照先のスプレッドシートを開き、画面最上部の URLをコピーしておきます。
また、参照するセル番地(ここでは C6 とします)も覚えておきます。(下図)

 

参照する側のシートのセルA1に IMPORTRANGE関数を入力します。
第1引数には先の URLをダブルクォーテーションで囲って入力します。
例えば、URL が
  https://docs.google.com/spreadsheets/d/1BSmFdjSC‥‥6DpA/edit#gid=347951648
であるなら、第1引数に次のように入力します:
  "https://docs.google.com/spreadsheets/d/1BSmFdjSC‥‥6DpA/edit#gid=347951648"
第2引数は参照先のシート名と「!」とセル番地を、ダブルクォーテーションで囲って入力します。
今回の場合、「"Sheet1!C6"」とします。
これで、参照元セルA1には「3000」と表示されます。

なお、上記 URLのうち実質的に「1BSmFdjSC‥‥6DpA」の部分がこのスプレッドシートを表していますので、短縮して
  =IMPORTRANGE("1BSmFdjSC‥‥6DpA","Sheet1!C6")
としてもよろしいです。

Googleスプレッドシートは、新たにシートを作成した時点で一意の URLが付与され、そのスプレッドシートを別のフォルダに移動しても URLは変わりません。