Formula Excel: Obțineți valoarea ultimei celule ne-goale -

Formula generică

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

rezumat

Pentru a găsi valoarea ultimei celule ne-goale dintr-un rând sau coloană, puteți utiliza funcția CĂUTARE în această formulă surprinzător de compactă. Ca bonus suplimentar, această formulă nu este o formulă matrice și nu este volatilă.

Explicaţie

Cheia pentru a înțelege această formulă este să recunoaștem că valoarea de căutare a lui 2 este în mod deliberat mai mare decât orice valori care vor apărea în căutare_vector.

  1. Expresia A: A "" returnează o serie de valori adevărate și false: (TRUE, FALSE, TRUE, …).
  2. Numărul 1 este apoi împărțit la această matrice și creează o matrice nouă compusă fie din 1, fie împarte la zero erori (# DIV / 0!): (1,0,1, …). Această matrice este vectorul de căutare.
  3. Când lookup_value nu poate fi găsit, LOOKUP se va potrivi cu cea mai mică valoare următoare.
  4. În acest caz, lookup_value este 2, dar cea mai mare valoare din lookup_array este 1, astfel că căutarea se va potrivi cu ultima 1 din matrice.
  5. LOOKUP returnează valoarea corespunzătoare în result_vector (adică valoarea în aceeași poziție).

Gestionarea erorilor

Dacă există erori în lookup_vector, mai ales dacă există o eroare în ultima celulă ne-goală, această formulă trebuie ajustată. Această ajustare este necesară deoarece "" criteriile vor returna o eroare în sine dacă o celulă conține o eroare. Pentru a rezolva această problemă, utilizați ISBLANK cu NOT:

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

Ultima valoare numerică

Pentru a obține ultima valoare numerică, puteți adăuga funcția ISNUMBER astfel:

=LOOKUP(2,1/(ISNUMBER(A1:A100)),A1:A100)

Poziția ultimei valori

Dacă doriți să obțineți poziția (în acest caz numărul rândului) ultimei valori, puteți încerca o formulă de genul acesta:

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

Aici alimentăm numerele rândurilor din același interval în căutarea vectorului rezultat și obținem înapoi numărul rândului din ultima potrivire.

Articole interesante...