Användning av Offset-funktionen i Excel

  • Dela Detta
Hugh West

Idag vill jag presentera dig för Excels OFFSET-funktion med tre exempel från verkligheten.

Först kommer jag att beskriva formelsyntaxen och sedan kommer jag att tala om hur OFFSET-funktionen kan användas för att lösa problem i verkligheten.

Introduktion

Funktionen OFFSET kan returnera en referens till en cell (låt oss kalla den målcell) eller ett område (målområde) som ligger ett visst antal rader och kolumner från en annan cell (referenscell) eller ett annat område (referensområde).

Figuren nedan visar hur du använder OFFSET-funktionen för att återge referensen till en cell (vänster del) eller ett intervall (höger del).

Det ger dig ett intuitivt intryck av vad som är en målcell och vad som är en referenscell.

Den grönmarkerade cellen är en målcell, medan de gulmarkerade cellerna består av ett målområde.

Celler som är markerade i blått är referensceller.

Figur 1

Vad betyder OFFSET i Excel (syntax)?

Här är syntaxen för Offset-funktionen: OFFSET (referens, rader, kolumner, [höjd], [bredd])

Referens Krävs. Referensen är en cell eller ett intervall av celler från vilken förskjutningen börjar. Observera att cellerna måste vara intill varandra om du anger ett intervall av celler.
Rader Krävs . Antalet rader, uppåt eller nedåt, referenscellen eller den övre vänstra cellen i referensområdet. Rader kan vara antingen positiv eller negativ. Titta på den vänstra delen av figur 1, målcellen blir B2 om jag ändrar funktionen till OFFSET (C3, -1, -1). B2 ligger en rad högre än C3.
Cols Krävs. Antalet kolumner, till vänster eller höger om referenscellen eller den övre vänstra cellen i referensområdet. Rader argumentet, värdena för Cols kan också vara både positiv och negativ. Hur kan vi skriva OFFSET-funktionen om vi anger B4 som referenscell och C3 som målcell? Svaret är OFFSET (B4, -1, 1). Här kan du se att Cols är positiv och att C3 är en kolumn till höger om B4.
Höjd Valfritt. Använd endast argumentet Höjd om målet är ett intervall. Det anger hur många rader som ingår i målområdet. Höjden måste vara ett positivt tal. Du kan se i den högra delen av figur 1 att det finns två rader i målområdet. Därför ställer vi in Höjden som 2 i det fallet.
Bredd Valfritt. Använd bara argumentet Bredd om målet är ett intervall (se den högra delen av figur 1). Det anger hur många kolumner som målområdet innehåller. Bredden måste vara ett positivt tal.

Låt mig nu visa dig hur du kan använda OFFSET-funktionen för att lösa problem i verkligheten.

Fall 1: Sökning från höger till vänster genom att kombinera OFFSET- och MATCH-funktionerna

Det är välkänt att du bara kan utföra en vänster-till-högersökning med VLOOKUP-funktionen.

Värdet som ska sökas måste placeras i den första kolumnen i tabellmatrisen.

Du måste flytta hela tabellområdet till höger med en kolumn om du vill lägga till ett nytt uppslagsvärde eller ändra din datastruktur om du vill använda en annan kolumn som uppslagsvärde.

Men genom att kombinera OFFSET med funktionen Match kan begränsningen för VLOOKUP-funktionen tas bort.

Vad är MATCH-funktionen och hur kan vi kombinera OFFSET-funktionen med Match-funktionen för att göra sökningen?

Funktionen Match söker efter ett visst objekt i ett antal celler och returnerar sedan objektets relativa position i intervallet.

Låt oss ta intervallet B3:B8 i figur 2.1 (som visar olika länders intäkter under olika år) som exempel.

Formeln "=MATCH ("USA", B3:B8, 0)" ger följande resultat 1 eftersom USA är den första posten i intervallet (se cell B10 och C10).

För ett annat intervall C2:F2 ger formeln "=MATCH (2015, C2:F2, 0)" följande resultat 3 eftersom 2015 är den tredje posten i intervallet (se cell B11 och C11).

Tillbaka till OFFSET-funktionen.

Om vi anger cell B2 som referenscell och tar cell E3 som målcell, hur kan vi då skriva formeln OFFSET?

E3 är 1 raden under B2 och 3 kolumnerna från höger till B2.

Därför kan formeln skrivas som "=OFFSET(B2, 1 , 3 )". Titta noga på siffrorna i röd färg, kan du se att de stämmer överens?

Det är svaret på frågan - Hur kombinerar man OFFSET-funktionen med Match-funktionen? Match-funktionen kan användas som andra eller tredje argument för OFFSET-funktionen. (se cell C13).

Cell C14 visar hur man använder VLOOKUP-funktionen för att hämta samma data.

Vi måste veta att intäkterna för 2015 registreras i den fjärde kolumnen i tabellmatrisen B2:F8 innan vi skriver VLOOKUP-funktionen.

Det betyder att vi måste känna till datastrukturen mycket väl när vi använder VLOOKUP-funktionen.

Detta är ytterligare en begränsning för VLOOKUP. Men genom att använda funktionen MATCH som argument för OFFSET-funktionen behöver vi inte känna till kolumnindexet.

Detta är mycket användbart om det finns många kolumner.

Figur 2.1

Låt oss nu gå vidare och se ett mer komplicerat exempel.

Anta att vi har en tabell som innehåller företagsnamn, kontaktnamn och e-postadress för olika företag.

Och vi vill hämta företagsnamnet från ett känt kontaktnamn eller hämta ett kontaktnamn från en känd e-postadress. Vad kan vi göra?

Se figur 2.2, intervallet B5:E8 innehåller företagsinformation. Genom att lägga in indata i cell C2 och cell B3, med hjälp av formeln i den röda rutan, kan jag få fram företagsnamnet om jag känner till kontaktnamnet.

I intervallet D2:E4 visas hur man hämtar ett kontaktnamn med en känd e-postadress.

Sammanfattningsvis visar de här två exemplen att vi kan göra en sökning från höger till vänster och att sökvärdet inte behöver placeras i den högra kolumnen. Alla kolumner i tabellmatrisen kan innehålla sökvärdet.

Figur 2.2

Fall 2: Automatisera beräkningen genom att kombinera OFFSET- och COUNT-funktionerna

Innan vi börjar med hur vi automatiserar beräkningen när vi lägger till ett nytt nummer i en kolumn, börjar vi med hur vi automatiskt returnerar det sista numret i en kolumn.

Titta på figuren nedan som visar poster från Human Resources. Antag att vi vill få fram det sista numret i kolumn B, så blir formeln "=OFFSET (C2, 9 , 0)" om vi använder OFFSET-funktionen.

Från formeln kan vi veta att 9 är nyckelnumret.

Om vi kan återge detta nummer automatiskt kan vi automatiskt hitta det sista numret i en kolumn.

9 är bara antalet celler som innehåller siffror i kolumn C.

Om du är bekant med funktionen COUNT vet du att funktionen COUNT kan räkna antalet celler som innehåller siffror i ett intervall.

Formeln "=COUNT (C3:C11)" räknar till exempel antalet celler som innehåller siffror i cellerna C3 till C11.

I vårt fall vill vi veta hur många siffror som finns i en hel kolumn, och därför bör vi använda en referens som C:C som inkluderar alla rader i kolumn C.

Titta på cellerna G4 och H4, antalet som returneras av "=COUNT(C:C)" är exakt lika med 9 .

Genom att ersätta 9 med COUNT(C:C) i OFFSET-funktionen ovan kan vi alltså få en ny formel "=OFFSET (C2, COUNT(C:C) , 0)" (i cell H5).

Det nummer som returneras är 87000, vilket är exakt det sista numret i kolumn C.

Låt oss nu gå över till den automatiska beräkningen. Antag att vi vill ha summan av alla siffror i kolumn C.

Formeln skulle vara "=SUM (OFFSET (C2, 1, 0, 9 , 1))" om vi använder SUM tillsammans med OFFSET.

9 är det totala antalet rader i intervallet C3:C11 och även det totala antalet celler som innehåller siffror i kolumn C.

Därför kan vi skriva formeln på ett nytt sätt som "=SUM (OFFSET (C2,1, 0, COUNT (C:C), 1))".

Om du tittar på cellerna G10 och H10 är det totala antalet löner för dessa 9 anställda 521 700 dollar.

Om du nu lägger in ett tal som 34 000 dollar i cell C12 ändras både talet i cell G5 och G10 till 34 000 dollar respektive 555 700 dollar.

