与聚合函数的偏移

时间:2018-11-10 03:39:08

标签: excel excel-formula

我需要从“聚合”公式向左偏移1列。当前,如果满足条件,该公式将返回第K个最小值。

=AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=$G$9),ROW(1:1))

基本上,如果满足条件,它将除以1,从而得出Aggregate的原始值。我想从1列中获取值,但是我不确定该怎么做。

只需使用:

=OFFSET(AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=$G$9),ROW(1:1)),0,-1)

不起作用。

1 个答案:

答案 0 :(得分:1)

偏移量作用于范围,而不是功能。您需要将OFFSET包裹在聚合函数的范围参数周围。

从您的问题中不清楚您要偏移一列的范围。将参数generateScopedName偏移一列的示例是

$G$9

请注意,偏移量如何应用于范围,而不是功能。

但是,如果对G9使用相对单元格引用,则只需将公式复制到左侧的一个单元格中即可获得相同的结果。

例如,如果此公式位于单元格Z1中...

=AGGREGATE(15,6,$B$2:$C$1000/($A$2:$A$1000=offset($G$9,0,-1)),ROW(1:1))

(请注意,对G9的引用没有$符号,因此是相对的,因此在将公式复制到其他单元格时它会更改)

...如果将公式复制到单元格Y1,则可以得到带有Offset的更改结果。

使用此技术的辅助单元将比使用OFFSET快得多,因为OFFSET易失,并且每当更改一个单元时,都会导致整个工作簿的重新计算。因此,如果您认为工作簿很慢,请摆脱OFFSET和其他易失功能。