Excel公式最小值的位置

编辑:可能是一个简单的问题,基本上我有三个值,让我们说在不同的单元格( 不是在一个表格) ,我想find最小的顺序,然后返回其相对位置, 例如:9, 4,7会返回2,因为4是最小的,位于第二位。

什么是正确的excel公式这样做? 谢谢 。

解答:感谢所有的帮助,如果不是连续的,我不认为excel可以做。 我已经使用了一系列嵌套的IF语句,AND语句和<符号来完成这项工作:)

这是一个应该工作的数组公式。 它假设值在A1,C3和B4。

=MAX(IF(CHOOSE(TRANSPOSE({1,2,3}),$A$1,$C$3,$B$4)=MIN($A$1,$C$3,$B$4),TRANSPOSE({1,2,3}),0))

你可以简单地;

 =ROUND(MIN(A1,B1,C1), 0) 

啊,澄清之后;

我想不出用公式来做这件事的方法,可以用VBA来完成(假设所有的数值单元格+最高索引都是在冲突的结果中返回的)

 =OrdinalMin(A2,B2,C2) //in a module Public Function OrdinalMin(ParamArray cells() As Variant) As Long Dim i As Long, min As Double For i = 0 To UBound(cells) If cells(i) <= cells(min) Then min = i Next OrdinalMin = min + 1 End Function 

min: =MIN(A1,B2,C3)

位置: =MATCH(2,1/FREQUENCY(min,(A1,B2,C3)))

不幸的是,Excel查找function需要连续的数据范围。

对于一组随机单元格,请使用如下所示的内容:

 Public Function Match2(ByVal What As Variant, ByVal Where As Range) As Long Dim a As Range Dim c As Range Dim g As Long For Each a In Where.Areas For Each c In a.Cells g = g + 1 If c.Value = What Then Match2 = g Exit Function End If Next Next End Function 

用法:

 =Match2(MIN(B6,F9,I16),(B6,F9,I16)) 

arrays公式:

 {=SUM((B$16:M$16)*(B23:M23=MIN(B23:M23)))} 

其中范围B$16:M$16具有指数(即1,2,3,4等), B23:M23具有正在考虑的值。