Ultima valoare din coloana

Sursa: https://exceljet.net/formula/get-value-of-last-non-empty-cell

Pentru a găsi valoarea ultimei celule completate dintr-un rând sau o coloană, se poate utiliza funcția LOOKUP.

=LOOKUP(2,1/(A:A<>""),A:A)

Sintaxa funcției LOOKUP:

LOOKUP(lookup_value, lookup_vector, [result_vector])

LOOKUP(valoare_căutată, vector_în_care_caut, [vector_rezultat])

Modul în care funcționează această formulă

Trucul folosit este că valoarea căutată în formulă (lookup_value - aici 2) este mai mare în ​​mod deliberat decât orice valoare care poată să apară în lookup_vector.

Expresia A: A <> "" (celulele din coloana A care să conţină un caracter) returnează o matrice de valori cu: {TRUE, FALSE, TRUE, ...}. TRUE în cazul în care celula nu este goală şi FALSE pentru celulele goale.

Apoi se împarte numărul 1 la această matrice:

1 / (A: A <> "")

pentru a se creea o nouă matrice compusă din:

- 1 (rezultatul împărţirii lui 1 la TRUE)

sau

- erori ale împărţirii la zero (# DIV / 0!),

matricea fiind formată doar din 1 şi 0: {1,0,1, ...}.

Această matrice este matricea (lookup_vector) în care se caută valoarea (lookup_value) .

Atunci când valoarea căutată (lookup_value) nu poate fi găsită, LOOKUP va întoarce ca rezultat următoarea valoare cea mai mică.

În acest caz, lookup_value este 2, dar cea mai mare valoare din matrice este 1, deci căutarea va întoarce ultimul 1 din matrice.

Funcţia LOOKUP returnează valoarea corespunzătoare din matricea result_vector (adică valoarea din acea celulă).

Dacă formula dă eroare

Dacă există erori în lookup_vector, în special atunci când există o eroare în ultima celulă completată (care conţine un caracter), formula trebuie să fie ajustată.

Este nevoie de această ajustare, deoarece criteriul <> "" va returna o eroare dacă celula respectivă conține o eroare. Pentru a rezolva această problemă, se foloseşte ISBLANK împreună cu NOT:

= LOOKUP (2,1 / (NOT (ISBLANK (A: A))), A: A)

Poziția ultimei valori

Pentru a afla poziția (în acest caz numărul rândului) unde se află ultima valoare, se poate încerca o formulă de genul:

= LOOKUP(2,1/(A:A<>""),ROW(A:A))

care are ca rezultat (întoarce) numărul rândului pe care se află ultima celulă completată din coloană.

Exemplele de mai sus se referă la căutarea pe coloană, dar pot fi modificate pentru căutare pe rând (rând întreg sau doar un interval specificat).