KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come trovare il primo o l’ultimo numero positivo o negativo in Excel?

AutoreXiaoyang Data di modifica

Quando si lavora con una colonna di numeri che include sia valori positivi che negativi, potrebbe essere utile individuare rapidamente il primo o l’ultimo numero positivo o negativo nell’intervallo. Questa operazione è particolarmente preziosa nell’analisi dei dati per rilevare tendenze o identificare punti di ingresso specifici in set di dati estesi. Esaminare manualmente grandi volumi di dati è inefficiente e soggetto a errori. Fortunatamente, Excel offre diversi metodi pratici per semplificare questa attività, permettendoti di estrarre esattamente i valori di cui hai bisogno tramite formule o automazione. Di seguito trovi soluzioni multiple, adatte a scenari diversi, incluse strategie avanzate ideali per operazioni ripetitive o su larga scala.

Trova il primo numero positivo / negativo con formula matriciale

Trova l'ultimo numero positivo / negativo con formula matriciale

Macro VBA per trovare il primo / ultimo numero positivo / negativo


freccia blu bolla destra Trova il primo numero positivo / negativo con formula matriciale

Per estrarre il primo numero positivo o negativo da una serie di valori, puoi ricorrere alle formule matriciali di Excel. Questo metodo è perfetto per chi cerca una soluzione rapida con intervalli di dimensioni moderate ed è a proprio agio con le formule, specialmente in ambienti dove l’uso di componenti aggiuntivi o macro è limitato. L’approccio matriciale si aggiorna automaticamente al variare dei dati di origine, rendendolo ideale per elenchi dinamici. Ecco come implementarlo:

1. Seleziona una cella vuota e inserisci la seguente formula matriciale per ottenere il primo numero positivo:

=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))

Qui, A2:A18 indica l'elenco di dati da cercare. Questa formula individua la prima cella nell'intervallo con un valore maggiore di 0 e ne restituisce il contenuto. Vedi lo screenshot seguente:

Uno screenshot che mostra un set di dati per trovare il primo numero positivo in Excel

2. Dopo aver digitato la formula, premi contemporaneamente Ctrl + Maiusc + Invio invece di premere semplicemente Invio. In questo modo, la formula matriciale verrà eseguita correttamente e restituirà il primo numero positivo dell'elenco, come mostrato nell'esempio seguente:

Uno screenshot che mostra il risultato del primo numero positivo utilizzando una formula matriciale in Excel

Suggerimento:Per recuperare invece il primo numero negativo, utilizza semplicemente questa formula (ricorda di premere)Ctrl + Maiusc + Inviodopo averla digitata):

=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))

In entrambe le formule, modificando la condizione ()>0 per i positivi, <0 per i negativi) puoi selezionare il tipo di numero desiderato. Tieni presente che le formule matriciali non supportano riferimenti a celle vuote; assicurati quindi che il tuo intervallo dati non contenga celle vuote per ottenere risultati coerenti. Se tutti i numeri sono esclusivamente positivi o negativi, la formula potrebbe restituire un errore: valuta l’aggiunta della funzione SE.ERRORE se desideri nascondere gli errori e mostrare un messaggio personalizzato.

Nota: Nelle versioni recenti di Excel (Office 365, Excel 2021 e successive), potrebbe non essere più necessario utilizzare Ctrl + Maiusc + Invio; grazie al supporto per le matrici dinamiche, potrebbe bastare premere semplicemente Invio.


freccia blu bolla destra Trova l'ultimo numero positivo / negativo con formula matriciale

Se l’obiettivo è identificare l’ultimo valore positivo o negativo in una colonna, è possibile utilizzare una formula matriciale alternativa. Questo approccio permette di analizzare rapidamente le tendenze più recenti o di individuare il punto dati più aggiornato di un tipo specifico. Si noti che il metodo si aggiorna dinamicamente al variare dei dati, rivelandosi particolarmente prezioso quando nuovi numeri vengono aggiunti regolarmente all’elenco.

1. Seleziona una cella vuota accanto alla colonna dei dati e inserisci questa formula matriciale per individuare l’ultimo numero positivo:

=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))

