Excel:使用多单元格数公式

时间:2017-11-14 18:04:48

标签: excel excel-formula

你可以应用一个带有范围的内置函数(例如AVERAGE()),并将它应用于多个范围吗?

我目前正在完成一个非常基本的数据分析单元,其中包含一个小的Excel细分市场,我之前的任务涉及分析一些住房数据。

一项任务涉及对每个时期的几个城市的住宅价格进行平均和舍入。

目标数据位于工作表Residential_Houses中,格式设置为城市为列,时间段为跨越C7:J30的行。目标是让工作表Analysis中每行的平均值跨越C7:C30

我的简单解决方案是编写公式:

=ROUND(AVERAGE(Residential_Houses!C7:J7), 2)

进入Analysis!C7,然后使用Excel的“自动填充”功能生成Analysis!C8:C30的公式。这工作正常,结果是正确的,但我没有明确使用单元格数组公式丢失标记。

相反,我给出的样本答案是这条单片线:

{=ROUND((Residential_Property!C7:C30+Residential_Property!D7:D30+Residential_Property!E7:E30+Residential_Property!F7:F30+Residential_Property!G7:G30+Residential_Property!H7:H30+Residential_Property!I7:I30+Residential_Property!J7:J30)/8,2)}

似乎很清楚,此代码的目的是为每行7-30采用C-J列的平均值,但它避免使用内置的AVERAGE()。这有效,但它很麻烦,如果此测试数据中有多列,则无法扩展。

我的问题的关键在于你如何将功能与已经在范围上运行,单元格数组公式来处理多个范围用一个公式?

我的直觉告诉我它可能是这样的:

{=AVERAGE((C7:J7):(C30:J30))}

或涉及间接寻址的事情,但我似乎无法找到有关该主题的任何详细信息。到目前为止,我发现的所有数组公式资源都限于基本算术和单维范围。有人能指出我在正确的方向,或者这是不可能的数组公式?

编辑:对于将来偶然发现此事的任何人。我选择了Barry的解决方案,因为它帮助我理解了如何概括这个概念(用一个可以切割范围的函数替换范围)。但正如Scott所说,OFFSET()是不稳定的;因此,如果您正在使用大型数据集,则INDEX()是一种更好的方法。

2 个答案:

答案 0 :(得分:3)

这是一个可以作为一个数组公式输入并获得结果的公式。它也可以正常输入并复制下来。

=ROUND(AVERAGE(INDEX($C$7:$J$30,ROW()-MIN(ROW($C$7:$J$30))+1,0)),2)

enter image description here

答案 1 :(得分:3)

与Scott的建议类似,SUBTOTAL可以处理由OFFSET函数创建的范围数组,因此SUBTOTAL的第一个参数为1(对于{{ 1}})此公式将为每行提供一个舍入平均值数组

AVERAGE

以垂直范围输入,并以 CTRL + SHIFT + ENTER

确认

或者您可以在=ROUND(SUBTOTAL(1,OFFSET(C7:J30,ROW(C7:J30)-ROW(C7),0,1)),2)函数中使用相同的OFFSET,如下所示:

AVERAGE