Potresti chiederti se esiste un modo per restituire l’ultimo valore (non il più grande) in una colonna. Ad esempio, se sono presenti valori da A1 ad A5, è possibile che venga restituito il valore in A5. Successivamente, se i valori sono stati aggiunti da A6 a A8, dovrebbe essere restituito il valore in A8.

Ci sono un paio di modi in cui una soluzione può essere affrontata. Il primo è usare una formula come la seguente:

=INDEX(A:A,COUNT(A:A))

Questa formula restituisce l’ultimo valore numerico in una colonna, a condizione che i valori inizino (in questo caso) A1. Questo approccio funziona solo se tutti i valori nella colonna sono numerici. Se i valori non sono numerici o se sono presenti celle vuote mescolate con i valori, è necessario un approccio diverso. Un modo è copiare la seguente formula nella colonna B, appena a destra delle celle che possono contenere valori:

=IF(ISNUMBER(A2),IF(A2<>0,ROW(A2),""),"")

In questo caso, la formula restituisce il numero di riga di qualsiasi cella in A che contiene un valore numerico maggiore di zero. La seguente formula può quindi essere utilizzata per recuperare l’ultimo valore nella colonna A:

=INDEX(A:A,MAX(B:B))

Questa formula funziona perché restituisce il numero di riga più grande dalla colonna B, quindi lo utilizza come indice per restituire il valore corrispondente dalla colonna A.

Se il tuo intervallo di dati contiene una combinazione di valori numerici e non numerici (e, forse, anche alcune celle vuote mescolate nell’intervallo), potresti prendere in considerazione la seguente formula:

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

Il modo in cui funziona questa formula potrebbe non essere evidente all’inizio. La parte ISBLANK restituisce una matrice che contiene un valore True o False per ogni cella nella colonna A, a seconda che la cella sia vuota o meno. Quel valore Vero o Falso (che è in realtà un 1 o 0) viene sottratto da 1 in modo che finisci con il valore Vero pari a 0 e quello Falso pari a 1.

Il passaggio successivo consiste nell’utilizzare i valori 1 o 0 come dividendo in 1 / x. Questo effettivamente “inverte” il valore e si finisce con 1 (1/1) o un # DIV / 0! errore (1/0). Ricorda che questo è un array che viene quindi utilizzato come parametro per la funzione LOOKUP. Ciò che viene cercato nell’array è il valore 2, che non esiste lì. (Ricordare che l’array contiene solo i valori 1 o un valore di errore.) La funzione LOOKUP ignora effettivamente tutti i valori di errore nell’array e quindi restituisce l’offset, all’interno dell’intervallo A: A, dell’ultimo elemento dell’array che contiene un valore 1. Ciò corrisponde all’ultima cella nell’intervallo che non è vuota.

Come puoi vedere, la restituzione dell’ultimo valore in una colonna a volte può essere un po ‘complicata. Un approccio pulito consiste nello sviluppare semplicemente la tua funzione VBA che restituisce il valore desiderato. In questo caso è possibile programmare la funzione per restituire qualsiasi valore, non solo valori numerici. Un ottimo esempio di tale funzione è disponibile sul sito Web di John Walkenbach. Controlla quanto segue:

http://spreadsheetpage.com/index.php/tip/determining_the_last_non_empty_cell_in_a_column_or_row/

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2512) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: