查找单元格区域内满足条件的最后一个值

查找单元格区域内满足条件的最后一个值

我在 LibreOffice Calc 中寻找一个公式来查找满足条件的范围内的最后一个值。以下是示例数据:

A         B             C           D                E                 F
Date      US Amount     Currency    Local Amount     Exchange Rate     Reconciled
01/01/01  $1000.00      GBP         654 GBP          1.53              x
01/05/01  $1000.00      EUR         757.12 EUR       1.32              x
01/18/01  $1000.00      GBP         688 GBP          1.45              x
01/19/01  $1000.00      EUR         763.36 EUR       1.31              x
01/28/01  $1000.00      GBP         675.58 GBP       1.48
01/29/01  $1000.00      EUR         778.87 EUR       1.28

因此,我正在寻找一个公式,该公式可以提取相应货币的最新、已核对的汇率。(在本例中,对于欧元,它将提取 1.31,因为 1.28 尚未核对。)似乎在 Excel 中我可以使用 DLAST 函数,但是该函数似乎尚未在 LibreOffice 中实现。

LibreOffice 有没有什么解决方法?

答案1

是的 - 您可以使用MATCH函数来查找符合特定条件的最后一行。这样,你就可以计算出OFFSET根据第一行。它看起来是这样的:

=OFFSET(E2;(MATCH("x";F1:F100;-1)-1);0;1)

或者,插入一些停顿和评论:

=OFFSET(              // find Offset ...
    E2;               // ... starting from first exchange rate ...
    (                 // ... and go down some rows:
        MATCH(        // get row of last reconciled rate using MATCH:
            "x";      // search for "x" ...
            F2:F100;  // in F1 to F100 (make sure that the range covers all rates!)
            -1        // assuming a descending sort order. So, the last of a sequence
                      // of identical values is the "first" one.
        )-1           // MATCH would return 4, so OFFSET would point to 5,
                      // so reduce by -1
    );
    0;                // no "horizontal" offset (stay in the same column)
    1)                // return only one cell

相关内容