Detta är vad jag kallar automatisering eftersom du inte behöver uppdatera formlerna i cell G5 eller G10.

Du måste vara försiktig när du använder funktionen COUNT eftersom funktionen COUNT endast returnerar antalet celler som innehåller siffror.

Exempelvis ger "=COUNT (B: B)" 0 istället för 9 eftersom det inte finns någon cell i kolumn B som innehåller siffror (se cellerna G3 och H3).

Kolumn D innehåller 10 celler som innehåller siffror och antalet som returneras av "COUNT (D: D)" är också 10.

Men om vi vill hämta det sista numret i kolumn D på samma sätt som för kolumn C, får vi nummer 0 (se cell G8 och H8).

Det är uppenbart att 0 inte är vad vi vill ha. Vad är fel? Cell D13 är 11 rader från cell D2 i stället för 10 rader.

Detta kan också visas med formeln "=OFFSET (D2, COUNT (D: D) + 1 , 0)" i cell G7.

Sammanfattningsvis bör siffrorna ligga bredvid varandra om vi vill använda funktionen COUNT tillsammans med funktionen OFFSET för att automatisera beräkningen.

Figur 3

Fall 3: Använd OFFSET-funktionen för att skapa ett dynamiskt område.

Anta att vi vill kartlägga ett företags månatliga enhetsförsäljning och att figur 4.1 visar aktuella data och ett diagram som skapats baserat på aktuella data.

Varje månad skall den senaste månadens försäljning av enheter läggas till under den sista siffran i kolumn C.

Finns det ett enkelt sätt att uppdatera diagrammet automatiskt?

Nyckeln till att uppdatera diagrammet är att använda OFFSET-funktionen för att skapa dynamiska intervallnamn för kolumnen Sålda enheter.

Det dynamiska området för enheternas försäljning kommer automatiskt att inkludera alla försäljningsuppgifter när nya uppgifter förs in.

Figur 4.1

Om du vill skapa ett dynamiskt område klickar du på Formler och välj sedan Namn chef eller . Definiera namn .

Under Nytt namn dialogrutan om du klickar på Definiera namn .

Om du väljer Namn chef måste du också klicka på Ny för att göra nedanstående Nytt namn visas.

Figur 4.2

I " Namn: " ska namnet på det dynamiska intervallet fyllas i. Och i inmatningsrutan " Hänvisar till:" måste vi skriva formeln OFFSET "=OFFSET (Figure4!$C$2, 1, 0, COUNT (!$C: $C), 1)" som skulle generera ett dynamiskt värdeintervall baserat på enheterna Sålda värden som skrivs in i kolumn C.

Som standard gäller ett namn för hela arbetsboken och måste vara unikt inom arbetsboken.

Vi vill dock begränsa räckvidden till ett visst ark.

Därför väljer vi här figur4 i " Omfattning: "Efter att ha klickat på OK skapas det dynamiska området.

Den kommer automatiskt att inkludera alla försäljningsuppgifter när nya uppgifter läggs in.

Högerklicka nu på en punkt i diagrammet och välj sedan "Select Data" (välj data).

Figur 4.3

I den uppmanade Välj data Källa, välj Serie 1 och sedan Redigera.

Figur 4.4

Skriv sedan "=Figure4!Units", vilket visas i figur 4.5.

Figur 4.5

Slutligen kan vi prova och skriva 11 i cell C13. Du kan se att diagrammet har ändrats och att värdet 11 har inkluderats.

Diagrammet ändras automatiskt när nya data läggs till.

Figur 4.6

Läs mer...

  • Offset(...) funktion i Excel med exempel

Ladda ner arbetsfiler

Ladda ner arbetsfilerna från länken nedan.

Excel-Offset-funktion.rar

Hugh West är en mycket erfaren Excel-tränare och analytiker med över 10 års erfarenhet i branschen. Han har en kandidatexamen i redovisning och ekonomi och en magisterexamen i företagsekonomi. Hugh har en passion för undervisning och har utvecklat ett unikt undervisningssätt som är lätt att följa och förstå. Hans expertkunskap om Excel har hjälpt tusentals studenter och yrkesverksamma över hela världen att förbättra sina färdigheter och utmärka sig i sina karriärer. Genom sin blogg delar Hugh med sig av sin kunskap med världen, och erbjuder gratis Excel-handledning och onlineutbildning för att hjälpa individer och företag att nå sin fulla potential.