Excel INDIRECT-funktion - grundlæggende anvendelser og eksempler på formler

  • Del Dette
Michael Brown

Denne Excel INDIRECT-vejledning forklarer funktionens syntaks, grundlæggende anvendelser og indeholder en række eksempler på formler, der viser, hvordan du bruger INDIRECT i Excel.

Der findes mange funktioner i Microsoft Excel, hvoraf nogle er lette at forstå, mens andre kræver en lang indlæringskurve, og førstnævnte bruges oftere end sidstnævnte. Alligevel er Excel INDIRECT en af slagsen. Denne Excel-funktion udfører ingen beregninger og evaluerer heller ikke nogen betingelser eller logiske tests.

Hvad er INDIRECT-funktionen i Excel, og hvad skal jeg bruge den til? Det er et meget godt spørgsmål, og forhåbentlig får du et omfattende svar om et par minutter, når du har læst denne vejledning færdig.

    Excel INDIRECT-funktion - syntaks og grundlæggende anvendelser

    Som navnet antyder, bruges Excel INDIRECT til indirekte at referere til celler, intervaller, andre ark eller regneark. Med andre ord giver INDIRECT-funktionen dig mulighed for at oprette en dynamisk celle- eller intervalreference i stedet for at indkode dem. Som følge heraf kan du ændre en reference i en formel uden at ændre selve formlen. Desuden ændres disse indirekte referencer ikke, når der kommer nye rækker eller kolonnerindsættes i regnearket, eller når du sletter eksisterende regneark.

    Alt dette er måske lettere at forstå ud fra et eksempel. Men for at kunne skrive en formel, selv den enkleste, skal du kende funktionens argumenter, ikke? Så lad os først se på Excel INDIRECT-syntaksen.

    Syntaks for INDIRECT-funktionen

    Funktionen INDIRECT i Excel returnerer en cellereference fra en tekststreng. Den har to argumenter, hvoraf det første er påkrævet og det andet er valgfrit:

    INDIRECT(ref_text, [a1])

    ref_text - er en cellereference eller en reference til en celle i form af en tekststreng eller et navngivet område.

    a1 - er en logisk værdi, der angiver, hvilken type reference der er indeholdt i ref_text-argumentet:

    • Hvis den er TRUE eller udelades, fortolkes ref_text som en A1-lignende cellehenvisning.
    • Hvis FALSE, behandles ref_text som en R1C1-reference.

    Selv om R1C1-referencetypen kan være nyttig i visse situationer, vil du sandsynligvis bruge de velkendte A1-referencer det meste af tiden. Næsten alle INDIRECT-formler i denne vejledning vil bruge A1-referencer, så vi udelader det andet argument.

    Grundlæggende brug af INDIRECT-funktionen

    Lad os skrive en simpel formel, der viser, hvordan du bruger INDIRECT i Excel, for at få indsigt i funktionen.

    Antag, at du har nummer 3 i celle A1, og teksten A1 i celle C1. Indsæt nu formlen =INDIRECT(C1) i en hvilken som helst anden celle og se, hvad der sker:

    • Funktionen INDIRECT henviser til værdien i celle C1, som er A1.
    • Funktionen sendes til celle A1, hvor den vælger den værdi, der skal returneres, som er nummer 3.

    Så det, som INDIRECT-funktionen faktisk gør i dette eksempel, er konvertering af en tekststreng til en cellereference .

    Hvis du synes, at dette stadig ikke giver meget praktisk mening, så vær tålmodig, og jeg vil vise dig nogle flere formler, der afslører den virkelige styrke af Excel INDIRECT-funktionen.

    Sådan bruger du INDIRECT i Excel - eksempler på formler

    Som vist i ovenstående eksempel kan du bruge Excel-funktionen INDIRECT til at sætte adressen på en celle ind i en anden celle som en almindelig tekststreng og få værdien af den første celle ved at henvise til den anden celle. Dette trivielle eksempel er dog ikke mere end et hint om INDIRECT-funktionen.

    Når du arbejder med rigtige data, kan INDIRECT-funktionen forvandle enhver tekststreng til en reference, herunder meget komplekse strenge, som du opbygger ved hjælp af værdierne i andre celler og resultater, der returneres af andre Excel-formler. Men lad os ikke sætte vognen foran hesten og gennemgå flere Excel Indirect-formler, én ad gangen.

    Oprettelse af indirekte referencer fra celleværdier

    Som du husker, giver Excel-funktionen INDIRECT mulighed for A1- og R1C1-referencestile. Normalt kan du ikke bruge begge stilarter i et enkelt ark ad gangen, du kan kun skifte mellem de to referencetyper via Fil> Indstillinger> Formler > afkrydsningsfelt R1C1 Dette er grunden til, at Excel-brugere sjældent overvejer at bruge R1C1 som en alternativ referencemetode.

    I en INDIRECT-formel kan du bruge begge referencetyper på det samme ark, hvis du vil. Før vi går videre, vil du måske gerne kende forskellen mellem A1- og R1C1-referencestilerne.

    A1 stil er den sædvanlige referencetype i Excel, der henviser til en kolonne efterfulgt af et rækketal. B2 henviser f.eks. til cellen i skæringspunktet mellem kolonne B og række 2.

    R1C1 stil er den modsatte referencetype - rækker efterfulgt af kolonner, hvilket kræver lidt tilvænning : ) F.eks. henviser R4C1 til celle A4, som ligger i række 4, kolonne 1 i et ark. Hvis der ikke kommer noget tal efter bogstavet, henviser du til den samme række eller kolonne.

    Lad os nu se, hvordan INDIRECT-funktionen håndterer A1- og R1C1-referencer:

    Som du kan se på skærmbilledet ovenfor, giver tre forskellige indirekte formler det samme resultat. Har du allerede regnet ud hvorfor? Det har du sikkert : )

    • Formel i celle D1: =INDIRECT(C1)

    Dette er den nemmeste. Formlen henviser til celle C1, henter dens værdi - tekststrengen A2 , konverterer den til en cellereference, går over til celle A2 og returnerer dens værdi, som er 222.

    • Formel i celle D3: =INDIRECT(C3,FALSE)

    FALSE i det andet argument angiver, at den henviste værdi (C3) skal behandles som en R1C1-cellehenvisning, dvs. et rækketal efterfulgt af et kolonnetal. Derfor fortolker vores INDIRECT-formel værdien i celle C3 (R2C1) som en henvisning til cellen ved sammenfaldet af række 2 og kolonne 1, som er celle A2.

    Oprettelse af indirekte referencer fra celleværdier og tekst

    På samme måde som vi skabte referencer fra celleværdier, kan du kombinere en tekststreng og en celle reference i din INDIRECT-formel, bundet sammen med sammenkædningsoperatoren (&).

    I det følgende eksempel returnerer formlen: =INDIRECT("B"&C2) en værdi fra celle B2 baseret på følgende logiske kæde:

    INDIRECT-funktionen sammenkæder elementerne i ref_text-argumentet - text B og værdien i celle C2 -> værdien i celle C2 er nummer 2, hvilket giver en henvisning til celle B2 -> formlen går til celle B2 og returnerer dens værdi, som er nummer 10.

    Brug af funktionen INDIRECT med navngivne intervaller

    Ud over at lave referencer fra celle- og tekstværdier kan du få Excel-funktionen INDIRECT til at henvise til navngivne intervaller .

    Antag, at du har følgende navngivne intervaller i dit ark:

    • Æbler - B2:B6
    • Bananer - C2:C6
    • Citroner - D2:D6

    Hvis du vil oprette en dynamisk Excel-reference til et af de ovennævnte navngivne områder, skal du blot indtaste navnet i en celle, f.eks. G1, og henvise til den celle fra en Indirekte formel =INDIRECT(G1) .

    Og nu kan du tage et skridt videre og indlejre denne INDIRECT-formel i andre Excel-funktioner for at beregne summen og gennemsnittet af værdierne i et givet navngivet område eller finde den maksimale / minimale værdi inden for området:

    • =SUM(INDIREKTE(G1))
    • =GENNEMSNIT(INDIREKTE(G1))
    • =MAX(INDIREKTE(G1))
    • =MIN(INDIREKTE(G1))

    Nu hvor du har fået en generel idé om, hvordan du kan bruge INDIRECT-funktionen i Excel, kan vi eksperimentere med mere effektive formler.

    INDIRECT-formel til dynamisk at henvise til et andet regneark

    Nytten af Excel-funktionen INDIRECT er ikke begrænset til at opbygge "dynamiske" cellehenvisninger. Du kan også bruge den til at henvise til celler i andre regneark "on the fly", og her er hvordan.

    Antag, at du har nogle vigtige data i ark 1, og at du ønsker at trække disse data ud i ark 2. Følgende skærmbillede viser, hvordan en Excel Indirect-formel kan håndtere denne opgave:

    Lad os skille formlen, som du ser på skærmbilledet, ad og forstå den.

    Som du ved, er den sædvanlige måde at referere til et andet ark i Excel at skrive arkets navn efterfulgt af et udråbstegn og en celle/område reference, som f.eks. SheetName!Range Da et arknavn ofte indeholder et eller flere mellemrum, er det bedre at omslutte det (navnet, ikke et mellemrum : ) i anførselstegn for at undgå en fejl, f.eks. "Mit ark!"$A$1 .

    Nu skal du blot indtaste arknavnet i en celle og celleadressen i en anden celle, sammenkæde dem i en tekststreng og sende denne streng til INDIRECT-funktionen. Husk, at du i en tekststreng skal omslutte hvert element, bortset fra en celleadresse eller et nummer, med dobbelte anførselstegn og sammenkæde alle elementer ved hjælp af sammenkædningsoperatoren (&).

    På baggrund af ovenstående får vi følgende mønster:

    INDIRECT("'" & Navnet på arket & "'!" & Celle til at trække data fra )

    Hvis du vender tilbage til vores eksempel, skal du skrive arkets navn i celle A1 og skrive celleadresserne i kolonne B, som vist i skærmbilledet ovenfor. Resultatet er følgende formel:

    INDIRECT("'" & $A$1 & "'!" & B1)

    Vær også opmærksom på, at hvis du kopierer formlen til flere celler, skal du låse referencen til arkets navn ved hjælp af absolutte cellehenvisninger som f.eks. $A$1.

    Noter

    • Hvis en af de celler, der indeholder det andet arks navn og celleadresse (A1 og B1 i ovenstående formel), er tom, vil din Indirect-formel returnere en fejl. For at forhindre dette kan du indpakke INDIRECT-funktionen i IF-funktionen:

      IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1)))

    • For at INDIRECT-formlen, der henviser til et andet ark, kan fungere korrekt, skal det ark, der henvises til, være åbent, ellers returnerer formlen en #REF-fejl. For at undgå fejlen kan du bruge IFERROR-funktionen, som vil vise en tom streng, uanset hvilken fejl der opstår:

      IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")

    Oprettelse af en dynamisk Excel-reference til en anden projektmappe

    Den indirekte formel, der henviser til en anden Excel-arbejdsbog, er baseret på samme fremgangsmåde som en henvisning til et andet regneark. Du skal blot angive arbejdsbogens navn ud over arknavnet og celleadressen.

    For at gøre tingene nemmere starter vi med at lave en henvisning til en anden bog på den sædvanlige måde (der tilføjes apostroffer, hvis din bog og/eller dit ark indeholder mellemrum):

    '[Book_name.xlsx]Sheet_name'!Range

    Hvis vi antager, at bogens navn er i celle A2, arknavnet er i B2, og celleadressen er i C2, får vi følgende formel:

    =INDIRECT("''[" & $A$2 & "]" & $B$2 & "'!" & C2)

    Da du ikke ønsker, at de celler, der indeholder bogens og arkets navne, skal ændres, når du kopierer formlen til andre celler, låser du dem ved at bruge absolutte cellehenvisninger, henholdsvis $A$2 og $B$2.

    Og nu kan du nemt skrive din egen dynamiske reference til en anden Excel-arbejdsbog ved at bruge følgende mønster:

    =INDIRECT("''[" & Bogens navn & "]" & Navn på arket & "'!" & Celleadresse )

    Bemærk: Den projektmappe, som din formel henviser til, skal altid være åben, ellers vil INDIRECT-funktionen give en #REF-fejl. Som sædvanlig kan IFERROR-funktionen hjælpe dig med at undgå det:

    =IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")

    Brug af Excel INDIRECT-funktionen til at låse en cellehenvisning

    Normalt ændrer Microsoft Excel cellehenvisninger, når du indsætter nye eller sletter eksisterende rækker eller kolonner i et ark. For at forhindre dette kan du bruge funktionen INDIRECT til at arbejde med cellehenvisninger, der under alle omstændigheder skal forblive intakte.

    For at illustrere forskellen kan du gøre følgende for at vise forskellen:

    1. Indtast en hvilken som helst værdi i en hvilken som helst celle, f.eks. tal 20 i celle A1.
    2. Henvis til A1 fra to andre celler på forskellige måder: =A1 og =INDIRECT("A1")
    3. Indsæt en ny række over række 1.

    Se, hvad der sker: cellen med den er lig med logiske operatør returnerer stadig 20, fordi formlen automatisk er blevet ændret til =A2. Cellen med INDIRECT-formlen returnerer nu 0, fordi formlen ikke blev ændret, da der blev indsat en ny række, og den refererer stadig til celle A1, som i øjeblikket er tom:

    Efter denne demonstration har du måske indtryk af, at INDIRECT-funktionen er mere til besvær end til hjælp. Okay, lad os prøve det på en anden måde.

    Hvis du vil summere værdierne i cellerne A2:A5, kan du nemt gøre dette ved hjælp af funktionen SUM:

    =SUM(A2:A5)

    Du ønsker imidlertid, at formlen skal forblive uændret, uanset hvor mange rækker der slettes eller indsættes. Den mest indlysende løsning - brugen af absolutte referencer - hjælper ikke. For at sikre dig, skal du indtaste formlen =SUM($A$2:$A$5) i en celle, indsæt en ny række, f.eks. i række 3, og... find formlen konverteret til =SUM($A$2:$A$6) .

    Selvfølgelig vil en sådan høflighed fra Microsoft Excel fungere fint i de fleste tilfælde. Ikke desto mindre kan der være scenarier, hvor du ikke ønsker, at formlen ændres automatisk. Løsningen er at bruge INDIRECT-funktionen, som her:

    =SUM(INDIREKTE("A2:A5"))

    Da Excel opfatter "A1:A5" som en ren tekststreng og ikke som en intervalreference, vil den ikke foretage nogen ændringer, når du indsætter eller sletter en række eller flere rækker.

    Brug af INDIRECT med andre Excel-funktioner

    Ud over SUM anvendes INDIRECT ofte sammen med andre Excel-funktioner som ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, for blot at nævne nogle få.

    Eksempel 1. INDIRECT- og ROW-funktioner

    Ofte bruges ROW-funktionen i Excel til at returnere et array af værdier. Du kan f.eks. bruge følgende array-formel (husk, at du skal trykke på Ctrl + Shift + Enter ) til at returnere gennemsnittet af de 3 mindste tal i intervallet A1:A10:

    =GENNEMSNIT(SMALL(A1:A10,ROW(1:3)))

    Men hvis du indsætter en ny række i regnearket mellem række 1 og 3, ændres intervallet i ROW-funktionen til ROW(1:4), og formlen returnerer gennemsnittet af de 4 mindste tal i stedet for 3.

    For at forhindre dette, skal du indsætte INDIRECT i ROW-funktionen, så vil din arrayformel altid være korrekt, uanset hvor mange rækker der indsættes eller slettes:

    =GENNEMSNIT(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Her er endnu et par eksempler på brug af INDIRECT og ROW sammen med LARGE-funktionen: Sådan summeres N største tal i et interval.

    Eksempel 2. INDIRECT- og ADDRESS-funktioner

    Du kan bruge Excel INDIRECT sammen med ADDRESS-funktionen til at få en værdi i en bestemt celle i farten.

    Som du måske husker, bruges ADDRESS-funktionen i Excel til at få en celleadresse ved hjælp af række- og kolonnenumre. For eksempel kan formlen =ADRESSE(1,3) returnerer strengen $C$1, da C1 er cellen i skæringspunktet mellem den første række og den tredje kolonne.

    Hvis du vil oprette en indirekte cellehenvisning, skal du blot indlejre ADDRESS-funktionen i en INDIRECT-formel på følgende måde:

    =INDIRECT(ADRESSE(1,3))

    Denne trivielle formel viser naturligvis kun teknikken, og her er et par eksempler, som kan vise sig at være meget nyttige:

    • INDIRECT ADDRESS-formel - hvordan du skifter mellem rækker og kolonner.
    • VLOOKUP og INDIRECT - hvordan du dynamisk henter data fra forskellige ark.
    • INDIRECT med INDEX / MATCH - hvordan du gør en VLOOKUP-formel, der tager hensyn til store og små bogstaver, perfekt.
    • Excel INDIRECT og COUNTIF - hvordan du bruger funktionen COUNTIF på et ikke sammenhængende område eller et udvalg af celler.

    Brug af INDIRECT med datavalidering i Excel

    Du kan bruge Excel-funktionen INDIRECT sammen med datavalidering til at oprette dropdown-lister i kaskadeform, der viser forskellige valgmuligheder afhængigt af den værdi, brugeren har valgt i den første dropdown-liste.

    En simpel afhængig drop-down-liste er virkelig nem at lave. Det kræver blot et par navngivne intervaller til at gemme drop-down-listens elementer og en simpel =INDIRECT(A2) formel, hvor A2 er den celle, der viser din første rulleliste.

    Hvis du vil lave mere komplekse 3-niveau-menuer eller drop-downs med flere ord, skal du bruge en lidt mere kompleks INDIRECT-formel med en indlejret SUBSTITUTE-funktion.

    Du kan få en detaljeret trin-for-trin vejledning om, hvordan du bruger INDIRECT med Excel Data Validation, ved at læse denne vejledning: Sådan laver du en afhængig drop down-liste i Excel.

    Excel INDIRECT-funktion - mulige fejl og problemer

    Som det fremgår af ovenstående eksempler, er INDIRECT-funktionen meget nyttig, når der er tale om celle- og områdehenvisninger. Det er dog ikke alle Excel-brugere, der tager den ivrigt til sig, hovedsagelig fordi omfattende brug af INDIRECT i Excel-formler resulterer i manglende gennemsigtighed. INDIRECT-funktionen er vanskelig at gennemgå, da den celle, den henviser til, ikke er den endelige placering af den værdi, der anvendes i formlen,hvilket er ret forvirrende, især når man arbejder med store komplekse formler.

    Ud over ovenstående kan INDIRECT ligesom enhver anden Excel-funktion give en fejl, hvis du misbruger funktionens argumenter. Her er en liste over de mest typiske fejl:

    Excel INDIRECT #REF! fejl

    Oftest returnerer INDIRECT-funktionen en #REF!-fejl i tre tilfælde:

    1. ref_text er ikke en gyldig cellereference Hvis ref_text-parameteren i din Indirect-formel ikke er en gyldig cellehenvisning, vil formlen resultere i fejlværdien #REF! For at undgå eventuelle problemer skal du kontrollere INDIRECT-funktionens argumenter.
    2. Grænsen for området er overskredet Hvis ref_text-argumentet i din Indirect-formel henviser til et område af celler, der overskrider rækkegrænsen på 1.048.576 eller kolonnegrænsen på 16.384, får du også #REF-fejlen i Excel 2007, 2010 og Excel 2013. Tidligere Excel-versioner ignorerer den overskredne grænse og returnerer en værdi, men ofte ikke den, du forventer.
    3. Det pågældende ark eller den pågældende projektmappe er lukket. Hvis din Indirect-formel henviser til en anden Excel-arbejdsbog eller et andet regneark, skal den anden arbejdsbog/det andet regneark være åbent, ellers returnerer INDIRECT fejlen #REF!

    Excel INDIRECT #NAME? fejl

    Dette er det mest indlysende tilfælde, hvilket indebærer, at der er en fejl i funktionens navn, hvilket fører os til det næste punkt : )

    Brug af INDIRECT-funktionen i ikke-engelske sprogområder

    Du vil måske være nysgerrig efter at vide, at det engelske navn på INDIRECT-funktionen er blevet oversat til 14 sprog, herunder:

    • Dansk - INDIREKTE
    • Finsk - EPÄSUORA
    • Tysk - INDIREKT
    • Ungarsk - INDIREKT
    • Italiensk - INDIRETTO
    • Norsk - INDIREKTE
    • Polsk - ADR.POŚR
    • Spansk - INDIRECTO
    • Svensk - INDIREKT
    • Tyrkisk - DOLAYLI

    Hvis du er interesseret i at få den fulde liste, kan du se på denne side.

    Et almindeligt problem med ikke-engelske lokaliseringer er ikke navnet på INDIRECT-funktionen, men snarere forskellige Regionale indstillinger for den Liste separator I standardkonfigurationen af Windows for Nordamerika og nogle andre lande er standardindstillingen Liste separator er et komma. I de europæiske lande er kommaet forbeholdt som Decimalsymbol og Liste separator er sat til semikolon.

    Når du kopierer en formel mellem to forskellige Excel-regneark, kan du derfor få fejlmeddelelsen " Vi har fundet et problem med denne formel... ", fordi den Liste separator Hvis du støder på denne fejl, når du kopierer en INDIRECT-formel fra denne vejledning til din Excel, skal du blot erstatte alle kommaer (,) med semikolon (;) for at få det rettet.

    Hvis du vil kontrollere, hvilket listeadskillelses- og decimalsymbol der er indstillet på din maskine, skal du åbne Kontrolpanel , og gå til Region og sprog> Yderligere indstillinger .

    Forhåbentlig har denne vejledning kastet lidt lys over brugen af INDIRECT i Excel. Nu hvor du kender dens styrker og begrænsninger, er det tid til at prøve den og se, hvordan INDIRECT-funktionen kan forenkle dine Excel-opgaver. Tak for at du læste med!

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.