根据列号动态设置范围
Dynamically set range based on column number
我有一个 table,标题为 ID、PROFIT、COST。这些标题可以按任何顺序排列。我必须定义一个通用方法来获取:
- 所有条目的计数。我目前正在使用
=COUNTA(A2:A)
- 利润总和。我目前正在使用
=SUM(B2:B)
- 平均成本。我目前正在使用
=AVERAGE(C2:C)
我的问题是,在我当前的公式中,我对列进行了硬编码,这是一个问题,因为它们可以按任何顺序出现。
我已经设计了一个关于如何获得正确列号的解决方案。我创建了一个包含 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, )))
我有一个 table,标题为 ID、PROFIT、COST。这些标题可以按任何顺序排列。我必须定义一个通用方法来获取:
- 所有条目的计数。我目前正在使用
=COUNTA(A2:A)
- 利润总和。我目前正在使用
=SUM(B2:B)
- 平均成本。我目前正在使用
=AVERAGE(C2:C)
我的问题是,在我当前的公式中,我对列进行了硬编码,这是一个问题,因为它们可以按任何顺序出现。
我已经设计了一个关于如何获得正确列号的解决方案。我创建了一个包含 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, )))