根据列号动态设置范围

Dynamically set range based on column number

我有一个 table,标题为 ID、PROFIT、COST。这些标题可以按任何顺序排列。我必须定义一个通用方法来获取:

我的问题是,在我当前的公式中,我对列进行了硬编码,这是一个问题,因为它们可以按任何顺序出现。

我已经设计了一个关于如何获得正确列号的解决方案。我创建了一个包含 1 列的设置 sheet - 所有可能的列名。然后我使用以下公式查找正确的列号:

=MATCH(Settings!B2,A1:1,False)

我不知道如何将此 COLUMN NUMBER 转移到表格范围: (列号 2:列号)。数据始终是 headers 的 1 行,然后是数据。

请帮忙

=INDIRECT(  ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4)&":"&
 SUBSTITUTE(ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4), 1, ))

=COUNTA(INDIRECT(ADDRESS(1, MATCH("ID", A1:1, 0), 4)&":"&
      SUBSTITUTE(ADDRESS(1, MATCH("ID", A1:1, 0), 4), 1, )))

=SUM(INDIRECT(ADDRESS(1, MATCH("PROFIT", A1:1, 0), 4)&":"&
   SUBSTITUTE(ADDRESS(1, MATCH("PROFIT", A1:1, 0), 4), 1, )))

=AVERAGE(INDIRECT(ADDRESS(1, MATCH("COST", A1:1, 0), 4)&":"&
       SUBSTITUTE(ADDRESS(1, MATCH("COST", A1:1, 0), 4), 1, )))