Excel公式查找仅可见单元格的条件最小值

时间:2019-11-18 14:59:17

标签: excel excel-formula aggregate array-formulas subtotal

首先,如果我对公式名称进行了一些翻译错误,我必须道歉。由于波兰语Excel公式名称与英文名称完全不同,并且无法在Excel中的语言和名称之间切换,因此很难描述我的需求。但是,让我们尝试...

我知道使用以下方法找到条件最小值的解决方案{=MIN(IF($A$2:$A$10=$A11;$B$2:$B$10;""))}数组公式,并使用以下公式查找经过过滤的一组单元格的最小值(仅可见单元格的最小值)。 SUBTOTAL(105;$B$2:$B$10)AGGREGATE(5;3;$B$2:$B$10)公式,但我找不到将这两种解决方案合并在一起以获取满足条件的所有可见像元中最小的一种方法。

换句话说,我仅需要从B2:B10范围内的可见单元格中获取最小值,而仅从A2:A10范围内的值等于该单元格中特定值的行中获取最小值A11,并且B2:B10中的值大于零。

+---+-----+
| A |  B  |
+---+-----+
| 1 | 170 |
........... <== here some hidden (filtered or grouped) rows with other values
| 1 | 120 |
| 1 | 100 | <== minimum for "1"
| 1 |   0 | <== not included for "1" - only > 0
| 2 | 110 |
........... <== here some hidden (filtered or grouped) rows with other values
| 2 | 109 |
| 2 | 105 | <== minimum for "2"
| 3 |  50 | <== minimum for "3"
| 3 |   0 | <== not included for "3" - only > 0
+===+=====+
| 1 | 100 |  <= expected results of formula - minimum values, greater then zero, for groups "1", "2" and "3"
| 2 | 105 |
| 3 |  50 |
+---+-----+

亲切的问候-McVik

2 个答案:

答案 0 :(得分:2)

使用AGGREGATE(15,7,...),它可以进行数组处理:

=AGGREGATE(15,7,$B$2:$B$10/(($A$2:$A$10=$F12)*($B$2:$B$10>0)*(SUBTOTAL(3,OFFSET($B$2,ROW($B$2:$B$10)-MIN(ROW($B$2:$B$10)),,1)))),1)

答案 1 :(得分:0)

我通过在每个单元格中添加一个带有简单公式的“技术”列(例如“ C”)来临时帮助自己

=SUBTOTAL(103,$B2)
=SUBTOTAL(103,$B3)
=SUBTOTAL(103,$B4)
... etc.

和最后的数组公式检查此列中的值是否等于1。

{=MIN(IF($A$2:$A$10=$A11,IF($B$2:$B$10>0,IF($C$2:$C$10=1,$B$2:$B$10,""),""),""))}
{=MIN(IF($A$2:$A$10=$A12,IF($B$2:$B$10>0,IF($C$2:$C$10=1,$B$2:$B$10,""),""),""))}
{=MIN(IF($A$2:$A$10=$A13,IF($B$2:$B$10>0,IF($C$2:$C$10=1,$B$2:$B$10,""),""),""))}

现在它可以完全按照我的预期工作了。

PS。对不起,我在示例中使用了分号。我的Excel本地化需要分号而不是逗号(如我所见,您使用的是英文版本)。

致谢-McVik