Excel:如何根据动态列标题名称列出该列中的所有值?

Excel:如何根据动态列标题名称列出该列中的所有值?

这是我的情况,“创意指导”表是我提供给客户的模板。当它返回给我时,他们在我的列之间添加了额外的列。当它充满数据时,清理需要很长时间。

我想创建另一个工作表,它将排列原始列(没有额外的列)。并列出该列下方的所有单元格值。

我的想法是,我需要从“Creative Media Plan”中的“Sheet4”查找列名。因此,无论该列名位于“Creative Media Plan”工作表中的什么位置。它会被找到,然后它会列出“Sheet4”中该列的所有单元格值。我希望这是有意义的。

这是新链接。您可以下载为 Excel 文件:https://docs.google.com/spreadsheets/d/1xTQ0Unewvn-iq-OuP-62jyCkP-xsbZORMA4cQxdLW48/edit?usp=sharing

下面是我的示例工作簿

主表

答案1

使用 Excel O365 非常简单。

让我们做出以下假设,以确保下面的公式没有歧义:

  1. 客户提供的表格中的列标题位于第 6 行,从 A6 开始。因此,我想要检索的有用数据从每列的第 7 行开始。
  2. 结果表(Sheet4)中的列标题也位于第 6 行,并且也从 A6 开始。
  3. 为了便于说明,我们假设有 100 行数据,从第 7 行到第 106 行。
  4. 为了简单起见,我们还假设客户添加了“几”列,但没有添加“很多”列,所以我们将包含我们的查找,比如说,52 列,从 A 到 AZ。

在 A7 中目的地工作表(Sheet4)中,您需要在 A6 中的列标题名称下方输入此公式:

=FILTER('Creative Direction | Media Plan'!$A7:$AZ106),'Creative Direction | Media Plan'!$A6:$AZ6=A7,"Col Missing")

这句话的意思是“如果‘创意方向 | 媒体计划’中的列标题与本地工作表 A7 中的列标题相匹配,则只需提供整个列即可。如果没有找到任何列,则意味着客户删除了该列,或者他们有意或无意地编辑了名称,因此只需将该列列为缺失即可。”

然后将其复制到 17 列。由于您要复制到右侧,因此,客户提供的表格上的范围必须锁定为 $A 到 $AZ,并且本地 A7 引用必须为不是已锁定。

这就是 O365 动态数组的美妙之处,像 FILTER 这样的功能确实是游戏规则的改变者。

相关内容