Excel テーブルでの構造化参照の使い方

注: 最新のヘルプ コンテンツをできるだけ早く、お客様がお使いの言語で提供したいと考えております。このページは、自動翻訳によって翻訳されているため、文章校正のエラーや不正確な情報が含まれている可能性があります。私たちの目的は、このコンテンツがお客様の役に立つようにすることです。お客様にとって役立つ情報であったかどうかを、このページの下部でお知らせください。簡単に参照できるように、こちらに英語の記事があります。

excel のテーブルを作成すると、テーブルに名前が割り当てられます。Excel のテーブルに数式を追加すると、それらの名前は、数式を入力したときに自動的に表示され、手動で入力するのではなく、テーブル内のセル参照を選択することができます。Excel の動作の例を次に示します。

明示的にセル参照を使用せずに

テーブルや列の名前を使用する

=Sum(C2:C7)

=SUM(DeptSales[Sales Amount])

テーブル名と列名の組み合わせは構造化参照と呼ばれ、テーブルにデータを追加したりテーブルからデータを削除したりすると、構造化参照の名前が変化します。

構造化参照は、Excel テーブルの外にテーブルのデータを作成する数式を作成した場合も表示されます。構造化参照により、膨大な情報量のブック内のテーブルを簡単に見つけることができます。

構造化参照を数式に含める場合は、セル参照を数式に入力する代わりに、参照するテーブル セルをクリックします。 以下の例のデータを利用して、自動的に構造化参照を使って、販売手数料の金額を計算する数式を入力してみましょう。

売上高

地域

売上金額

手数料 (%)

手数料金額

内田

北部

260

10%

松本

南部

660

15%

金子

東部

940

15%

岡本

西部

410

12%

村上

北部

800

15%

原田

南部

900

15%

  1. 列見出しを含む上の表のサンプルデータをコピーし、新しい Excel ワークシートのセル A1 に貼り付けます。

  2. テーブルを作成するには、データ範囲内の任意のセルを選択して、ctrl キーを押しながらTをクリックします。

  3. [マイテーブルにヘッダーがある] チェックボックスがオンになっていることを確認し、[ OK] をクリックします。

  4. セル E2 に等号 (=) を入力して、セル C2 をクリックします。

    数式バーで、等号の後に構造化参照 [@[Sales Amount]] が表示されます。

  5. 閉じかっこの直後にアスタリスク (*) を入力し、[セル D2] をクリックします。

    数式バーで、アスタリスクの後に構造化参照 [@[手数料 (%)]] が表示されます。

  6. Enter キーを押します。

    Excel では、計算列が自動的に作成され、列全体に数式がコピーされ、行ごとに値が調整されます。

明示的にセル参照を使用した場合

集計列に明示的にセル参照を入力した場合、数式による計算内容の確認が難しくなる可能性があります。

  1. サンプルワークシートでセル E2 をクリックします。

  2. 数式バーに「 = C2 * D2 」と入力し、enter キーを押します。

数式が列にコピーされている間、構造化参照は使用されませんので注意してください。たとえば、既存の列の C 列と D 列の間に列を追加する場合は、数式を修正する必要があります。

テーブル名の変更方法

Excel テーブルを作成すると、既定のテーブル名 (テーブル 1、テーブル 2 など) が付けられますが、わかりやすいテーブル名に変更できます。

  1. 表内の任意のセルを選択して、リボンの [表ツール> のデザイン] タブを表示します。

  2. [テーブル名] ボックスに必要な名前を入力し、 enter キーを押します。

サンプル データでは、「DeptSales」という名前を使っています。

