Excel:使用多单元格数组公式将函数应用于范围 能否应用一个取值范围的内置函数(例如AVERAGE()),并将其应用于多个范围?

Excel:使用多单元格数组公式将函数应用于范围 能否应用一个取值范围的内置函数(例如AVERAGE()),并将其应用于多个范围?,excel,excel-formula,Excel,Excel Formula,我目前正在完成一个相当基础的数据分析单元,其中有一个小的Excel部分,我过去的一项任务是分析一些住房数据 其中一项任务是对每个时间段内几个城市的住宅价格进行平均和四舍五入 目标数据在工作表住宅中,格式为城市为列,时间段为跨越以下内容的行:C7:J30。目标是获得工作表AnalysisspanC7:C30中每一行的平均值 我的简单解决方案是编写公式: =ROUND(AVERAGE(Residential_Houses!C7:J7), 2) 进入分析!C7,然后使用Excel的“自动填充”功能生

我目前正在完成一个相当基础的数据分析单元,其中有一个小的Excel部分,我过去的一项任务是分析一些住房数据

其中一项任务是对每个时间段内几个城市的住宅价格进行平均和四舍五入

目标数据在工作表
住宅
中,格式为城市为列,时间段为跨越以下内容的行:
C7:J30
。目标是获得工作表
Analysis
span
C7:C30
中每一行的平均值

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

=ROUND(AVERAGE(Residential_Houses!C7:J7), 2)
进入
分析!C7,然后使用Excel的“自动填充”功能生成用于分析的公式!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()是一种更好的方法。

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

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

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

=四舍五入(小计(1,抵销(C7:J30,第(C7:J30)行)-第(C7)行,0,1)),2)

在垂直范围内输入,并用CTRL+SHIFT+ENTER确认

或者,您也可以在
平均值
函数中使用相同的
偏移量
,如下所示:

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

=ROUND(平均值(偏移量(C7:J30,第(C7:J30)行)-第(C7)行,0,1)),2)

嘿,杰西:这是什么课程?我很想知道他们还报道了什么。个人兴趣……与你的问题没有直接关系。@杰弗里威尔,该单位是CITS2401——西澳大利亚大学的计算机分析和可视化。它主要专注于MATLAB,老实说,我认为这是一个相当糟糕的单元。它的目标是没有编程经验的二级工程专业的学生,所以它非常简单。对于一个计算机科学/数据科学专业的学生来说,这有点令人失望。这是一个非常有用的答案,但我选择了巴里的答案,因为它更具可读性和明确性。谢谢@JesseWyatt只是想让你们知道偏移量是易变的,这就是为什么我建议指数不是易变的。哦,这太令人惊讶了。谢谢你的提醒,我想如果有任何事情,该指数也会波动。我会多读一点,也许会改回来。@JesseWyatt看这里:谢谢你。这真的帮助我理解了我需要做什么来概括它。我缺少的关键一点是,我需要一个函数,可以从更大的范围中“切片”单个范围,即:OFFSET()或INDEX()。该切片函数将是在适当的数组公式中使用时产生多个范围的部分,然后范围消耗函数(在本例中为AVERAGE())可以正常地对这些范围进行操作。