从变量表中提取值

从变量表中提取值

我有一个包含许多信息的电子表格,我想从某些列中自动提取一些信息,特别是,我想对 10 列或更多列中的 3 列进行摘要(每次列都不在同一位置,目前它们是 B、G 和 k 列,但下一次可能是 B、G 和 L 列):

我知道如何获取我想要提取的列号,我如何告诉 Excel 从每个列中提取数据?并根据其中一列的值对它们进行过滤?公式还是宏更好?

谢谢!

答案1

如果你MS365您可以尝试使用FILTER()CHOOSECOLS()&XMATCH()函数。

在此处输入图片描述


• 单元格中使用的公式L69

=CHOOSECOLS(FILTER(Table1,Table1[D]="Extract"),XMATCH(L68:O68,Table1[#Headers]))

在此处输入图片描述


笔记:

  • 根据您的需要相应地更改单元格引用和范围。
  • FILTER()函数用于从中提取数据Table1标准仅包括Extract
  • 您需要使用与摘要输出中的屏幕截图中所示的相同的标题,以便返回结果数据所需的列。
  • XMATCH()函数占用摘要中的标题作为查找值以及Table1作为查找数组返回值的相对位置。
  • 使用上述方法,Column Number Reference CHOOSECOLS()返回使用以下方法返回的数组的列FILTER()
  • 此外,如果您知道列号引用并且不希望上述解决方案是动态的,那么您也可以执行以下操作。

=CHOOSECOLS(FILTER(Table1,Table1[D]="Extract"),1,2,13,17)

但是,如果你不使用MS365然后您可以INDEX()AGGREGATE()函数与MATCH()函数一起使用,其功能与上述方法完全相同。

在此处输入图片描述


=IFERROR(INDEX(Table1,AGGREGATE(15,6,(ROW(Table1[D])-ROW($O$9)+1)/
  (Table1[D]="Extract"),ROWS(L$68:L68)),MATCH(L$68,Table1[#Headers],0)),"")

相关内容