如何在Excel中的动态范围内执行Aggregate和Max函数

时间:2018-10-18 12:44:58

标签: excel vba excel-vba excel-formula

我有一个下表列出。我需要在这里找到2个项目。

  1. 最大乘客人数
  2. 最大的乘客+座位数

enter image description here

为实现这一目标,我在下面编写了公式。另外请注意,我是从工作表名称“计算”获得此结果的。数据在总线表中

对于第一种情况,公式如下

Max('Bus'!C7:'Bus'!C8)

第二种情况

Aggregate(14,6,'Bus'!B7:'Bus'!B8+'Bus'!C7:'Bus'!C8,1)

因此,我的问题是此总线表是动态的。它有时会或多或少地增长。因此,如何使这些公式具有动态性。请告知

2 个答案:

答案 0 :(得分:2)

这是针对=Max()选项的

=MAX(C7:C1048576)

只需按 Ctrl 向下箭头,即可使用最后一个单元格。

如果您正在处理Bus工作表,则完全不需要在公式=Max('Bus'!C7:'Bus'!C8)中引用=Max(C7:C8)Bus没问题。在任何其他工作表上,=MAX('Bus'!C7:C8)就足够了。

答案 1 :(得分:1)

尝试

=Max('Bus'!C7:index('Bus'!C:C, match(1e99, 'Bus'!C:C)))
=Aggregate(14, 6, 'Bus'!B7:index('Bus'!B:B, match(1e99, 'Bus'!B:B))+
                  'Bus'!C7:index('Bus'!C:C, match(1e99, 'Bus'!B:B))

您自己的聚合函数有点混乱,因为B列转到第8行,而C列仅转到第7行。