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 行)中,当值变为负数时,例如,如果这些是我们欠贷款的金额,那么贷款将在何时还清。请注意,数字之间的实际差异会根据利息、税收、一次性付款等而波动。所以我不能只计算(总额/付款)= 月数。

有没有办法使用 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 日

第二个公式将返回 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 回答