5

サンプルデータ

     A            B
1  Date        Amount
2  Apr 1        $6,000
3  May 1        $4,250
4  June 1       $2,750
5  July 1       $1,000
6  Aug 1       -$0.075   <- This Cell/Row
7  Sept 1     -$0.2500

数値の列 (実際には 100 ~ 200 行) で、値が負に変化したとき。たとえば、これらがローンの未払い額である場合、ローンが完済される時期。数字の実際の違いは、利息、税金、1 回限りの支払いなどに基づいて変動することに注意してください。したがって、(合計 / 支払い) = 月数を数えることはできません。

これを決定するために Excel の数式を使用する方法はありますか? これは VBA を必要とするケースかもしれませんが (これは問題ありません)、回避できるのであればそうしたいと思います。

4

3 に答える 3

9

match 関数は範囲インデックスを返します

=MATCH(matchValue, range, matchType: 0=exact, 1=greater than, -1=less than


=MATCH(0, B2:B7, -1)

B2:B7 の範囲で 0 未満の最初のセルに一致します。サンプルデータから、これは 5 を返します

Offset 関数を使用して、インデックス値に基づいて特定のセルを返す

于 2009-03-16T13:06:58.980 に答える
4

MATCH式を使用して、行番号を決定します。

=MATCH(lookup value, lookup range, lookup type)
=MATCH(0,B1:B7,-1)

データは降順であるため、一致タイプ -1 を使用する必要があります。この設定は、ルックアップ値 0 以上の最小値を返します。

データに基づいて、これは行番号5を返します。行番号6が表示されることが予想されるため、式を次のように拡張する必要があります。

=MATCH(0,B1:B7,-1)+1

セル ID を特定するには、この数式をADDRESS数式にラップする必要があります。

=ADDRESS(Row number, Column number)
=ADDRESS(MATCH(0,B1:B7,-1)+1,2)

これは値$B$6を返します

関連する日付または値を返す方がおそらく便利でしょう。これは、 OFFSET式で行うことができます。

=OFFSET(A1,MATCH(0,B1:B7,-1),0)
=OFFSET(A1,MATCH(0,B1:B7,-1),1)

最初の数式は、A6、8月 1 日の日付を返します。

2 番目の数式は、B6 の値、-$0.075を返します。

于 2009-03-17T01:12:15.397 に答える
1

あなたがやりたいかどうかはわかりません。

負の数を避けたい場合は、次のことができます。

=IF(YOUR_CELL_ACTUAL_FORMULA < 0 , 0, YOUR_CELL_ACTUAL_FORMULA)

数値がいつ負になるかを知りたい場合は、次のことができます。

=MATCH(0, YOUR_AMOUNT_RANGE, -1)

これにより、金額が負の場合の最初の行番号が得られます。

于 2009-03-16T13:09:38.567 に答える