Hoe het eerste / laatste positieve / negatieve getal in Excel te vinden?
Bij het werken met een kolom met getallen die zowel positieve als negatieve waarden bevat, moet u vaak snel de eerste of laatste positieve of negatieve waarde in het bereik lokaliseren. Dit kan vooral handig zijn voor data-analyse, trenddetectie of het identificeren van specifieke invoerpunten in grote datasets. Het vertrouwen op handmatige inspectie voor grote datasets is inefficiënt en foutgevoelig. Gelukkig biedt Excel verschillende praktische methoden om deze taak te stroomlijnen, zodat u de exacte waarden kunt extraheren met formules of automatisering. Hieronder vindt u meerdere oplossingen die geschikt zijn voor verschillende scenario's, inclusief geavanceerde methoden die ideaal zijn voor herhaalde of grootschalige operaties.
Zoek het eerste positieve / negatieve getal met een arrayformule
Zoek het laatste positieve / negatieve getal met een arrayformule
VBA-macro om het eerste / laatste positieve / negatieve getal te vinden
Zoek het eerste positieve / negatieve getal met een arrayformule
Om het eerste positieve of negatieve getal uit een reeks waarden te extraheren, kunt u arrayformules in Excel gebruiken. Deze methode is geschikt voor gebruikers die een snelle oplossing nodig hebben voor gemiddelde databereiken en bekend zijn met formules, vooral in omgevingen waar extra invoegtoepassingen of macro's beperkt zijn. De arraybenadering wordt automatisch bijgewerkt als uw brongegevens veranderen, waardoor het ideaal is voor dynamische lijsten. Zo kunt u het implementeren:
1. Selecteer een lege cel, voer de volgende arrayformule in om het eerste positieve getal te krijgen:
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0))
Hier verwijst A2:A18 naar de datalijst waarin u wilt zoeken. Deze formule lokaliseert de eerste cel in het bereik met een waarde groter dan 0 en retourneert de inhoud van die cel. Zie de volgende schermafbeelding:
2. Druk na het typen van de formule gelijktijdig op Ctrl + Shift + Enter, in plaats van alleen op Enter. Dit zal de arrayformule correct uitvoeren en het eerste positieve getal uit uw lijst retourneren, zoals weergegeven in het onderstaande voorbeeld:
Tip: Om het eerste negatieve getal te verkrijgen, gebruikt u eenvoudigweg deze formule (vergeet niet om na het typen op Ctrl + Shift + Enter te drukken):
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
In beide formules kunt u door de voorwaarde te wijzigen (>0
voor positief, <0
voor negatief) het gewenste getaltype richten. Let op: arrayformules ondersteunen geen lege celverwijzingen, dus zorg ervoor dat uw databereik geen lege cellen bevat voor consistente resultaten. Als alle getallen positief of negatief zijn, kan de formule een fout retourneren—overweeg om een IFERROR
-functie toe te voegen als u fouten wilt onderdrukken en een aangepast bericht wilt weergeven.
Opmerking: In recente versies van Excel (Office 365 en Excel 2021 en later) hoeft u mogelijk Ctrl + Shift + Enter niet te gebruiken; het indrukken van Enter kan voldoende zijn vanwege ondersteuning voor dynamische arrays.
Zoek het laatste positieve / negatieve getal met een arrayformule
Als uw doel is om de laatste positieve of negatieve waarde in een kolom te identificeren, kunt u een andere arrayformule gebruiken. Deze aanpak is geschikt voor het snel analyseren van eindtrends of het lokaliseren van het meest recente datapunt van een specifiek type. Merk op dat deze methode gegevensupdates dynamisch weerspiegelt, wat vooral waardevol is wanneer u regelmatig nieuwe getallen aan de lijst toevoegt.
1. Selecteer een lege cel naast uw datakolom en voer deze arrayformule in om het laatste positieve getal te vinden:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Deze formule werkt door gebruik te maken van het gedrag van LOOKUP
om de laatste numerieke overeenkomst te retourneren voor een extreem groot getal. Hier filtert IF($A$2:$A$18 >0, $A$2:$A$18)
alleen de positieve getallen, en LOOKUP
retourneert vervolgens de laatste gevonden waarde. Zie hieronder voor een illustratie:
2. Bevestig de formule door op Ctrl + Shift + Enter te drukken (tenzij uw Excel-versie dynamische arrays ondersteunt). Het resultaat toont de laatste positieve waarde in het gespecificeerde bereik, zoals hieronder gedemonstreerd:
Gebruik de volgende arrayformule om het laatste negatieve getal te retourneren, ook met Ctrl + Shift + Enter:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18))
Als er geen positieve of negatieve waarde wordt gevonden, retourneert de formule een fout (#N/A
). Om dergelijke gevallen elegant af te handelen, kunt u de formule inpakken in IFERROR
. Bijvoorbeeld:
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
Het is belangrijk om samengevoegde cellen of gecombineerde tekst-/getalformaten in uw bereik te vermijden, omdat ze de berekeningsresultaten van de formule kunnen verstoren. Controleer altijd uw gegevensintegriteit voordat u deze methoden gebruikt voor de beste nauwkeurigheid.
VBA-macro om het eerste / laatste positieve / negatieve getal te vinden
Als u vaak het eerste of laatste positieve of negatieve getal in meerdere bereiken of zeer grote datasets moet vinden, kan het automatiseren van deze taak met een VBA-macro veel tijd besparen en handmatige fouten verminderen. Deze oplossing stelt u in staat om een geselecteerd bereik te doorzoeken en direct de vereiste waarde te verkrijgen, wat ideaal is voor batchverwerking of herhalende analysetaken. De VBA-aanpak is vooral nuttig in scenario's waar complexe criteria of aangepaste workflows nodig zijn, hoewel het wel basiskennis vereist van Excel's ontwikkeltools.
1. Klik op Ontwikkelaar > Visual Basic om het Microsoft Visual Basic for Applications-venster te openen. Klik vervolgens in de VBA-editor op Invoegen > Module en kopieer de volgende code in de nieuwe module:
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. Om de macro uit te voeren, druk F5 (of klik op de Uitvoeren knop), en volg deze stappen:
- Een dialoogvenster vraagt u om uw getalbereik te selecteren (bijvoorbeeld A2:A18).
- Voer vervolgens uw zoektype in: typ FirstPos voor het eerste positieve getal, FirstNeg voor het eerste negatieve getal, LastPos voor het laatste positieve getal of LastNeg voor het laatste negatieve getal (niet hoofdlettergevoelig).
- Na het invoeren van uw keuze en het bevestigen, wordt het resultaat weergegeven in een berichtenvenster.
Tips:
- Deze macro kan elk aaneengesloten getalbereik dat door de gebruiker is geselecteerd verwerken, wat flexibiliteit biedt in de indeling van de gegevens.
- Als het opgegeven type niet overeenkomt met een getal in het bereik, krijgt u een melding in plaats van een fout.
- Zorg ervoor dat macro's zijn ingeschakeld in uw Excel om de VBA-code te laten werken.
- Als uw gegevens niet-numerieke waarden bevatten, zal de macro deze tijdens de verwerking negeren.
Problemen oplossen en suggesties: Controleer bij alle oplossingen altijd of uw selectie het bedoelde bereik bevat en geen kopteksten omvat. Als u grote bereiken gebruikt, overweeg dan om de grootte te beperken om reken- of prestatievertragingen te voorkomen, vooral bij het gebruik van arrayformules of macro's.
Als u merkt dat u deze taak vaak uitvoert of meer aanpassingen wilt, overweeg dan om meerdere criteria in uw macro te combineren of een toegewijde knop te maken voor gemakkelijker toegang. Sla altijd uw werk op voordat u nieuwe VBA-scripts probeert en test op back-upkopieën als u nieuw bent in programmeren.
Gerelateerde artikelen:
Hoe het eerste / laatste getal groter dan X in Excel te vinden?
Hoe de hoogste waarde in een rij te vinden en de kolomkop terug te geven in Excel?
Hoe de hoogste waarde te vinden en de aangrenzende celwaarde terug te geven in Excel?
Hoe de max of min waarde te vinden op basis van criteria in Excel?
Beste productiviteitstools voor Office
Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!
Alle Kutools-invoegtoepassingen. Eén installatieprogramma
Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.





- Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
- Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
- 30 dagen volledige proef — geen registratie, geen creditcard nodig
- Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen