如何修改Excel公式实现不重复的多个最小值查找?
解决Excel中最小值重复显示的问题
你遇到的核心问题是原公式只会返回当前范围内的最小值,不会排除已经在J列上方出现过的结果,导致后续行重复输出相同值。要实现“不重复显示最小值”的需求,我们可以通过AGGREGATE函数结合条件筛选,精准定位未在J列之前行出现过的最小值。
推荐公式方案
将J列的公式替换为以下内容(以J32为例,下拉填充到其他行即可):
=IF(H32>0,D32,AGGREGATE(15,6,$S$32:S32/(COUNTIF($J$31:J31,$S$32:S32)=0),1))
公式拆解说明
- 保留原逻辑:
IF(H32>0,D32,...),当H列当前行数值大于0时,依然显示D列对应内容,不改动原有业务逻辑。 AGGREGATE(15,6,...):- 参数
15表示调用SMALL函数的逻辑(用于查找第k小的数值); - 参数
6表示自动忽略公式计算产生的错误值,只保留有效数据;
- 参数
$S$32:S32/(COUNTIF($J$31:J31,$S$32:S32)=0):- 遍历
$S$32到当前行的所有S列数值,用COUNTIF检查该数值是否已经在J列的上方行($J$31:J31指J列表头或当前行的上一行,确保不包含当前未计算的J值)出现过; - 如果数值未出现过,返回原数值;如果已出现过,返回错误值(因除以0产生);
- 遍历
- 最后一个参数
1表示从筛选后的有效数值中,取第1小的那个,也就是当前范围内未被使用过的最小值。
效果验证
当J37已经显示了S列的最小值57.87后,计算J39时,公式会自动排除已出现的57.87,从$S$32:S39中找到下一个未被使用的最小值75.82并显示,完美解决重复问题。
内容的提问来源于stack exchange,提问作者Evan Katzen
相关产品推荐
相关产品推荐

