3

Я ищу формулу в 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 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .