目次
このチュートリアルでは、Excelの構造体参照の基本を説明し、実際の数式で構造体参照を使用する際のいくつかのコツを紹介します。
Excelの表組みで最も便利な機能の1つが構造化参照です。 表組みを参照するための特別な構文に出会ったばかりのときは、退屈で分かりにくく見えるかもしれませんが、少し試してみると、この機能がいかに便利で格好いいかが分かるはずです。
エクセル構造化リファレンス
A 構造化参照 または テーブルリファレンス は、テーブルとそのパーツを参照するための特別な方法で、セルアドレスの代わりにテーブル名とカラム名を組み合わせて使用します。
Excelの表(範囲)は非常に強力で弾力性があり、通常のセル参照では表へのデータの追加や削除に伴って動的に調整できないため、この特殊な構文が必要になります。
例えば、セルB2:B5の値を合計する場合、通常の範囲参照でSUM関数を使用します。
=SUM(B2:B5)です。
表1の「売上」列の数字を足し算するために、構造化された参照を使用します。
=SUM(Table1[売上])
構造化リファレンスの主な特徴
通常のセル参照と比較して、表参照は多くの高度な機能を備えています。
簡単に作成できる
構造化された参照を数式に追加するには、参照したいテーブルセルを選択するだけです。 特殊な構文の知識は必要ではありません。
弾力性があり、自動的にアップデートされる
列の名前を変更しても、参照は自動的に新しい名前に更新され、数式は壊れません。 さらに、テーブルに新しい行を追加しても、すぐに既存の参照に含まれ、数式はデータの完全なセットを計算します。
そのため、Excelのテーブルでどんな操作をしても、構造化された参照の更新を気にする必要はありません。
テーブルの内側と外側の両方で使用可能
構造化された参照は、Excel の表の内側と外側の両方で数式に使用でき、大きなワークブック内の表を簡単に見つけることができます。
計算式のオートフィル(計算列)
各表行で同じ計算を行うには、1つのセルに計算式を入力するだけでよい。 その列の他のセルはすべて自動的に埋められる。
Excelで構造化された参照を作成する方法
Excelで構造化された参照を作るのは、とても簡単で直感的です。
範囲を扱う場合は、まずExcelの表に変換します。 そのためには、すべてのデータを選択してCtrl + Tキーを押します。 詳しくは、「Excelで表を作成する方法」をご覧ください。
構造化されたリファレンスを作成するには、このようにします。
- 通常通り、等号(=)から数式を入力し始めます。
- 最初の参照では、表の中の該当するセルまたはセル範囲を選択します。 Excelは列名を認識し、適切な構造化参照を自動的に作成します。
- 閉じ括弧を入力し、Enterキーを押します。 表の中に数式を作成した場合、Excelは自動的に列全体を同じ数式で埋めます。
例として、サンプルテーブルの各行で3ヶ月間の売上を集計してみましょう。 売上高 E2に=SUM()と入力し、B2:D2を選択、閉じ括弧を入力し、Enterキーを押します。
その結果、E列全体がこの数式でオートフィルされる。
=SUM(売上高[@[1月]:[3月])
計算式は同じですが、データは各行で個別に計算されます。 内部の仕組みを理解するには、テーブルリファレンスの構文をご覧ください。
数式を入力する場合 表外 という数式があり、その数式はセルの範囲だけを必要としますが、構造化された参照を作るより速い方法は、次のとおりです。
- 最初の文字を入力すると、一致するテーブル名がすべて表示されます。 必要に応じて、さらに数文字入力し、リストを絞り込んでください。
- 矢印キーを使って、リスト内のテーブル名を選択します。
- 選択した名前をダブルクリックするか、Tabキーを押して、数式に追加します。
- 閉じる括弧を入力し、Enterキーを押します。
例えば、サンプルのテーブルの中で最大の数値を求めるには、MAX式を入力し始め、開始括弧の後に「s」を入力し、「S」を選択します。 売上高 テーブルを一覧表示し、Tabキーを押すか、その名前をダブルクリックします。
その結果、このような式になります。
=MAX(売上高)
構造化されたリファレンスシンタックス
すでに述べたように、構造化参照の構文を知らなくても数式に含めることはできますが、各数式が実際に何を行っているかを理解するのに役立ちます。
通常、構造化された参照は、テーブル名で始まり、列指定子で終わる文字列で表現されます。
を合計する次の式を例として分解してみましょう。 南 と ノース という名前のテーブルのカラムがあります。 地域 :
このリファレンスには3つの要素が含まれています。
- テーブル名
- アイテム指定子
- カラム指定子
どのセルが実際に計算されているかを確認するには、数式セルを選択し、数式バーのどこかをクリックします。 Excelは、参照されているテーブルセルを強調表示します。
テーブル名
テーブル名で参照するのは テーブルデータ のようなデフォルトのテーブル名とすることができます。 表1 のようなカスタム名、または 地域 テーブルにカスタム名を付けるには、次の手順を実行します。
数式が参照するテーブルの中にある場合、テーブル名は通常、暗示的なものであるため省略されます。
カラム指定子
列指定子は、ヘッダー行と合計行を除いた対応する列のデータを参照する。 列指定子は、[South]などのように、列名を括弧で囲んで表現される。
複数の連続した列を参照するには、[[South]:[East]]のように範囲演算子を使用します。
アイテム指定子
表の特定の部分を参照するには、以下のいずれかの指定子を使用することができます。
アイテム指定子 | について言及しています。 |
[#All] | テーブルデータ、カラムヘッダ、合計行を含む、テーブル全体。 |
[#データ] | データ列のことです。 |
[#ヘッダー] | ヘッダー列(列のヘッダー)です。 |
[#Totals] | 総行数。 総行数がない場合は null を返す。 |
[カラム名]を | 現在の行、つまり数式と同じ行を指定します。 |
現在の行を除くすべての項目指定では、ポンド記号(#)が使用されることに注意してください。 数式を入力した同じ行のセルを参照するには、Excel では @ 文字の後に列名を付けて使用します。
例えば、数字を足すには 南 と ウエスト の列は、この数式を使用します。
=SUM(地域[南], 地域[西])
カラム名にスペース、句読点、特殊文字が含まれている場合は、カラム名を囲む括弧が追加で表示されます。
=SUM(地域[@[南売上]]、地域[@[西売上]])
構造化参照演算子
以下の演算子を使用すると、異なる指定子を組み合わせて、構造化された参照にさらに柔軟性を持たせることができます。
範囲演算子(コロン)
通常の範囲参照と同様、表中の隣接する2つ以上の列を参照する場合はコロン(:)を使用します。
例えば、以下の式は、以下の間のすべての列の数値を足し算します。 南 と イースト .
=SUM(地域[[南]:[東]])
ユニオン演算子(カンマ)
隣接しない列を参照する場合は、列指定子をカンマで区切る。
例えば、以下のように、データ行の合計が 南 と ウエスト の欄があります。
=SUM(地域[南]、地域[西])
交点演算子(空間)
特定の行と列の交点にあるセルを指すのに使われる。
の交点にある値を返す場合など。 合計 列と ウエスト 欄は、こちらを参考にしてください。
=地域[#合計] 地域[[#全体],[西]]。
この場合、列の指定に合計行が含まれないため、[#All]指定子が必要であることに注意してください。 これがないと、数式は#NULLを返します!
テーブルリファレンス構文規則
手動で構造化参照を編集または作成する場合は、以下のガイドラインに従ってください。
1.指定子を括弧で囲む。
すべての列および特殊項目の指定子は、[角かっこ]で囲む必要があります。
他の指定子を含む指定子は、外括弧で囲む。 例えば、Regions[[South]:[East]]のように。
2.カンマで区切られた内部指定子
指定子が2つ以上の内部指定子を含む場合、それらの内部指定子はカンマで区切る必要がある。
例えば、ヘッダを返すには 南 カラムの場合、[#Headers]と[South]の間にカンマを入力し、この構造全体をさらに括弧で囲みます。
=地域[[#ヘッダー]]、[南]]。
3.コラムヘッダーの周りに引用符を使用しないでください。
表参照の場合、列見出しはテキスト、数値、日付のいずれであっても引用符は不要です。
4.コラムヘッダーの一部の特殊文字にシングルクォーテーションを使用する。
構造化参照では、左右の大括弧、ポンド記号(#)、シングルクォーテーション(')などの一部の文字が特別な意味を持ちます。 上記の文字のいずれかが列ヘッダに含まれる場合、列指定子ではその文字の前にシングルクォーテーションを使用する必要があります。
例えば、列見出し「商品番号」の場合、指定子は[商品'#]である。
5.構造化された参考文献を読みやすくするためにスペースを使用する。
テーブルリファレンスの読みやすさを向上させるために、指定子の間にスペースを挿入することができます。 通常、カンマの後にスペースを使用することは良い習慣とされています。 例えば、以下のようになります。
=AVERAGE(Regions[South], Regions[West], Regions[North])
Excelの表参照 - 数式の例
Excelの構造化された参照についてより深く理解するために、もう少し数式の例を見てみましょう。 ここでは、簡単で有意義かつ有用なものになるように心がけます。
Excelの表の行と列の数を調べる
列と行の合計数を得るには、COLUMNS関数とROWS関数を使用します。これは、テーブル名だけを必要とします。
COLUMNS( テーブル ) ROWS( テーブル )例えば、列の数を求める場合や データの列 という名前のテーブルで 売上高 は、これらの数式を使用してください。
=COLUMNS(売上高)
=ROWS(売上高)
を入れること。 ヘッダー と 総行数 を指定する場合は、[#ALL]指定子を使用してください。
=ROWS(売上高[#All])
以下のスクリーンショットは、すべての数式を表示したものです。
列の空白と非空白を数える
特定の列にあるものを数えるときは、必ずテーブルの外に結果を出力してください。そうしないと、循環参照や間違った結果になってしまう可能性があります。
列の空白を数えるには、COUNTBLANK 関数を使用します。 列の非空白セルを数えるには、COUNTA 関数を使用します。
例えば、細胞の数を調べるには ヤン の列が空で、いくつの列がデータを含んでいるかは、以下の計算式で確認できます。
ブランクがある。
=COUNTBLANK(売上高[1月])
ノンブランク。
=COUNTA(売上高[1月])
の非ブランク細胞のカウントを行う。 みえるれつ の場合、SUBTOTAL 関数を使用し、function_num を 103 に設定します。
=SUBTOTAL(103,売上高[1月])
Excelの表で和をとる
Excel の表で数値を足し算する最も簡単な方法は、「行の合計」オプションを有効にすることです。 これを行うには、表内の任意のセルを右クリックし、「行の合計」オプションを指定します。 テーブル をクリックします。 合計 行 合計行は、テーブルの最後にすぐに表示されます。
Excelでは、最後の列だけを合計したいものと思い込んで、合計行の他のセルが空白になっていることがあります。 これを修正するには、合計行の空のセルを選択して、セルの横に表示される矢印をクリックし、リストの中からSUM関数を選択します。
の値のみを合計するSUBTOTAL式が挿入されます。 みえるれつ フィルタリングされた行は無視されます。
=SUBTOTAL(109,[Jan])です。
この式は、以下の場合にのみ機能しますのでご注意ください。 総列 これを手動でデータ行に挿入しようとすると、循環参照が作成され、結果として0が返されます。 同じ理由で、構造化参照を持つSUM式も動作しません。
つまり、合計が必要な場合 ひょうない のように、Total行を有効にするか、正常範囲の基準を使用する必要があります。
=SUM(B2:B5)です。
テーブルの外 の場合、構造化参照によるSUM式は問題なく動作します。
=SUM(売上高[1月])
SUM関数はSUBTOTALとは異なり、可視・非可視を問わずすべての行の値を足し算することに注意してください。
Excelにおける相対参照と絶対参照の構造化
Excelの構造化参照は、デフォルトで次のように動作します。
- 複数カラム を参考にしてください。 絶対 であり、数式がコピーされても変化しない。
- シングルカラム を参考にしてください。 縁故 また、対応するコマンドやショートカット(Ctrl+C、Ctrl+V)でコピー/ペーストした場合は、変更されません。
相対参照と絶対参照の組み合わせが必要な状況では、数式をコピーしてテーブル参照を正しく保つ方法がありません。 数式をドラッグすると参照が単一列に変わり、ショートカットをコピー/ペーストするとすべての参照が固定されます。 しかし、回避するための簡単なトリックがいくつかあります
単一列に対する絶対的な構造化参照
1つの列の参照を絶対化するには、列名を繰り返して、正式に範囲参照にします。
相対的な列の参照(デフォルト)
table[カラム]の
絶対的な列の参照
テーブル[[カラム]]:[カラム]]。
を絶対参照にすること。 げんだんかい のように、列の識別子の前に@記号を付ける。
テーブル[@[カラム]:[カラム]]です。
テーブルの相対参照と絶対参照が実際にどのように機能するかを見るために、次の例を考えてみてください。
例えば、ある製品の販売数を3ヶ月分集計したいとします。 この場合、あるセル(ここではF2)に対象の製品名を入力し、SUMIF関数を使って、次のような合計を求めます。 ヤン の販売を開始しました。
=SUMIF(売上[項目], $F$2, 売上[1月])
問題は、残りの2ヶ月の合計を計算するために計算式を右にドラッグすると、[項目]の参照が変わってしまい、計算式が壊れてしまうことです。
これを解決するには、[Item]の参照を絶対化し、[Jan]を相対化します。
=SUMIF(売上[[商品]:[商品]], $F$2, 売上[1月])
これで、変更した数式を他の列にドラッグすれば、完全に動作するようになりました。
複数列の相対的な構造化参照
Excelの表では、いくつかの列に対する構造化された参照は、その性質上絶対的であり、他のセルにコピーされても変更されません。
私にとっては、この動作は非常に合理的です。 しかし、構造化された範囲参照を相対化する必要がある場合は、以下のように各列指定の前にテーブル名を付け、外側の角括弧を削除してください。
絶対レンジ基準(デフォルト)
table[[column1]:[column2]]
相対レンジの基準
table[column1]:table[column2]です。
を参照すること。 テーブル内の現在の行 の場合は、@の記号を使用してください。
[コラム1]: [コラム2]。
例えば、以下の式に 絶対構造参照 の現在の行の数字を加算します。 ヤン と 2月 他の列にコピーしても、その列の合計が表示されます。 ヤン と 2月 .
=SUM(売上高[@[1月]:[2月]])
数式がコピーされた列の相対位置によって参照を変更したい場合は、以下のようにします。 縁故 :
=SUM(売上高[@Jan]:売上高[@Feb])
F列の数式変換に注目してください(数式は表内にあるため表名は省略しています)。
以上、Excelでテーブル参照を作成する方法でした。 このチュートリアルで説明した例を詳しく見るには、Excel Structured Referenceへのサンプルワークブックを自由にダウンロードしてください。 読んでいただきありがとうございました!また、来週のブログでお会いしましょう。