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

The*_*Man 4 excel vba excel-vba excel-2010

所以我有一个看起来像这样的图表.假设左上角值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
Run Code Online (Sandbox Code Playgroud)

有1到8的x值,以及使用它下面的等式或其他东西得到的三列值.总和是低于其相应x值的三个值的总和.

我试图找出能够通过总和行找到最小值的东西,然后将它的相应x值分配给变量.我还需要将该x值左侧和右侧的值分配给其他变量.

对于这个特定的图表,12是总和中最小的,所以我会分配variable1 = 4,因为那是该列的相应x值.然后我的第二个变量(称为lowerbound3)将等于3,因为它位于x = 4的左侧,而我的第三个变量(称为upperbound)将等于5,因为它位于x = 4的右侧.

如果我可以获得与最小总和相对应的x值返回的单元格地址,那么我可以将其分配给变量,然后简单地从该单元格偏移以分配其他变量.即使我可以创建一个程序来返回最小和值的单元格,我也可以偏移到x行,然后从那里开始.

我该怎么办呢?

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

行的长度是未知的,并且变化很大,但是给出了列的长度.它们确实根据问题而改变,但它们总是会被人知道.所以我将始终知道列中有多少行,但我不知道连续多少列.

这是我一生中写过的最令人困惑的事情,但我希望我已经足够清楚地解释了它.

顺便说一句,你们真的很棒.到目前为止,我已经完成了这个项目,这都是因为你有多大帮助.老实说,我觉得我还是会和你们一起陷入困境!你愿意容忍一个新手不停的问题.

Sid*_*out 10

我假设总和在A4:H4.请根据情况更改

你可以使用像这样的公式

=CELL("address",INDEX(A4:H4,MATCH(MIN(A4:H4),A4:H4,0)))
Run Code Online (Sandbox Code Playgroud)

如果您想使用VBA,那么您可以使用它

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


Jim*_*ena 7

使用您的示例,以下公式返回第1行中的单元格地址,其中第5行中的值最低:

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

如果你想要那个细胞的价值,请使用INDIRECT.它将地址作为字符串.

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