Excel IFERROR & VLOOKUP - fälla #N/A och andra fel

  • Dela Detta
Michael Brown

I den här handledningen kommer vi att titta på hur man använder IFERROR- och VLOOKUP-funktionerna tillsammans för att fånga upp och hantera olika fel. Dessutom kommer du att lära dig hur man gör sekventiella vlookups i Excel genom att hägna in flera IFERROR-funktioner på varandra.

Excel VLOOKUP och IFERROR - dessa två funktioner kan vara svåra att förstå var för sig, än mindre när de kombineras. I den här artikeln hittar du några lättförståeliga exempel som tar upp vanliga användningsområden och tydligt illustrerar formlarnas logik.

Om du inte har så mycket erfarenhet av IFERROR- och VLOOKUP-funktionerna kan det vara en bra idé att först gå igenom grunderna genom att följa länkarna ovan.

    IFERROR VLOOKUP-formel för att hantera #N/A och andra fel

    När Excel Vlookup misslyckas med att hitta ett uppslagsvärde visas ett #N/A-fel, till exempel så här:

    Beroende på dina affärsbehov kanske du vill dölja felet med egen text, noll eller en tom cell.

    Exempel 1. IFERROR med VLOOKUP-formeln för att ersätta fel med din egen text.

    Om du vill ersätta standardfelnotationen med din egen text kan du omsluta din VLOOKUP-formel med IFERROR och skriva vilken text du vill i det andra argumentet ( value_if_error ), till exempel "Not found":

    IFERROR(VLOOKUP( ... ), "Ej funnen")

    Med uppslagsvärdet i B2 i huvudtabellen och uppslagsintervallet A2:B4 i uppslagstabellen får formeln följande form:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "Not found")

    Skärmbilden nedan visar vår Excel-formel IFERROR VLOOKUP i praktiken:

    Resultatet ser mycket mer begripligt och mindre skrämmande ut, eller hur?

    På samma sätt kan du använda INDEX MATCH tillsammans med IFERROR:

    =IFERROR(INDEX('Lookup table'!$B$2:$B$5,MATCH(B2,'Lookup table'!$A$2:$A$5,0)), "Not found")

    Formeln IFERROR INDEX MATCH är särskilt användbar när du vill hämta värden från en kolumn som ligger till vänster om uppslagskolumnen (vänsteruppslag) och återge din egen text när inget hittas.

    Exempel 2. IFERROR med VLOOKUP för att returnera tomt eller 0 om inget hittas.

    Om du inte vill visa något när uppslagsvärdet inte hittas kan du låta IFERROR visa en tom sträng (""):

    IFERROR(VLOOKUP( ... ),"")

    I vårt exempel är formeln följande:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), "")

    Som du kan se returnerar den ingenting när uppslagsvärdet inte finns i söklistan.

    Om du vill ersätta felet med felet nollvärde , lägg in 0 i det sista argumentet:

    =IFERROR(VLOOKUP(B2,'Lookup table'!$A$2:$B$5, 2, FALSE), 0)

    Ett varningens ord! Excel IFERROR-funktionen fångar upp alla typer av fel, inte bara #N/A. Är det bra eller dåligt? Allt beror på ditt mål. Om du vill dölja alla möjliga fel är IFERROR Vlookup det bästa sättet att göra det, men det kan vara en oklokt teknik i många situationer.

    Om du till exempel har skapat ett namngivet intervall för tabelldata och stavat fel i din Vlookup-formel, kommer IFERROR att fånga upp ett #NAME?-fel och ersätta det med "Not found" eller annan text som du anger. Det innebär att du kanske aldrig vet att formeln ger fel resultat om du inte upptäcker stavfelet själv. I ett sådant fall är det rimligare att fånga upp endast #N/A-fel.Använd IFNA Vlookup-formeln i Excel 2013 och senare, IF ISNA VLOOKUP i alla Excel-versioner.

    Summan av kardemumman är: Var mycket försiktig när du väljer en följeslagare till din VLOOKUP-formel :)

    Nest IFERROR inom VLOOKUP för att alltid hitta något

    Föreställ dig följande situation: du letar upp ett visst värde i en lista och hittar det inte. Vad har du för valmöjligheter? Antingen får du ett N/A-fel eller så visar du ditt eget meddelande. Det finns faktiskt ett tredje alternativ - om din primära vlookup inte fungerar, sök då efter något annat som definitivt finns där!

    Om vi går vidare med vårt exempel kan vi skapa en slags instrumentpanel för våra användare som visar dem ett anknytningsnummer till ett visst kontor. Något liknande:

    Så hur tar du fram tillägget från kolumn B baserat på kontorsnumret i D2? Med den här vanliga Vlookup-formeln:

    =VLOOKUP($D$2,$A$2:$B$7,2,FALSE)

    Och det fungerar bra så länge dina användare anger ett giltigt nummer i D2. Men vad händer om en användare anger ett nummer som inte existerar? I det här fallet kan du låta dem ringa till centralkontoret! För att göra detta bäddar du in ovanstående formel i värde argumentet IFERROR och lägger en annan Vlookup i value_if_error argument.

    Den fullständiga formeln är lite lång, men den fungerar perfekt:

    =IFERROR(VLOOKUP("kontor"&$D$2,$A$2:$B$7,2,FALSE),VLOOKUP("centralkontor",$A$2:$B$7,2,FALSE))

    Om kontorsnumret hittas får användaren motsvarande anknytningsnummer:

    Om kontorsnumret inte hittas visas centralens anknytning:

    För att göra formeln lite mer kompakt kan du använda ett annat tillvägagångssätt:

    Kontrollera först om numret i D2 finns i kolumnen för uppslag (observera att vi har ställt in col_index_num till 1 för att formeln ska söka upp och återge värdet från kolumn A): VLOOKUP(D2,$A$2:$B$7,1,FALSE)

    Om det angivna kontorsnumret inte hittas, söker vi efter strängen "central office", som definitivt finns med i uppslagslistan. För att göra detta omsluter du den första VLOOKUP-funktionen med IFERROR och bäddar in hela denna kombination i en annan VLOOKUP-funktion:

    =VLOOKUP(IFERROR(VLOOKUP(D2,$A$2:$B$7,1,FALSE), "centralkontor"),$A$2:$B$7,2)

    En något annorlunda formel, men samma resultat:

    Men vad är skälet till att söka upp "centralkontor", undrar du kanske. Varför inte ange numret direkt i IFERROR? För att numret kan komma att ändras någon gång i framtiden. Om detta händer behöver du bara uppdatera uppgifterna en gång i källtabellen, utan att behöva tänka på att uppdatera alla dina VLOOKUP-formler.

    Hur man gör sekventiella VLOOKUPs i Excel

    I situationer där du behöver utföra den så kallade sekventiell eller . kedjade Vlookups i Excel beroende på om en tidigare sökning lyckades eller misslyckades, bota två eller flera IFERROR-funktioner för att köra dina Vlookups en efter en:

    IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), IFERROR(VLOOKUP( ... ), "Ej funnen")))))

    Formeln fungerar enligt följande logik:

    Om den första VLOOKUP:en inte hittar något, fångar den första IFERROR upp ett fel och kör en ny VLOOKUP. Om den andra VLOOKUP:en misslyckas, fångar den andra IFERROR upp ett fel och kör den tredje VLOOKUP:en, och så vidare. Om alla Vlookups misslyckas, returnerar den sista IFERROR:en ditt meddelande.

    Denna inbäddade IFERROR-formel är särskilt användbar när du måste göra en Vlookup över flera ark som visas i exemplet nedan.

    Låt oss säga att du har tre listor med homogena uppgifter i tre olika arbetsblad (kontorsnummer i det här exemplet) och att du vill få en förlängning för ett visst nummer.

    Om du antar att uppslagsvärdet finns i cell A2 i det aktuella arket och att uppslagsintervallet är A2:B5 i tre olika kalkylblad (nord, syd och väst), fungerar följande formel utmärkt:

    =IFERROR(VLOOKUP(A2,North!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,South!$A$2:$B$5,2,FALSE), IFERROR(VLOOKUP(A2,West!$A$2:$B$5,2,FALSE), "Not found"))))

    Så vår formel "chained Vlookups" söker i tre olika blad i den ordning vi har bäddat in dem i formeln och tar med den första matchningen som hittas:

    Så här använder du IFERROR med VLOOKUP i Excel. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Tillgängliga nedladdningar

    Excel IFERROR VLOOKUP-formel exempel

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.