構造化参照を使用して表の見出しから列を作成する

構造化参照を使用して表の見出しから列を作成する

Excel に名前付きテーブル ( ) があります。別の場所に別のテーブル ( ) を作成し、その 1 つの列にテーブルのヘッダーを含めたいDATAと思います。INFO_TABLEDATA

私が求めているのはこれです。つまり、「HEADERS」テーブルには、1 つの数式 (その列の一番上のセル) が入力された列が含まれ、下方向に広がって、最初のテーブルのすべてのヘッダー値が含まれます。どうすればこれを実現できますか?

望ましい出力

{=DATA[#Headers]}私に与えるヘッダーを含みますが、CSE (Mac) を使用する場合は自動入力 (左から右) されません。数式を下にドラッグすると (例A2:A5)、このスクリーンショットに示すように、 の最初の列名のみが表示されますDATA

期待通りの出力ではない

私も試してみました{=TRANSPOSE(DATA[#Headers]))}が、これは機能しません。

(理想的なソリューションには VBA やマクロは含まれません)。

答え1

Power Query を使用できます:

  1. を選択テーブルデータ- に行くデータ-テーブル/範囲から- 開くPower Query エディター: ここに画像の説明を入力してください

  2. パワークエリエディター- 下タブ選択ヘッダーを最初の行として使用する ここに画像の説明を入力してください

  3. へ移動変身タブ選択転置: ここに画像の説明を入力してください

  4. 取り除くnull列と名前を変更列1からヘッダ: ここに画像の説明を入力してください

  5. ホームタブ - 閉じて読み込む...: ここに画像の説明を入力してください ここに画像の説明を入力してください

答え2

残念ながら、SPILL するテーブルに数式を入力することはできません。

ただし、ヘッダー列の最初のセルに次の数式を使用して、必要なだけ下にドラッグすることができます。

=INDEX(Data[#Headers],ROWS($1:1))

下にドラッグすると、ROWS関数は自動的に変更され、配列内の各要素が順番に返されます#Headers

ここに画像の説明を入力してください

答え3

表では、同じアイデアのバリエーションである 2 つのものを許可しません。

  1. SPILL数式 (おそらく、各行の列の数式が繰り返され、各数式がその下の数式を「踏んで」スピル エラーが発生するため)

  2. 同じことをするために古いスタイルの配列を使用する(おそらく同じ理由から)

次の数式を試すことができます。この数式では、SPILL次の行の結果の上に結果が表示されることはありません。

=INDEX(Table1[#Headers],1,ROW()-1)

結果は単一のデータ セルなので、結果が他の行の結果に重複することはありません。テーブル機能を使用して (基本的に) 数式を重複して表示し、必要な結果の列を入力します。

ただし、ソース テーブルの列数と一致する行数のみがサポートされますが、これはおそらく問題にはなりません。

テーブルのサイズを下げて、ソース テーブルのすべての列に十分な行数になるようにしてから数式を入力するか、数式を入力してからテーブルのサイズを下げて結果に合わせます。余分な行は入れませんが、少なすぎることもありません。(テーブルの右下隅のセルの右下にある小さなマーカーを使用して、上下 (必要に応じて左右) にドラッグしてサイズを調整します。不完全な結果になるまで下にドラッグし、最後に正しい結果になるまで上にドラッグします。または、事前にドラッグする場所を決めておきます。または、テーブルの範囲を編集します。方法はたくさんあります。)

関連情報