一、从一列数据中提取大于0的最小值 C11=SMALL($B$5: $B$9,COUNTIF($B$5: $B$9,"<=0")+1) 函数说明 1、countif 函数表达式:=countif(range,criteria) 用途:统计所选区域中符合条件的值的个数 2、small 函数表达式=small(array,k) 用途:从一个区域中找第k小的值。 3、嵌套公式说明 countif统计了小于等于0的数值个数为2,则大于0的最小值在所有数据中是第3小。
二、在多列数据中找大于0的最小值 C20:{=MIN(IF(B14: D18<=0,MAX(B14: D18),B14: D18))} 函数说明 1、max 函数表达式=max(number1,number2,...) 用途:从一组数据或者多个数据中取最大的数。 2、min 函数表达式=min(number1,number2,...) 用途:从一组数据或者多个数据中取最小的数。 3、if 函数表达式:=if(logical_test,value_if_true,value_if_false) 用途:如果合同类别没有填时返回空值,有填写合同类别,用函数组合计算流水号。 4、嵌套公式说明 数组公式中IF(B14: D18<=0,MAX(B14: D18),B14: D18)是将区域中的小于等于0的值用区域最大值取代。 组成的新数据结果如下
再在这个数据区域里用min函数取最小值。 这个思路是一个非常巧妙地做法,我们不妨做一个案例: 正常销售价格是90~100,退货价格假如是80~90,求A产品销售的最小价格。
D66:{=SMALL(IF($D$59: $D$64*($B$59: $B$64=B67)*($C$59: $C$64=C67)=0,MAX($D$59: $D$64),$D$59: $D$64),1)} 1、嵌套公式说明 如果产品和销售类别都不符合的,取整个区域的最大值替代之。再从新组建的数据中取最小值。 |