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

重要:  この記事は機械翻訳されています。機械翻訳についての「免責事項」をお読みください。この記事の英語版を参照するには、ここをクリックしてください。

する 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 * D2Enterキーを押します。

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

テーブル名の変更方法

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

  1. 表ツールの表内の任意のセルを選択 > リボンのデザイン] タブ。

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

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

テーブル名には、次の規則を使用します。

  • 有効な文字を使用します。 文字で名前を常に開始アンダー スコア (_)、またはバック スラッシュ (\)。文字、数字、指定した期間を使用し、[名前の他の文字を強調します。"C", を使うことはできません"c"、"R"、または"r"名のため、既にまたは [ジャンプ] ボックスに入力するときに、アクティブ セルの行または列を選ぶためのショートカットとして指定されていること。

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

  • 単語の区切りにスペースを使わない 名前にスペースを使用できません。単語の区切り文字として、ピリオド (.)、アンダー スコア (_) を使用できます。たとえば、「deptsales」という、Sales_Tax または First.Quarter です。

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

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

  • オブジェクト識別子を使用します。 さまざまなテーブル、ピボット テーブル、グラフにする場合はオブジェクトの種類と、名前を付けることをお勧めします。例: sales テーブル、販売、ピボット テーブルの pt_Sales および chrt_Sales の売上グラフ、または ptchrt_Sales 販売ピボット グラフの tbl_Sales します。これにより、名前の管理の番号付きリスト内のすべての名前がします。

構造化参照の構文規則

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

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

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

  • テーブル名:   「Deptsales」は、ユーザー設定表の名前です。ヘッダーまたは合計行を含まない、テーブルのデータを参照します。Table1 など、既定のテーブル名を使用したり、独自の名前を使用するように変更できます。

  • 列指定子:   [売り上げ高][手数料金額] が表している列の名前を使用する列指定子です。任意の列見出しや合計行せずに、列のデータを参照します。常に示すように、かっこで指定子を囲みます。

  • 項目指定子:   [#Totals][#Data]は、合計行などのテーブルの特定の部分を参照している特殊項目指定子です。

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

  • リファレンスを構造化:   (DeptSales [#Totals]、[Sales Amount]DeptSales [#Data], [Commission Amount]は構造化参照を名前で始まり、テーブルと列指定子で終わる文字列で表されます。

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

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

  • すべての列見出しが文字列    ただし、構造化参照で使う場合、引用符は不要です。 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!!リンクが含まれているリンク先のブック内のエラー。最初に、リンク先のブックを開いた場合と#ref!!される解決し、元のブックを開いた場合、エラーが表示されます。を最初に元のブックを開いた場合はずなしのエラー コードです。

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

  • 列見出しをオフにします。   [テーブルデザイン] タブからのテーブル列見出しのオンとオフを切り替えることができます >ヘッダー行。テーブルの列見出しをオフにすると、影響を受けません列名を使用する構造化参照し、数式で使用することができます。テーブルの見出しを直接参照する参照を構造化 (例: = DeptSales [#Headers], [%commission]) の#ref!が発生します。

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

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

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

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

オートフィルの方向

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

結果

上下

なし

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

上下

Ctrl キー

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

左右

なし

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

上下左右

Shift キー

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

補足説明

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

関連トピック

Excel のテーブルの概要
ビデオ: を作成して、Excel のテーブルの書式を設定する
Excel テーブルのデータを集計
、Excel のテーブルの書式設定

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

注: 機械翻訳についての免責事項: この記事の翻訳はコンピューター システムによって行われており、人間の手は加えられていません。マイクロソフトでは、英語を話さないユーザーがマイクロソフトの製品、サービス、テクノロジに関するコンテンツを理解するのに役立てるため、こうした機械翻訳を提供しています。記事は機械翻訳されているため、用語、構文、文法などに誤りがある場合があります。

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

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

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

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

×