根据列号动态设置范围

问题描述 投票:0回答:2

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

  • 所有条目的数量。我目前正在使用=COUNTA(A2:A)
  • 利润总和。我目前正在使用=SUM(B2:B)
  • 平均成本。我目前正在使用=AVERAGE(C2:C)

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

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

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

我不知道如何将此COLUMN NUMBER转移到表单范围:(columnNumber2:columnNumber)。数据始终是1行标题,然后是数据。

请帮忙

google-sheets google-sheets-formula
2个回答
0
投票
=INDIRECT(  ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4)&":"&
 SUBSTITUTE(ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4), 1, ))

0


0
投票
=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, )))
© www.soinside.com 2019 - 2024. All rights reserved.