使用结构化引用根据表标题创建列

使用结构化引用根据表标题创建列

我在 Excel 中有一个命名表 ( DATA)。我想INFO_TABLE在其他地方创建一个单独的表 ( ),其中有一列包含表中的标题DATA

这就是我想要的——“HEADERS”表包含一列,其中填充了一个公式(在该列的顶部单元格中),向下溢出,包含第一个表中的所有标题值。我该如何实现这一点?

期望输出

{=DATA[#Headers]}给了我一个包含标题,但在使用 CSE(在 Mac 上)时不会自动填充(从左到右)。将公式向下拖动(例如A2:A5)仅提供第一列名称DATA,如以下屏幕截图所示:

不是所需的输出

我也尝试过{=TRANSPOSE(DATA[#Headers]))},但是没有用。

(理想的解决方案不包含 VBA 或宏)。

答案1

您可以使用 Power Query:

  1. 选择表数据- 去数据-来自表/范围- 打开Power Query 编辑器在此处输入图片描述

  2. Power Query 编辑器- 在下面选项卡选择使用标题作为第一行 在此处输入图片描述

  3. 转换选项卡选择转置在此处输入图片描述

  4. 消除null 列和改名第 1 列至标头在此处输入图片描述

  5. 主页选项卡 - 关闭并加载至...: 在此处输入图片描述 在此处输入图片描述

答案2

不幸的是,您无法在 SPILL 的表中输入公式。

但是您可以在标题列的第一个单元格中使用此公式,然后根据需要将其向下拖动:

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

当您向下拖动时,ROWS函数会自动更改以返回#Headers数组中的每个连续元素。

在此处输入图片描述

答案3

表格不允许两个事物是同一想法的变体:

  1. SPILL公式(可能是因为列中每行公式重复,导致每个这样的公式“踩到”它下面的公式,从而导致溢出错误)

  2. 使用旧式数组做同样的事情(大概是出于同样的原因)

您可以尝试以下公式,该公式不会SPILL或不会涉及必须显示在下一行结果之上的结果:

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

其结果是一个单元格的数据,因此结果不会溢出到任何其他行的结果中。它使用表格功能(本质上)溢出公式,因此可以获取所需的填充结果列。

但是,它仅支持与源表中的列数相匹配的行数,但这大概不会成为问题。

要么将表格尺寸向下拉,以便为源表格中的所有列留出足够的行数,然后输入公式,要么输入公式,然后向下拉表格尺寸以适应结果。没有多余的行,但也不能太少!(使用表格右下角单元格右下角的小标记向上/向下拖动(如果需要,也可以向左/向右拖动)以调整其大小。向下拖动直到出现有缺陷的结果,然后向上拖动到最后一个好的结果。或者事先弄清楚要拖动到哪里。或者只是编辑表格的范围。有很多方法。)

相关内容