Come trovare il primo / ultimo numero positivo / negativo in Excel?
Quando si lavora con una colonna di numeri che contiene sia valori positivi che negativi, potrebbe essere necessario individuare rapidamente il primo o l'ultimo numero positivo o negativo nell'intervallo. Questo può essere particolarmente utile per l'analisi dei dati, la rilevazione di tendenze o l'identificazione di punti di ingresso specifici in grandi set di dati. Fare affidamento su un controllo manuale per grandi quantità di dati è inefficiente e soggetto a errori. Fortunatamente, Excel offre diversi metodi pratici per semplificare questo compito, consentendoti di estrarre i valori precisi di cui hai bisogno con formule o automazioni. Di seguito, troverai diverse soluzioni adatte a scenari diversi, inclusi approcci avanzati ideali per operazioni ripetute o su larga scala.
Trova il primo numero positivo / negativo con la formula matrice
Trova l'ultimo numero positivo / negativo con la formula matrice
Macro VBA per trovare il primo / ultimo numero positivo / negativo
Trova il primo numero positivo / negativo con la formula matrice
Per estrarre il primo numero positivo o negativo da una serie di valori, puoi utilizzare le formule matrice di Excel. Questo metodo è adatto per gli utenti che necessitano di una soluzione rapida per intervalli di dati moderati e sono a proprio agio con le formule, specialmente in ambienti in cui sono limitati add-in o macro aggiuntivi. L'approccio basato su matrici si aggiorna automaticamente se i tuoi dati di origine cambiano, rendendolo adatto per liste dinamiche. Ecco come puoi implementarlo:
1. Seleziona una cella vuota, inserisci la seguente formula matrice per ottenere il primo numero positivo:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))
Qui, A2:A18 si riferisce all'elenco di dati che desideri esaminare. Questa formula individua la prima cella nell'intervallo con un valore maggiore di 0, quindi restituisce il contenuto di quella cella. Vedi lo screenshot seguente:
2. Dopo aver digitato la formula, premi contemporaneamente Ctrl + Maiusc + Invio invece di premere solo Invio. Questo eseguirà correttamente la formula matrice e restituirà il primo numero positivo dalla tua lista, come mostrato nell'esempio sottostante:
Suggerimento: Per recuperare il primo numero negativo, usa semplicemente questa formula (ricorda di premere Ctrl + Maiusc + Invio dopo averla digitata):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
In entrambe le formule, modificando la condizione (>0
per positivo, <0
per negativo) puoi mirare al tipo di numero richiesto. Tieni presente che le formule matrice non supportano riferimenti a celle vuote, quindi assicurati che il tuo intervallo di dati non includa celle vuote per risultati coerenti. Se tutti i numeri sono positivi o negativi, la formula potrebbe restituire un errore—considera di aggiungere una funzione SE.ERRORE
se vuoi sopprimere gli errori e visualizzare un messaggio personalizzato.
Nota: Nelle versioni recenti di Excel (Office 365 ed Excel 2021 e successive), potrebbe non essere necessario usare Ctrl + Maiusc + Invio; premere solo Invio potrebbe essere sufficiente grazie al supporto delle matrici dinamiche.
Trova l'ultimo numero positivo / negativo con la formula matrice
Se il tuo obiettivo è identificare l'ultimo valore positivo o negativo in una colonna, puoi utilizzare una formula matrice diversa. Questo approccio è adatto per analizzare rapidamente tendenze finali o individuare l'ultimo punto dati di un tipo specifico. Nota che questo metodo riflette dinamicamente gli aggiornamenti dei dati, il che è particolarmente prezioso quando aggiungi regolarmente nuovi numeri alla lista.
1. Seleziona una cella vuota accanto alla tua colonna di dati e inserisci questa formula matrice per trovare l'ultimo numero positivo:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Questa formula funziona sfruttando il comportamento di RICERCA.VERT
che restituisce l'ultima corrispondenza numerica trovata per un numero estremamente grande. Qui, SE($A$2:$A$18 >0, $A$2:$A$18)
filtra solo i numeri positivi, e RICERCA.VERT
restituisce l'ultima occorrenza. Vedi l'illustrazione qui sotto:
2. Conferma la formula premendo Ctrl + Maiusc + Invio (a meno che la tua versione di Excel non supporti le matrici dinamiche). Il risultato mostrerà l'ultimo valore positivo presente nell'intervallo specificato, come dimostrato di seguito:
Per restituire l'ultimo numero negativo, utilizza invece la seguente formula matrice, sempre con Ctrl + Maiusc + Invio:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18))
Se non viene trovato alcun valore positivo o negativo, la formula restituirà un errore (#N/D
). Per gestire tali casi con grazia, avvolgi la formula in SE.ERRORE
. Ad esempio:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
È importante evitare celle unite o formati combinati testo/numero nel tuo intervallo, poiché potrebbero interrompere i risultati del calcolo della formula. Verifica sempre l'integrità dei tuoi dati prima di utilizzare questi metodi per la massima precisione.
Macro VBA per trovare il primo / ultimo numero positivo / negativo
Se hai frequentemente bisogno di trovare il primo o l'ultimo numero positivo o negativo in più intervalli o set di dati molto grandi, automatizzare questo compito con una macro VBA può risparmiare tempo significativo e ridurre gli errori manuali. Questa soluzione ti consente di cercare un intervallo selezionato e recuperare immediatamente il valore richiesto, rendendola ideale per l'elaborazione batch o compiti analitici ripetitivi. L'approccio VBA è particolarmente utile in scenari in cui sono necessari criteri complessi o flussi di lavoro personalizzati, anche se richiede una conoscenza di base degli strumenti di sviluppo di Excel.
1. Clicca Sviluppatore > Visual Basic per aprire la finestra Microsoft Visual Basic for Applications. Poi, nell'editor VBA, clicca Inserisci > Modulo, e copia il seguente codice nel nuovo modulo:
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub
2. Per eseguire la macro, premi F5 (o clicca il pulsante Esegui e segui questi passaggi:
- Una finestra di dialogo ti chiederà di selezionare l'intervallo numerico (ad esempio, A2:A18).
- Successivamente, inserisci il tipo di ricerca: digita FirstPos per il primo numero positivo, FirstNeg per il primo numero negativo, LastPos per l'ultimo numero positivo, o LastNeg per l'ultimo numero negativo (non sensibile alle maiuscole/minuscole).
- Dopo aver inserito la tua scelta e confermato, il risultato verrà visualizzato in una finestra di messaggio.
Suggerimenti:
- Questa macro può gestire qualsiasi intervallo numerico contiguo selezionato dall'utente, consentendo flessibilità nel layout dei dati.
- Se il tipo specificato non corrisponde a nessun numero nell'intervallo, riceverai una notifica invece di un errore.
- Assicurati che le macro siano abilitate nel tuo Excel affinché il codice VBA funzioni.
- Se i tuoi dati includono valori non numerici, la macro li ignorerà durante l'elaborazione.
Risoluzione dei problemi e suggerimenti: Per tutte le soluzioni, conferma sempre che la tua selezione contenga l'intervallo previsto e non includa intestazioni. Se utilizzi intervalli ampi, considera di limitarne la dimensione per evitare ritardi nei calcoli o nelle prestazioni, soprattutto quando si utilizzano formule matrice o macro.
Se ti ritrovi a eseguire frequentemente questo compito o desideri più personalizzazione, considera di combinare criteri multipli nella tua macro o creare un pulsante dedicato per un accesso più facile. Salva sempre il tuo lavoro prima di provare nuovi script VBA e testa su copie di backup se sei nuovo alla programmazione.
Articoli correlati:
Come trovare il primo / ultimo valore maggiore di X in Excel?
Come trovare il valore più alto in una riga e restituire l'intestazione della colonna in Excel?
Come trovare il valore più alto e restituire il valore della cella adiacente in Excel?
Come trovare il valore massimo o minimo in base a criteri in Excel?
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra invece che in nuove finestre.
- Aumenta la produttività del50% e riduce centinaia di clic del mouse ogni giorno!
Tutti gli add-in Kutools. Un solo programma di installazione
La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.





- Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
- Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
- Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
- Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in