次のルールに従ってテーブル名を付けます。

  • 有効な文字を使用する 常に、文字、アンダースコア (_)、またはバックスラッシュ (\) を使用して名前を開始します。名前の残りの文字、数値、ピリオド、アンダースコア文字を使用します。名前または [移動] ボックスに入力したときに、アクティブセルの列または行を選択するためのショートカットとして指定されているため、"c"、"c"、" r"、または "r" を使用することはできません。

  • セル参照を使わない 名前は、Z $ 100 や R1C1 など、セル参照と同じにすることはできません。

  • 単語を区切るためのスペースを使わない 名前にスペースを使用することはできません。アンダースコア (_) とピリオド (.) は、単語の区切り文字として使用できます。たとえば、DeptSales、Sales_Tax、第1四半期などです。

  • 255 文字以内で指定する テーブル名は、255 文字以内で指定します。

  • テーブル名を一意にする 名前を重複させることはできません。 Excel では、名前で大文字と小文字が区別されません。したがって、「SALES」という名前が既に存在していて、同じブックに「Sales」という名前を入力しようとすると、一意の名前を選ぶように求めるメッセージが表示されます。

  • オブジェクト識別子を使用する 表、ピボットテーブル、グラフを混在させることを計画している場合は、オブジェクトの種類に名前を付けることをお勧めします。例: sales テーブルの場合は tbl_Sales、売上ピボットテーブルの場合は pt_Sales、売上グラフの場合は chrt_Sales、売上ピボットグラフの場合は ptchrt_Sales を選びます。これにより、名前マネージャーで、すべての名前が順序付きリストに保持されます。

構造化参照の構文規則

数式で構造化参照を手動で入力または変更することもできますが、構造化参照構文を理解するのに役立ちます。次の数式の例を見てみましょう。