Questa formula sfrutta il comportamento della funzione CERCA.VERT, che restituisce l'ultima corrispondenza numerica trovata quando le viene passato un numero estremamente grande. In questo caso, SE($A$2:$A$18 >0, $A$2:$A$18) filtra solo i numeri positivi e CERCA.VERT restituisce quindi l'ultima occorrenza. Vedi l'illustrazione seguente:

Uno screenshot che mostra la formula matriciale per trovare l'ultimo numero positivo in Excel

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 limitato, come illustrato di seguito:

Uno screenshot che mostra il risultato dell'ultimo numero positivo utilizzando una formula matriciale in Excel

Per restituire l'ultimo numero negativo, utilizza invece la seguente formula matriciale, 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 questi casi in modo efficace, racchiudi la formula nella funzione SE.ERRORE. Ecco un esempio:

=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")

È fondamentale evitare celle unite o formati combinati di testo e numeri nel tuo intervallo, poiché potrebbero compromettere i risultati del calcolo della formula. Verifica sempre l’integrità dei dati prima di applicare questi metodi per garantire la massima precisione.


freccia blu bolla destra Macro VBA per trovare il primo / ultimo numero positivo / negativo

Se devi spesso individuare il primo o l’ultimo numero positivo o negativo in intervalli multipli o in set di dati molto estesi, automatizzare questa operazione con una macro VBA ti farà risparmiare tempo e ridurrà gli errori manuali. Questa soluzione ti consente di selezionare un intervallo e ottenere immediatamente il valore richiesto, risultando ideale per elaborazioni batch o attività analitiche ripetitive. L’approccio VBA è particolarmente efficace in scenari che richiedono criteri complessi o flussi di lavoro personalizzati, sebbene presupponga una conoscenza di base degli strumenti per sviluppatori di Excel.

1. Fai clic su Sviluppo > Visual Basic per aprire la finestra di Microsoft Visual Basic, Applications. Quindi, nell'editor VBA, fai clic su 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(oppure fai clic sul pulsante)Pulsante Esegui Esegui), quindi segui questi passaggi:

  • Verrà visualizzata una finestra di dialogo in cui ti verrà chiesto di selezionare l’intervallo di celle (ad esempio, A2:A18).
  • Successivamente, inserisci il tuo tipo di ricerca: digita FirstPos per il primo numero positivo, FirstNeg per il primo numero negativo, LastPos per l'ultimo numero positivo oppure LastNeg per l'ultimo numero negativo (senza distinzione tra maiuscole e minuscole).
  • Dopo aver inserito la tua scelta e confermato, il risultato apparirà in una finestra di messaggio.

Suggerimenti:

  • Questa macro gestisce qualsiasi intervallo numerico contiguo selezionato dall’utente, garantendo massima flessibilità nella disposizione dei dati.
  • Se il tipo specificato non corrisponde ad alcun numero nell’intervallo, riceverai una notifica anziché un errore.
  • Assicurati che le macro siano abilitate in Excel per garantire il corretto funzionamento del codice VBA.
  • Se i tuoi dati contengono valori non numerici, la macro li ignorerà durante l’elaborazione.

 

Risoluzione dei problemi e suggerimenti: Per ogni soluzione, assicurati sempre che la selezione includa l’intervallo previsto e non contenga intestazioni. Se utilizzi intervalli ampi, valuta di ridurne le dimensioni per evitare rallentamenti nei calcoli o nelle prestazioni, soprattutto quando impieghi formule matriciali o macro.

Se esegui spesso questa operazione o desideri un maggiore livello di personalizzazione, valuta la possibilità di combinare criteri multipli nella tua macro o di creare un pulsante dedicato per un accesso ancora più semplice. Ricorda sempre di salvare il tuo lavoro prima di provare nuovi script VBA e, se sei alle prime armi con la programmazione, testali su copie di backup.


Articoli correlati:

Come trovare il primo o l’ultimo valore superiore a X in Excel?

Come trovare il valore più alto in una riga e restituire l’intestazione della relativa colonna in Excel?

Come trovare il valore massimo e restituire il contenuto della cella adiacente in Excel?

Come trovare il valore massimo o minimo in base a determinati criteri in Excel?

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...


Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi