一个程序将返回一行中的最小值的单元格地址?

所以我有一个图表,看起来像这样。 假设左上angular的值1在单元格A1中:

x= 1 2 3 4 5 6 7 8 4 3 2 1 2 3 4 5 9 8 7 6 7 8 9 10 8 7 6 5 4 3 2 1 Sum= 21 18 15 12 13 14 15 16 

有从1到8的x值,以及通过使用它的方程式或其下面的东西得到的三列值。 总和是三个值的总和,低于它们对应的x值。

我试图找出那些将通过总和的行,find最小的值,然后将它的相应的x值分配给一个variables。 我还需要将该x值的左侧和右侧的值分配给其他variables。

对于这个特定的图表,12是最小的总和,所以我将分配variable1 = 4 ,因为那是该列的相应x值。 然后我的第二个variables叫做lowerbound ,它等于3,因为它在x = 4的左边,我的第三个variablesupperbound将等于5,因为它在x = 4的右边。

如果我可以得到与最小和值相对应的x值的单元格地址,那么我可以将它分配给一个variables,然后简单地从该单元格偏移来分配其他variables。 即使我可以制作一个程序,将返回最小总和值的单元格,我可以抵消x行,并从那里去。

我将如何做这样的事情?

TL:DR:要更清楚地问一下,因为这有很多单词:一个程序看起来像是检测总和行中最小的值,并返回该值的单元格地址?

行的长度是未知的,并且变化很大,但列的长度是给定的。 他们根据问题而改变,但他们将永远是知道的。 所以我会一直知道一列中有多less行,但我不知道一行中有多less列。

这是我一辈子写过的最容易混淆的东西,但是我希望我已经解释得很清楚了。

顺便说一下,你们真的很棒。 我已经得到了这个程序,这一切都是因为你是多么的有帮助。 老实说,我还是会和你们一起卡在一开始! 你愿意容忍一个新手不断的问题。

我假设这个数字是A4:H4 。 请根据情况更改

你可以使用一个像

 =CELL("address",INDEX(A4:H4,MATCH(MIN(A4:H4),A4:H4,0))) 

如果你想使用VBA,那么你可以使用这个

 Sub Sample() MsgBox Application.Evaluate("=CELL(""address"",INDEX(A4:H4,MATCH(MIN(A4:H4),A4:H4,0)))") End Sub 

使用你的例子,下面的公式返回行5中的值最小的行1中的单元格地址:

=ADDRESS(1,MATCH(MIN(A5:H5),A5:H5,0))

如果你想要这个单元格的值,可以使用INDIRECT 。 它将地址作为一个string。

=INDIRECT(ADDRESS(1,MATCH(MIN(A5:H5),A5:H5,0)))

如果通过取数组的总和来求和列。 这里是VBA版本:

 For j = 1 To 8 For i = 1 To 3 sum(j) = sum(j) + Cells(i + 1, j + 1) Next i Cells(5, j + 1) = sum(j) Next j