我有一个包含许多信息的电子表格,我想从某些列中自动提取一些信息,特别是,我想对 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)),"")