我在 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