代码之家  ›  专栏  ›  技术社区  ›  scunliffe

当一系列数字变为负数时确定单元格ID的Excel公式

  •  4
  • scunliffe  · 技术社区  · 16 年前

    样本数据

         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的情况(很好),但如果我可以避免它,我想。

    3 回复  |  直到 7 年前
        1
  •  8
  •   Robert Mearns    7 年前

    match函数返回范围索引

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

    匹配范围b2:b7中小于0的第一个单元格。从您的示例数据中,这将返回5

    使用offset函数返回基于索引值的特定单元格

        2
  •  3
  •   Robert Mearns    16 年前

    使用 比赛 用于确定行数的公式。

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

    您将需要使用匹配类型-1,因为您的数据是按降序排列的。此设置将返回大于或等于查找值0的最小值。

    根据您的数据,这将返回行号 . 您希望看到行号 ,所以公式需要扩展如下。

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

    要确定单元格ID,需要将此公式包装为 地址 公式。

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

    这将返回值 6美元

    返回相关的日期或值可能更有用。这可以通过 抵消 公式。

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

    第一个公式将返回A6中的日期, 8月1日

    第二个公式将返回b6中的值, - 0.075美元

        3
  •  1
  •   MarmouCorp    16 年前

    我不确定你想做什么。

    如果要避免使用负数,可以执行以下操作:

    =IF(YOUR_CELL_ACTUAL_FORMULA < 0 , 0, YOUR_CELL_ACTUAL_FORMULA)
    

    如果您想知道数字何时变为负数,可以这样做:

    =MATCH(0, YOUR_AMOUNT_RANGE, -1)
    

    当金额为负数时,这将给您第一个行号。