Excel OFFSET-funktion - eksempler på formler og anvendelser

  • Del Dette
Michael Brown

I denne vejledning vil vi kaste lidt lys over en af de mest mystiske indbyggere i Excel-universet - OFFSET-funktionen.

Hvad er OFFSET i Excel? OFFSET-formlen returnerer kort fortalt en reference til et område, der er forskudt fra en startcelle eller et område af celler med et bestemt antal rækker og kolonner.

OFFSET-funktionen kan være lidt vanskelig at forstå, så lad os først gennemgå en kort teknisk forklaring (jeg vil gøre mit bedste for at holde det enkelt), og derefter vil vi gennemgå nogle af de mest effektive måder at bruge OFFSET på i Excel.

    Excel OFFSET-funktion - syntaks og grundlæggende anvendelser

    Funktionen OFFSET i Excel returnerer en celle eller et område af celler, der ligger et givet antal rækker og kolonner fra en given celle eller et givet område.

    Syntaksen for OFFSET-funktionen er som følger:

    OFFSET(reference, rækker, kolonner, [højde], [bredde])

    De tre første argumenter er obligatoriske, og de to sidste er valgfrie. Alle argumenter kan være henvisninger til andre celler eller resultater, der returneres af andre formler.

    Det ser ud til, at Microsoft har gjort en god indsats for at give parametrenes navne en vis betydning, og de giver et hint om, hvad du skal angive i hver enkelt parameter.

    Krævede argumenter:

    • Henvisning - en celle eller et område af tilstødende celler, som du baserer forskydningen på. Du kan betragte det som startpunktet.
    • Rækker - Antallet af rækker, der skal flyttes fra startpunktet, opad eller nedad. Hvis rows er et positivt tal, flyttes formlen under startreferencen, hvis der er tale om et negativt tal, går den over startreferencen.
    • Cols - Det antal kolonner, som formlen skal flytte fra startpunktet. Ligesom rækker kan kolonner være positive (til højre for startreferencen) eller negative (til venstre for startreferencen).

    Valgfrie argumenter:

    • Højde - antallet af rækker, der skal returneres.
    • Bredde - antallet af kolonner, der skal returneres.

    Både højde- og breddeargumenterne skal altid være positive tal. Hvis et af argumenterne udelades, er standardværdien højden eller bredden for reference .

    Bemærk. OFFSET er en flygtig funktion og kan gøre dit regneark langsommere. Langsommeligheden er direkte proportional med antallet af celler, der genberegnes.

    Lad os nu illustrere teorien med et eksempel på den enkleste OFFSET-formel.

    Excel OFFSET-formel eksempel

    Her er et eksempel på en simpel OFFSET-formel, der returnerer en cellehenvisning baseret på et startpunkt, rækker og kolonner, som du angiver:

    =OFFSET(A1,3,1)

    Formlen fortæller Excel at tage celle A1 som udgangspunkt (reference) og derefter flytte 3 rækker nedad (argumentet rows) og 1 kolonne til venstre (argumentet cols). Resultatet er, at denne OFFSET-formel returnerer værdien i celle B4.

    Billedet til venstre viser funktionens rute, og skærmbilledet til højre viser, hvordan du kan bruge OFFSET-formlen på virkelige data. Den eneste forskel mellem de to formler er, at den anden (til højre) indeholder en cellereference (E1) i argumentet rows. Men da celle E1 indeholder nummer 3, og nøjagtig det samme nummer vises i argumentet rows i den første formel,begge ville give det samme resultat - værdien i B4.

    Excel OFFSET-formler - ting du skal huske

    • OFFSET-funktionen i Excel flytter faktisk ikke nogen celler eller intervaller, den returnerer blot en reference.
    • Når en OFFSET-formel returnerer et område af celler, henviser argumenterne rows og cols altid til den øverste venstre celle i det returnerede område.
    • Referenceargumentet skal indeholde en celle eller et område af tilstødende celler, ellers returnerer din formel fejlen #VALUE!.
    • Hvis de angivne rækker og/eller kolonner flytter en reference ud over kanten af regnearket, returnerer din Excel OFFSET-formel fejlen #REF!
    • OFFSET-funktionen kan bruges i enhver anden Excel-funktion, der accepterer en celle-/områdehenvisning i sine argumenter.

    Hvis du f.eks. forsøger at bruge formlen =OFFSET(A1,3,1,1,1,3) i sig selv, vil den give en #VALUE! fejl, da et område, der skal returneres (1 række, 3 kolonner), ikke passer ind i en enkelt celle. Men hvis du indlejrer den i funktionen SUM, som her:

    =SUM(OFFSET(A1,3,1,1,1,3))

    Formlen returnerer summen af værdierne i et område med 1 række og 3 kolonner, der ligger 3 rækker under og 1 kolonne til højre for celle A1, dvs. summen af værdierne i cellerne B4:D4.

    Hvorfor bruger jeg OFFSET i Excel?

    Nu hvor du ved, hvad OFFSET-funktionen gør, spørger du måske dig selv: "Hvorfor bruge den?" Hvorfor ikke bare skrive en direkte reference som B4:D4?

    Excel OFFSET-formlen er rigtig god til:

    Oprettelse af dynamiske intervaller : Referencer som B1:C4 er statiske, hvilket betyder, at de altid henviser til et bestemt område. Men nogle opgaver er nemmere at udføre med dynamiske områder. Dette er især tilfældet, når du arbejder med skiftende data, f.eks. hvis du har et regneark, hvor der tilføjes en ny række eller kolonne hver uge.

    Hentning af området fra startcellen Nogle gange kender du måske ikke den faktiske adresse på området, selv om du ved, at det starter fra en bestemt celle. I sådanne scenarier er det den rigtige måde at bruge OFFSET i Excel på.

    Sådan bruger du OFFSET-funktionen i Excel - eksempler på formler

    Jeg håber ikke, at du er blevet træt af så meget teori. Nå, men nu kommer vi til den mest spændende del - den praktiske anvendelse af OFFSET-funktionen.

    Excel OFFSET- og SUM-funktioner

    Det eksempel, vi diskuterede for et øjeblik siden, viser den enkleste brug af OFFSET & SUM. Lad os nu se på disse funktioner fra en anden vinkel og se, hvad de ellers kan gøre.

    Eksempel 1. En dynamisk SUM / OFFSET-formel

    Når du arbejder med regneark, der opdateres løbende, kan du have brug for en SUM-formel, der automatisk vælger alle nyligt tilføjede rækker.

    Lad os antage, at du har kildedata svarende til det, du ser på skærmbilledet nedenfor. Hver måned tilføjes en ny række lige over SUM-formlen, og du vil naturligvis gerne have den med i totalen. Der er to muligheder - enten opdaterer du intervallet i SUM-formlen manuelt hver gang eller lader OFFSET-formlen gøre det for dig.

    Da den første celle i det område, der skal summeres, angives direkte i SUM-formlen, skal du kun beslutte parametrene for Excel OFFSET-funktionen, som vil hente den sidste celle i området:

    • Henvisning - den celle, der indeholder totalen, B9 i vores tilfælde.
    • Rækker - cellen lige over totalen, som kræver det negative tal -1.
    • Cols - den er 0, fordi du ikke ønsker at ændre kolonnen.

    Så her kommer SUM / OFFSET-formelmønsteret:

    =SUM( første celle :(OFFSET( celle med samlet , -1,0)

    I ovenstående eksempel ser formlen ud som følger:

    =SUM(B2:(OFFSET(B9, -1, 0)))

    Og som vist i nedenstående skærmbillede fungerer det upåklageligt:

    Eksempel 2. Excel OFFSET-formel til at summere de sidste N rækker

    I ovenstående eksempel antager vi, at du ønsker at kende beløbet for bonusser for de sidste N måneder i stedet for det samlede beløb. Du ønsker også, at formlen automatisk skal inkludere alle nye rækker, du tilføjer til arket.

    Til denne opgave skal vi bruge Excel OFFSET i kombination med funktionerne SUM og COUNT / COUNTA:

    =SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    eller

    =SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))

    De følgende oplysninger kan hjælpe dig med at forstå formlerne bedre:

    • Henvisning - overskriften på den kolonne, hvis værdier du vil summere, celle B1 i dette eksempel.
    • Rækker - for at beregne antallet af rækker, der skal forskydes, skal du bruge enten funktionen COUNT eller COUNTA.

      COUNT returnerer antallet af celler i kolonne B, der indeholder tal, hvorfra du trækker de sidste N måneder fra (tallet er celle E1) og lægger 1 til.

      Hvis COUNTA er din foretrukne funktion, behøver du ikke at tilføje 1, da denne funktion tæller alle ikke-tomme celler, og en overskriftsrække med en tekstværdi tilføjer en ekstra celle, som vores formel har brug for. Bemærk venligst, at denne formel kun fungerer korrekt i en lignende tabelstruktur - en overskriftsrække efterfulgt af rækker med tal. For andre tabelopstillinger kan det være nødvendigt at foretage nogle justeringer iOFFSET/COUNTA-formlen.

    • Cols - antallet af kolonner, der skal forskydes, er nul (0).
    • Højde - antallet af rækker, der skal summeres, er angivet i E1.
    • Bredde - 1 kolonne.

    Brug af OFFSET-funktionen med AVERAGE, MAX, MIN

    På samme måde som vi beregnede bonusserne for de sidste N måneder, kan du få et gennemsnit af de sidste N dage, uger eller år og finde deres maksimum- eller minimumsværdier. Den eneste forskel mellem formlerne er navnet på den første funktion:

    =GENNEMSNIT(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MAX(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    =MIN(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))

    Den vigtigste fordel ved disse formler i forhold til de sædvanlige formler AVERAGE(B5:B8) eller MAX(B5:B8) er, at du ikke behøver at opdatere formlen, hver gang din kildetabel opdateres. Uanset hvor mange nye rækker der tilføjes eller slettes i dit regneark, vil OFFSET-formlerne altid henvise til det angivne antal sidste (nederste) celler i kolonnen.

    Excel OFFSET-formel til at skabe et dynamisk område

    OFFSET-funktionen kan sammen med COUNTA hjælpe dig med at lave et dynamisk interval, som kan være nyttigt i mange scenarier, f.eks. til at oprette automatisk opdaterede drop-down-lister.

    OFFSET-formlen for et dynamisk område er som følger:

    =OFFSET(Sheet_Name!$A$1, 0, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)

    Kernen i denne formel er, at du bruger funktionen COUNTA til at få antallet af ikke-tomme celler i målkolonnen. Dette tal går til højdeargumentet i OFFSET, som anviser, hvor mange rækker der skal returneres.

    Bortset fra det er det en almindelig Offset-formel, hvor:

    • Henvisning er det udgangspunkt, som du baserer forskydningen på, f.eks. Sheet1!$A$1.
    • Rækker og Cols er begge 0, fordi der ikke er nogen kolonner eller rækker, der skal forskydes.
    • Bredde er 1 kolonne.

    Bemærk: Hvis du opretter et dynamisk område i det aktuelle ark, er det ikke nødvendigt at medtage arknavnet i referencerne, da Excel gør det automatisk for dig, når du opretter det navngivne område. Ellers skal du sørge for at medtage arkets navn efterfulgt af et udråbstegn, som i dette eksempel på en formel.

    Når du har oprettet et dynamisk navngivet område med ovenstående OFFSET-formel, kan du bruge datavalidering til at lave en dynamisk rulleliste, der opdateres automatisk, så snart du tilføjer eller fjerner elementer fra kildelisten.

    Du kan få detaljeret trin-for-trin vejledning i at oprette drop-down-lister i Excel ved at se følgende vejledninger:

    • Oprettelse af drop-down-lister i Excel - statisk, dynamisk, fra en anden arbejdsbog
    • Oprettelse af en afhængig rulleliste

    Excel OFFSET & VLOOKUP

    Som alle ved, udføres simple vertikale og horisontale opslag med henholdsvis VLOOKUP- og HLOOKUP-funktionen. Disse funktioner har dog for mange begrænsninger og snubler ofte i mere kraftfulde og komplekse opslagsformler. Så for at udføre mere sofistikerede opslag i dine Excel-tabeller skal du søge efter alternativer som INDEX, MATCH og OFFSET.

    Eksempel 1. OFFSET-formel for en venstre Vlookup i Excel

    En af de mest berygtede begrænsninger ved VLOOKUP-funktionen er, at den ikke kan se til venstre, hvilket betyder, at VLOOKUP kun kan returnere en værdi til højre for opslagskolonnen.

    I vores eksempel på en opslagstabel er der to kolonner - månedsnavne (kolonne A) og bonusser (kolonne B). Hvis du ønsker at få en bonus for en bestemt måned, vil denne enkle VLOOKUP-formel fungere uden problemer:

    =VLOOKUP(B1, A5:B11, 2, FALSE)

    Men så snart du bytter kolonnerne i opslagstabellen, vil dette straks resultere i en #N/A-fejl:

    For at håndtere et opslag på venstre side har du brug for en mere alsidig funktion, der ikke er så meget interesseret i, hvor returkolonnen befinder sig. En af de mulige løsninger er at bruge en kombination af INDEX- og MATCH-funktionerne. En anden metode er at bruge OFFSET, MATCH og ROWS:

    OFFSET( opslagstabel , MATCH( opslagsværdi , OFFSET( opslagstabel , 0, lookup_col_offset , ROWS( opslagstabel ), 1) ,0) -1, return_col_offset , 1, 1)

    Hvor:

    • Lookup_col_offset - er antallet af kolonner, der skal flyttes fra startpunktet til opslagskolonnen.
    • Return_col_offset - er antallet af kolonner, der skal flyttes fra startpunktet til den tilbagevendende kolonne.

    I vores eksempel er opslagstabellen A5:B9, og opslagsværdien er i celle B1, forskydningen i opslagskolonnen er 1 (fordi vi søger efter opslagsværdien i den anden kolonne (B), skal vi flytte 1 kolonne til højre fra tabellens begyndelse), forskydningen i returkolonnen er 0, fordi vi returnerer værdier fra den første kolonne (A):

    =OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1, 1)

    Jeg ved godt, at formlen ser lidt klodset ud, men den virker :)

    Eksempel 2. Sådan laver du et overordnet opslag i Excel

    Som det er tilfældet med VLOOKUP, der ikke kan se til venstre, kan dens horisontale modstykke - HLOOKUP-funktionen - ikke se opad for at returnere en værdi.

    Hvis du har brug for at scanne en øverste række for match, kan formlen OFFSET MATCH igen hjælpe dig, men denne gang skal du forbedre den med funktionen COLUMNS, som her:

    OFFSET( opslagstabel , return_row_offset , MATCH( opslagsværdi , OFFSET( opslagstabel , lookup_row_offset , 0, 1, KOLONNER( opslagstabel )), 0) -1, 1, 1)

    Hvor:

    • Lookup_row_offset - antallet af rækker, der skal flyttes fra startpunktet til opslagsrækken.
    • Return_row_offset - antallet af rækker, der skal flyttes fra startpunktet til den tilbagevendende række.

    Hvis vi antager, at opslagstabellen er B4:F5, og at opslagsværdien er i celle B1, lyder formlen som følger:

    =OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 0, 1, COLUMNS(B4:F5))), 0) -1, 1, 1, 1)

    I vores tilfælde er forskellen mellem opslagsrækkerne 1, fordi vores opslagsinterval er 1 række nedad fra startpunktet, og forskellen mellem returrækkerne er 0, fordi vi returnerer match fra den første række i tabellen.

    Eksempel 3. Tovejssøgning (efter kolonne- og rækkeværdier)

    Tovejs-opslag returnerer en værdi baseret på overenskomster i både rækker og kolonner. Og du kan bruge følgende formel for dobbeltopslagsarray til at finde en værdi i skæringspunktet mellem en bestemt række og kolonne:

    =OFFSET( opslagsskema , MATCH( række opslagsværdi , OFFSET( opslagsskema , 0, 0, 0, ROWS( opslagsskema ), 1), 0) -1, MATCH( kolonneopslagsværdi , OFFSET( opslagsskema , 0, 0, 0, 1, KOLONNER( opslagsskema )), 0) -1)

    I betragtning heraf:

    • Opslagstabellen er A5:G9
    • Den værdi, der skal matches på rækkerne, er i B2
    • Den værdi, der skal matches i kolonnerne, står i B1

    Du får følgende todimensionale opslagsformel:

    =OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, 0, ROWS(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 0, 1, COLUMNS(A5:G9)), 0) -1)

    Det er ikke det nemmeste at huske, vel? Desuden er dette en array-formel, så glem ikke at trykke på Ctrl + Shift + Enter for at indtaste den korrekt.

    Selvfølgelig er denne lange OFFSET-formel ikke den eneste mulige måde at lave et dobbelt opslag i Excel på. Du kan få det samme resultat ved at bruge VLOOKUP & MATCH-funktionerne, SUMPRODUCT eller INDEX & MATCH. Der findes endda en formelfri måde - ved at bruge navngivne områder og skæringspunktoperatoren (mellemrum). I følgende vejledning forklares alle alternative løsninger i detaljer: Sådan laver du tovejsopslag i Excel.

    OFFSET-funktionen - begrænsninger og alternativer

    Forhåbentlig har formelseksemplerne på denne side kastet lidt lys over, hvordan du bruger OFFSET i Excel. Men for at kunne udnytte funktionen effektivt i dine egne regneark skal du ikke kun kende dens styrker, men også være opmærksom på dens svagheder.

    De mest kritiske begrænsninger ved Excel OFFSET-funktionen er følgende:

    • Ligesom andre flygtige funktioner er OFFSET en ressourcekrævende funktion Når der sker ændringer i kildedataene, genberegnes dine OFFSET-formler, hvilket holder Excel beskæftiget lidt længere. Dette er ikke et problem for en enkelt formel i et lille regneark. Men hvis der er snesevis eller hundredvis af formler i et regneark, kan Microsoft Excel tage et stykke tid om at genberegne.
    • Excel OFFSET-formler er svært at gennemgå Da referencer, der returneres af OFFSET-funktionen, er dynamiske, kan store formler (især med indlejrede OFFSET'er) være ret vanskelige at fejlfinde.

    Alternativer til at bruge OFFSET i Excel

    Som det ofte er tilfældet i Excel, kan det samme resultat opnås på flere forskellige måder, så her er tre elegante alternativer til OFFSET.

    1. Excel-tabeller

      Siden Excel 2002 har vi haft en virkelig vidunderlig funktion - fuldgyldige Excel-tabeller i modsætning til de sædvanlige intervaller. For at lave en tabel ud fra strukturerede data skal du blot klikke på Indsæt> Tabel på den Hjem eller tryk på Ctrl + T .

      Ved at indtaste en formel i en celle i en Excel-tabelle kan du oprette en såkaldt "beregnet kolonne", som automatisk kopierer formlen til alle andre celler i kolonnen og justerer formlen for hver række i tabellen.

      Desuden justeres enhver formel, der henviser til tabellens data, automatisk til at inkludere nye rækker, du tilføjer til tabellen, eller udelukke de rækker, du sletter. Teknisk set opererer sådanne formler på tabelkolonner eller rækker, som er dynamiske intervaller Hver tabel i en projektmappe har et unikt navn (standardnavnene er Table1, Table2 osv.), og du kan frit omdøbe din tabel via Design faneblad> Egenskaber gruppe> Bordnavn tekstboks.

      Følgende skærmbillede viser den SUM-formel, der henviser til den Bonus kolonnen i tabel3. Vær opmærksom på, at formlen omfatter tabellens kolonnens navn i stedet for et område af celler.

    2. Excel INDEX-funktion

      Selv om det ikke er helt på samme måde som OFFSET, kan Excel INDEX også bruges til at oprette dynamiske intervalreferencer. I modsætning til OFFSET er INDEX-funktionen ikke flygtig, så den gør ikke Excel langsommere.

    3. Excel INDIRECT-funktion

      Ved hjælp af INDIRECT-funktionen kan du oprette dynamiske områdehenvisninger fra mange kilder, f.eks. celleværdier, celleværdier og tekst, navngivne områder. Den kan også dynamisk henvise til et andet Excel-ark eller en anden arbejdsmappe. Du kan finde alle disse formeleksempler i vores tutorial om Excel INDIRECT-funktionen.

    Kan du huske spørgsmålet i begyndelsen af denne vejledning - Hvad er OFFSET i Excel? Jeg håber, at du nu kender svaret : ) Hvis du vil have mere praktisk erfaring, er du velkommen til at downloade vores arbejdsbog (se nedenfor), som indeholder alle de formler, der er beskrevet på denne side, og du kan lave reverse engineering af dem for at få en dybere forståelse. Tak for læsningen!

    Arbejdsbog til download

    OFFSET-formeleksempler (.xlsx-fil)

    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.