我有一个表,其标题为ID,利润,费用。这些标题可以按任何顺序排列。我必须定义一种通用方法来获取:
=COUNTA(A2:A)
=SUM(B2:B)
=AVERAGE(C2:C)
我的问题是在我当前的公式中,我对列进行了硬编码,这是一个问题,因为它们可以以任何顺序出现。
我已经设计出一种解决方案,以获取正确的列号。我创建了一个包含1列的设置表-所有可能的列名。然后,我使用以下公式查找正确的列号:
=MATCH(Settings!B2,A1:1,False)
我不知道如何将此列号转换为以下形式的范围: (columnNumber2:columnNumber)。数据始终是1行标题,然后是数据。
请帮助
答案 0 :(得分:0)
=INDIRECT( ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4)&":"&
SUBSTITUTE(ADDRESS(1, MATCH(Settings!B2, A1:1, 0), 4), 1, ))
答案 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, )))