根据列号动态设置范围

时间:2019-03-29 18:31:08

标签: google-sheets google-sheets-formula

我有一个表,其标题为ID,利润,费用。这些标题可以按任何顺序排列。我必须定义一种通用方法来获取:

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

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

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

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

我不知道如何将此列号转换为以下形式的范围: (columnNumber2:columnNumber)。数据始终是1行标题,然后是数据。

请帮助

2 个答案:

答案 0 :(得分:0)

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

0

答案 1 :(得分: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, )))