=SUM(DeptSales[[#Totals],[Sales Amount]],DeptSales[[#Data],[Commission Amount]])

この数式には、以下の構造化参照コンポーネントが含まれています。

  • テーブル名:   DeptSalesは、カスタムテーブル名です。ヘッダーまたは集計行を含まないテーブルデータを参照します。テーブル1などの既定の名前を使用することも、カスタム名を使用するように変更することもできます。

  • 列指定子:   [売上額][手数料の金額] は、列の名前を使用しています。列見出しまたは集計行を使わずに、列のデータを参照します。示されているように、必ず指定子を角かっこで囲みます。

  • 項目指定子:   [#Totals][#Data]は、テーブルの特定の部分 (集計行など) を参照する特別な項目指定子です。

  • テーブル指定子:   [[#Totals],[Sales Amount]] や [[#Data],[Commission Amount]] は、構造化参照の外側の部分を示すテーブル指定子です。 テーブル名の後に外部参照が続き、外部参照を角かっこで囲みます。

  • 構造化参照:   (DeptSales [[#Totals]、[売上金額] ]、 DeptSales [[#Data]、[コミッション金額] ] は、テーブル名で始まり、列指定子で終わる文字列によって表される、構造化された参照です。

構造化参照を手動で作成または編集するには、これらの構文規則を使います。

  • 指定子の周囲にかっこを使用する   すべてのテーブル、列、および特殊項目指定子を、一致する角かっこ ([]) で囲む必要があります。他の指定子を含む指定子には、他の指定子の内側の一致するかっこを囲むために、外側に一致するかっこが必要です。例: = DeptSales [[営業担当者]: [地域] ]

  • すべての列見出しが文字列    ただし、構造化参照で使う場合、引用符は不要です。 2014 または 2014/1/1 など、数字や日付もテキスト文字列と見なされます。 列見出しを含む式は使えません。 たとえば、式 DeptSalesFYSummary[[2014]:[2012]] は機能しません。

特殊文字を含む列見出しは角かっこで囲む   特殊文字がある場合、列見出し全体を角かっこで囲む必要があります。つまり、列指定子の場合は、2 重の角かっこが必要になります。例: =DeptSalesFYSummary[[Total $ Amount]]

数式で追加の角かっこが必要になる特殊文字は次のとおりです。

  • タブ

  • 改行

  • 復帰

  • コンマ (,)

  • コロン (:)

  • ピリオド (.)

  • 左大かっこ ([)

  • 右大かっこ (])

  • シャープ記号 (#)

  • 単一引用符 (')

  • 二重引用符 (")

  • 左中かっこ ({)

  • 右中かっこ (})

  • ドル記号 ($)

  • キャレット (^)

  • アンパサンド (&)

  • アスタリスク (*)

  • 正符号 (+)

  • 等号 (=)

  • 負符号 (-)

  • 大なり記号 (>)

  • 小なり記号 (<)

  • 除算記号 (/)

  • 列見出しでは一部の特殊文字にエスケープ文字を使う    一部の文字には特別な意味があるため、エスケープ文字として単一引用符 (') を使う必要があります。 例: =DeptSalesFYSummary['#OfItems]

数式でエスケープ文字 (') が必要になる特殊文字は次のとおりです。

  • 左大かっこ ([)

  • 右大かっこ (])

  • シャープ記号 (#)

  • 単一引用符 (')

構造化参照を読みやすくするために空白文字を使う   空白文字を使って、構造化参照を読みやすくすることができます。例: =DeptSales[ [Sales Person]:[Region] ] または =DeptSales[[#Headers], [#Data], [% Commission]]

次の場所にはスペースを 1 つ入力することをお勧めします。

  • 最初の左角かっこ ([) の後

  • 最後の右角かっこ (]) の前

  • コンマの後

参照演算子

セル範囲をさらに柔軟に指定するために、次の参照演算子を使って列指定子を組み合わせることができます。

構造化参照の例

参照先

使用する演算子

参照されるセル範囲

=DeptSales[[Sales Person]:[Region]]

隣接する複数の列に含まれるすべてのセル

: (コロン) 範囲演算子

A2:B7

=DeptSales[Sales Amount],DeptSales[Commission Amount]

複数の列に含まれるすべてのセル

, (カンマ) 論理和演算子

C2:C7, E2:E7

=DeptSales[[Sales Person]:[Sales Amount]] DeptSales[[Region]:[% Commission]]

複数の列の共通部分

(空白) 論理積演算子

B2:C7

特殊項目指定子

合計行のみなど、テーブルの特定の部分を参照するには、構造化参照で次の特殊項目指定子を使います。

特殊項目指定子の例

参照先

#All

列見出し、データ、および合計を含む、テーブル全体

#Data

データ行のみ

#Headers

見出し行のみ

#Totals

合計行のみ。何もない場合は、Null を返します。

#This Row

または

@

または

@[Column Name]

数式と同じ行のセルのみ。 これらの指定子は、他の特殊項目指定子と組み合わせることはできません。 参照に対して強制的に暗黙の論理積演算を行う場合、または暗黙の論理積演算の結果を使わず、ある列の単一の値を参照する場合に使います。

Excel では、1 つ以上の行データが含まれたテーブルの #This Row 指定子は省略形の @ 指定子に自動的に変更されます。 ただし、行が 1 行しかないテーブルの場合、Excel では #This Row 指定子が変換されないため、行を追加すると、予期しない計算結果が生まれる可能性があります。 このような計算の問題を避けるには、構造化参照の数式を入力する前に、複数の行をテーブルに入力してください。

集計列における構造化参照の修飾

集計列を作成する場合、一般に構造化参照を使って数式を作成します。この構造化参照は、非修飾でも、完全修飾でも使えます。たとえば、Commission Amount という集計列を作成して手数料の金額を計算する場合、次の数式を使えます。

構造化参照の種類

使用例

コメント

非修飾

=[Sales Amount]*[% Commission]

現在の行で対応する 2 つの列の値を乗算します。

完全修飾

=DeptSales[Sales Amount]*DeptSales[% Commission]

各行について、対応する 2 つの列の値を乗算します。

一般的な規則: 集計列を作成する際など、テーブル内で使う場合は非修飾の構造化参照を使うことができますが、テーブル外で使う場合は完全修飾の構造化参照を使う必要があります。

構造化参照の使用例

次に構造化参照の使用方法をいくつか示します。

構造化参照の例

参照先

参照されるセル範囲

=DeptSales[[#All],[Sales Amount]]

売上金額列のすべてのセル

C1:C8

=DeptSales[[#Headers],[% Commission]]

手数料 (%) 列の見出し

D1

=DeptSales[[#Totals],[Region]]

Region 列の合計。集計行がない場合は、Null を返します。

B8

=DeptSales[[#All],[Sales Amount]:[% Commission]]

売上金額列と手数料 (%) 列のすべてのセル

C1:D8

=DeptSales[[#Data],[% Commission]:[Commission Amount]]

手数料 (%) 列と手数料金額列のデータのみ

D2:E7

=DeptSales[[#Headers],[Region]:[Commission Amount]]

地域列から手数料金額列までの列見出しのみ

B1:E1

=DeptSales[[#Totals],[Sales Amount]:[Commission Amount]]

売上金額列から手数料金額列までの合計。集計行がない場合は、Null を返します。

C8:E8

=DeptSales[[#Headers],[#Data],[% Commission]]

手数料 (%) 列の見出しとデータのみ

D1:D7

=DeptSales[[#This Row], [Commission Amount]]

または

=DeptSales[@Commission Amount]

現在の行と手数料金額列の交点にあるセル。ヘッダーまたは集計行と同じ行で使用すると、 #VALUE!エラーが返されます。

複数の行データが含まれたテーブルで、この構造化参照 (#This Row) を長い形式で入力すると、Excel では省略形 (@) に自動的に変換されます。 どちらも動作は同じです。

E5 (現在の行が 5 の場合)

構造化参照を活用するヒント

構造化参照を活用する際には、次の点を考慮してください。

  • 数式オートコンプリートを使用する    構造化参照を入力する際に正しい構文を確実に使うためには、数式オートコンプリートを使うととても便利です。詳しくは、「数式オートコンプリートを使用する」をご覧ください。

  • 半選択でテーブルの構造化参照を生成するかどうかを決定する   既定では、数式を作成するときに、テーブル内のセル範囲をクリックすると、そのセルが選択され、数式内のセル範囲ではなく、自動的に構造化参照が入ります。この半選択の動作により、構造化参照をより簡単に入力できます。この動作を有効または無効にするには、[ファイル> のオプション] の [数式でテーブル名を使用する] チェックボックスをオンまたはオフにします。 > の数式 > の操作

  • ブックを他のブックの Excel テーブルに外部リンクと共に使用   するブックに他のブックの excel テーブルへの外部リンクが含まれている場合は、リンク元のブックが excel で開かれている必要があります先のブックを最初に開いて#REF!エラーが表示された場合は、元のブックを開くと解決されます。最初にソースブックを開くと、エラーコードは表示されません。

  • 範囲からテーブル、テーブルから範囲へ変換する    テーブルを範囲に変換すると、すべてのセル参照は同等の A1 スタイルの絶対参照に変更されます。一方、範囲をテーブルに変換しても、この範囲のセル参照は同等の構造化参照に自動では変更されません。

  • 列見出しをオフ   にするテーブルの列見出しをオンまたはオフに切り替えるには、[テーブルデザイン] タブの [>ヘッダー行] を使用します。テーブルの列見出しをオフにすると、列名を使用する構造化参照は影響を受けず、数式で使用することができます。テーブルの見出しを直接参照する構造化参照 (例: = DeptSales [[#Headers]、[% 歩合]])) は、 #REFになります。

  • テーブルに列と行を追加または削除する   テーブルのデータ範囲は変更されることが多いため、構造化参照のセル参照は自動的に調整されます。たとえば、数式でテーブル名を使用してテーブル内のすべてのデータセルをカウントし、データの行を追加すると、セル参照が自動的に調整されます。

  • テーブル名または列名を変更する   テーブル名や列名を変更すると、ブック内で使用されているすべての構造化参照で、テーブルや列見出しの部分が自動的に変更されます。

  • 構造化参照を移動、コピー、オートフィルする    構造化参照を使う数式をコピーまたは移動すると、すべての構造化参照は同じままになります。

    注: 構造化参照をコピーすることと、構造化参照のオートフィルを実行することは、同じではありません。数式をコピーすると、すべての構造化参照は同じままになりますが、数式のオートフィルを実行すると、完全修飾された構造化参照によって、列指定子は次の表にある連続したデータのように調整されます。

オートフィルの方向

オートフィルによる入力で使用するキー

結果

上下

なし

列指定子は調整されません。

上下

Ctrl キー

列指定子は連続データとして調整されます。

左右

なし

列指定子は連続データとして調整されます。

上下左右

Shift キー

現在のセルの値を上書きせずに、セルの値を移動して列指定子を挿入します。

補足説明

Excel Tech Community では、いつでも専門家に質問できます。Microsoft コミュニティでは、サポートを受けられます。また、Excel User Voice では、新機能についての提案や改善案を送信することができます。

関連トピック

excel のテーブル
の概要ビデオ: excel のテーブル
作成して書式を設定
する excel テーブル
のデータの合計行と列を追加または削除してテーブルのサイズを変更

範囲またはテーブル内のデータをフィルター処理して、テーブルを
範囲に変換するexcel テーブルの互換性の問題
excel のテーブルを SharePoint
の数式の概要にエクスポートするExcel

Office のスキルを磨く
トレーニングの探索
新機能を最初に入手
Office Insider に参加する

この情報は役に立ちましたか?

ご意見をいただきありがとうございます。

フィードバックをお寄せいただき、ありがとうございます。Office サポートの担当者におつなぎいたします。

×