4

だから私はこのようなチャートを持っています。左上の値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値と、方程式またはその下の何かを使用して得られた3列の値があります。合計は、対応するx値の下にある3つの値の合計です。

合計の行を調べ、最小値を見つけて、それに対応するx値を変数に割り当てる何かを見つけようとして立ち往生しています。また、そのx値の左右の値を他の変数に割り当てる必要があります。

この特定のグラフでは、12が合計の最小値であるため、variable1 = 4その列の対応するx値であるため、を割り当てます。次に、lowerboundx = 4の左側にあるため、と呼ばれる2番目の変数は3になり、upperboundx = 4の右側にあるため、と呼ばれる3番目の変数は5になります。

最小の合計に対応するx値のセルアドレスが返される場合は、それを変数に割り当て、そのセルからオフセットして他の変数を割り当てることができます。最小合計値のセルを返すプログラムを作成できたとしても、x行にオフセットしてそこから移動することができます。

どうすればそのようなことができますか?

TL:DR:質問が多いので、もっと明確に質問します。合計行の最小値を検出し、その値のセルアドレスを返すプログラムはどのようになりますか?

行の長さは不明であり、大きく異なりますが、列の長さは示されています。それらは問題に応じて変化しますが、常に知られています。したがって、1つの列にいくつの行があるかは常にわかりますが、1つの行にいくつの列があるかはわかりません。

これは私がこれまでに書いた中で最も紛らわしい言葉ですが、ある程度意味をなすように十分に説明できたと思います。

ちなみに、皆さんは本当に素晴らしいです。私はこれまでこのプログラムに取り組んできましたが、それはすべてあなたがどれほど役に立ったかによるものです。私は正直に言って、私はまだあなたたちと最初は立ち往生していると思います!あなたは初心者の絶え間ない質問を容認する用意があります。

4

3 に答える 3

10

合計が にあると仮定してい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
于 2012-07-24T20:32:02.757 に答える
7

あなたの例を使用すると、次の数式は、行 5 の値が最も低い行 1 のセル アドレスを返します。

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

そのセルの値が必要な場合は、を使用しますINDIRECT。アドレスを文字列として受け取ります。

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

于 2012-07-24T20:36:42.897 に答える
2

配列の合計を取って列を合計する場合。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
于 2012-07-24T20:48:38.857 に答える