Excelova funkcija OFFSET - primeri formul in uporabe

  • Deliti To
Michael Brown

V tem vodniku bomo osvetlili enega najbolj skrivnostnih prebivalcev Excelovega vesolja - funkcijo OFFSET.

Kaj je OFFSET v Excelu? Na kratko, formula OFFSET vrne referenco na območje, ki je zamaknjeno od začetne celice ali območja celic za določeno število vrstic in stolpcev.

Funkcija OFFSET je lahko nekoliko zapletena, zato si najprej oglejmo kratko tehnično razlago (potrudil se bom, da bo preprosta), nato pa bomo predstavili nekaj najučinkovitejših načinov uporabe funkcije OFFSET v Excelu.

    Excelova funkcija OFFSET - sintaksa in osnovne uporabe

    Funkcija OFFSET v Excelu vrne celico ali območje celic, ki je oddaljeno določeno število vrstic in stolpcev od dane celice ali območja.

    Sintaksa funkcije OFFSET je naslednja:

    OFFSET(referenca, vrstice, cols, [višina], [širina])

    Prvi trije argumenti so obvezni, zadnja dva pa neobvezna. Vsi argumenti so lahko sklici na druge celice ali rezultati, ki jih vrnejo druge formule.

    Zdi se, da se je Microsoft potrudil, da je v imenih parametrov vnesel nekaj pomena, in da so v vsakem od njih navedeni podatki, ki jih morate navesti.

    Zahtevani argumenti:

    • Referenca - celico ali niz sosednjih celic, iz katerih se izračuna zamik. Lahko si jo predstavljate kot začetno točko.
    • Vrstice - Število vrstic za premik od začetne točke navzgor ali navzdol. Če je število vrstic pozitivno, se formula premakne pod začetno referenco, če je število negativno, se premakne nad začetno referenco.
    • Cols - Število stolpcev, za katere želite, da se formula premakne od začetne točke. Poleg vrstic so lahko tudi stolpci pozitivni (desno od začetne reference) ali negativni (levo od začetne reference).

    Neobvezni argumenti:

    • Višina - število vrstic, ki se vrnejo.
    • Širina - število stolpcev, ki se vrnejo.

    Argumenta višina in širina morata biti vedno pozitivni števili. Če enega od njiju izpustite, je privzeta višina ali širina referenca .

    Opomba: OFFSET je nestabilna funkcija in lahko upočasni delovni list. Upočasnitev je neposredno sorazmerna s številom ponovno izračunanih celic.

    Zdaj pa teorijo ponazorimo s primerom najpreprostejše formule OFFSET.

    Primer Excelove formule OFFSET

    Tukaj je primer preproste formule OFFSET, ki vrne referenco na celico na podlagi začetne točke, vrstic in stolpcev, ki jih določite:

    =OFFSET(A1,3,1)

    Formula pove Excelu, da za izhodišče (referenco) vzame celico A1, nato pa se premakne 3 vrstice navzdol (argument vrstice) in 1 stolpec v levo (argument stolpci). Kot rezultat ta formula OFFSET vrne vrednost v celici B4.

    Slika na levi prikazuje pot funkcije, posnetek zaslona na desni pa prikazuje, kako lahko formulo OFFSET uporabite na realnih podatkih. Edina razlika med formulama je, da druga formula (na desni) v argumentu vrstice vsebuje sklic na celico (E1). Ker pa celica E1 vsebuje številko 3, se popolnoma enaka številka pojavi tudi v argumentu vrstice prve formule,oba bi vrnila enak rezultat - vrednost v B4.

    Excelove formule OFFSET - stvari, ki si jih je treba zapomniti

    • Funkcija OFFSET v Excelu dejansko ne premakne nobene celice ali območja, temveč samo vrne referenco.
    • Kadar formula OFFSET vrne območje celic, se argumenta rows in cols vedno nanašata na zgornjo levo celico v vrnjenem območju.
    • Argument reference mora vključevati celico ali območje sosednjih celic, sicer bo formula vrnila napako #VALUE!.
    • Če se z določenimi vrsticami in/ali stolpci referenca premakne čez rob preglednice, bo Excelova formula OFFSET vrnila napako #REF!.
    • Funkcijo OFFSET lahko uporabite v kateri koli drugi Excelovi funkciji, ki v svojih argumentih sprejema referenco na celico/območje.

    Če na primer poskušate uporabiti formulo =OFFSET(A1,3,1,1,1,3) sama po sebi bo vrgla napako #VALUE!, saj obseg za vračilo (1 vrstica, 3 stolpci) ne sodi v eno celico. Če pa jo vgradite v funkcijo SUM, kot je ta:

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

    Formula bo vrnila vsoto vrednosti v območju 1 vrstice in 3 stolpcev, ki je 3 vrstice pod in 1 stolpec desno od celice A1, tj. vsoto vrednosti v celicah B4:D4.

    Zakaj v Excelu uporabljam OFFSET?

    Zdaj, ko veste, kaj počne funkcija OFFSET, se morda sprašujete: "Zakaj bi jo uporabljali?" Zakaj ne bi preprosto zapisali neposredne reference, kot je B4:D4?

    Excelova formula OFFSET je zelo dobra za:

    Ustvarjanje dinamičnih razponov : Sklici, kot so B1:C4, so statični, kar pomeni, da se vedno nanašajo na določeno območje. Nekatera opravila pa je lažje opraviti z dinamičnimi območji. To velja zlasti pri delu s spreminjajočimi se podatki, npr. če imate delovni list, v katerem se vsak teden doda nova vrstica ali stolpec.

    Pridobivanje območja iz začetne celice Včasih morda ne poznate dejanskega naslova območja, čeprav veste, da se začne v določeni celici. V takih primerih je uporaba funkcije OFFSET v Excelu pravi način.

    Kako uporabljati funkcijo OFFSET v Excelu - primeri formul

    Upam, da se niste naveličali toliko teorije. Kakorkoli že, zdaj smo prišli do najbolj zanimivega dela - praktične uporabe funkcije OFFSET.

    Excelovi funkciji OFFSET in SUM

    Primer, ki smo ga obravnavali pred trenutkom, prikazuje najpreprostejšo uporabo funkcij OFFSET & SUM. Zdaj pa si te funkcije oglejmo še z drugega zornega kota in poglejmo, kaj vse še lahko počnejo.

    Primer 1. Dinamična formula SUM / OFFSET

    Pri delu s stalno posodobljenimi delovnimi listi boste morda želeli uporabiti formulo SUM, ki samodejno izbere vse novo dodane vrstice.

    Predpostavimo, da imate izvorne podatke, podobne tistim na spodnji sliki. Vsak mesec se tik nad formulo SUM doda nova vrstica in seveda jo želite vključiti v skupno vsoto. Na voljo sta dve možnosti - ali vsakič ročno posodobite območje v formuli SUM ali pa to namesto vas stori formula OFFSET.

    Ker bo prva celica območja, ki ga želite sešteti, določena neposredno v formuli SUM, se morate odločiti le za parametre Excelove funkcije OFFSET, ki bo dobila zadnjo celico območja:

    • Referenca - celico s skupnim številom, v našem primeru B9.
    • Vrstice - v celici tik nad skupnim številom, ki zahteva negativno število -1.
    • Cols - je 0, ker ne želite spremeniti stolpca.

    Tukaj je vzorec formule SUM / OFFSET:

    =SUM( prva celica :(OFFSET( celica s skupno , -1,0)

    V zgornjem primeru je formula spremenjena na naslednji način:

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

    Kot je prikazano na spodnji sliki zaslona, deluje brezhibno:

    Primer 2. Excelova formula OFFSET za seštevanje zadnjih N vrstic

    Predpostavimo, da želite v zgornjem primeru poznati znesek bonusov za zadnjih N mesecev in ne skupnega zneska. Prav tako želite, da formula samodejno vključi vse nove vrstice, ki jih dodate v list.

    Za to nalogo bomo uporabili Excelovo funkcijo OFFSET v kombinaciji s funkcijami SUM in COUNT / COUNTA:

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

    ali

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

    Naslednje podrobnosti vam lahko pomagajo bolje razumeti formule:

    • Referenca - glavo stolpca, katerega vrednosti želite sešteti, v tem primeru je to celica B1.
    • Vrstice - za izračun števila vrstic, ki jih je treba premakniti, uporabite funkcijo COUNT ali COUNTA.

      COUNT vrne število celic v stolpcu B, ki vsebujejo številke, od katerih odštejete zadnjih N mesecev (številka je v celici E1) in dodate 1.

      Če je vaša izbrana funkcija COUNTA, vam ni treba dodati 1, saj ta funkcija šteje vse neprazne celice, vrstica v glavi z besedilno vrednostjo pa doda dodatno celico, ki jo naša formula potrebuje. Upoštevajte, da bo ta formula pravilno delovala le pri podobni strukturi tabele - eni vrstici v glavi, ki ji sledijo vrstice s številkami. Pri drugačni postavitvi tabele boste morda morali nekoliko prilagoditi vrsticoFormula OFFSET/COUNTA.

    • Cols - število stolpcev za zamik je nič (0).
    • Višina - število vrstic za seštevanje je določeno v E1.
    • Širina - 1 stolpec.

    Uporaba funkcije OFFSET s funkcijami AVERAGE, MAX, MIN

    Na enak način, kot smo izračunali bonuse za zadnjih N mesecev, lahko dobite povprečje zadnjih N dni, tednov ali let ter poiščete njihove največje ali najmanjše vrednosti. Edina razlika med formulama je v imenu prve funkcije:

    =POVPREČJE(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))

    Glavna prednost teh formul v primerjavi z običajnima AVERAGE(B5:B8) ali MAX(B5:B8) je, da vam formule ni treba posodobiti vsakič, ko se posodobi vaša izvorna tabela. Ne glede na to, koliko novih vrstic se doda ali izbriše v delovnem listu, se bodo formule OFFSET vedno nanašale na določeno število zadnjih (najnižjih) celic v stolpcu.

    Excelova formula OFFSET za ustvarjanje dinamičnega območja

    Funkcija OFFSET, ki se uporablja v povezavi s funkcijo COUNTA, vam lahko pomaga ustvariti dinamično območje, ki je lahko uporabno v številnih scenarijih, na primer za ustvarjanje samodejno posodabljajočih se spustnih seznamov.

    Formula OFFSET za dinamično območje je naslednja:

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

    V središču te formule je funkcija COUNTA, s katero dobite število nepraznih celic v ciljnem stolpcu. To število se prenese v argument OFFSET za višino, ki določa, koliko vrstic je treba vrniti.

    Poleg tega gre za običajno formulo za odmik, pri kateri:

    • Referenca je začetna točka, na kateri temelji zamik, na primer List1!$A$1.
    • Vrstice in . Cols sta obe 0, ker ni stolpcev ali vrstic, ki bi jih bilo treba premakniti.
    • Širina je 1 stolpec.

    Opomba: Če ustvarjate dinamično območje v trenutnem listu, vam imena lista ni treba vključiti v sklicevanja, saj bo Excel to storil samodejno pri ustvarjanju poimenovanega območja. V nasprotnem primeru ne pozabite vključiti imena lista, ki mu sledi vzklikalnik, kot v tem primeru formule.

    Ko z zgornjo formulo OFFSET ustvarite dinamično poimenovano območje, lahko s funkcijo Data Validation ustvarite dinamični spustni seznam, ki se bo samodejno posodobil takoj, ko boste dodali ali odstranili elemente z izvornega seznama.

    Za podrobna navodila po korakih za ustvarjanje spustnih seznamov v Excelu si oglejte naslednja navodila:

    • Ustvarjanje spustnih seznamov v Excelu - statično, dinamično, iz drugega delovnega zvezka
    • Izdelava odvisnega spustnega seznama

    Excel OFFSET & amp; VLOOKUP

    Kot je znano, se preprosta navpična in vodoravna iskanja izvajajo s funkcijo VLOOKUP oziroma HLOOKUP. Vendar imajo te funkcije preveč omejitev in se pogosto zataknejo pri zmogljivejših in kompleksnejših formulah iskanja. Če torej želite izvajati zahtevnejša iskanja v preglednicah Excel, morate poiskati alternative, kot so INDEX, MATCH in OFFSET.

    Primer 1. Formula OFFSET za levi Vlookup v Excelu

    Ena od najbolj zloglasnih omejitev funkcije VLOOKUP je nezmožnost iskanja na levi strani, kar pomeni, da lahko VLOOKUP vrne le vrednost na desni strani stolpca iskanja.

    V naši vzorčni preglednici za iskanje sta dva stolpca - imena mesecev (stolpec A) in bonusi (stolpec B). Če želite dobiti bonus za določen mesec, bo ta preprosta formula VLOOKUP delovala brez težav:

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

    Vendar se takoj, ko zamenjate stolpce v preglednici iskanja, takoj pojavi napaka #N/A:

    Za obdelavo iskanja na levi strani potrebujete bolj vsestransko funkcijo, ki ji ni pomembno, kje se nahaja vrnjeni stolpec. Ena od možnih rešitev je uporaba kombinacije funkcij INDEX in MATCH. Drug pristop je uporaba funkcij OFFSET, MATCH in ROWS:

    OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , ROWS( lookup_table ), 1) ,0) -1, return_col_offset , 1, 1)

    Kje:

    • Lookup_col_offset - je število stolpcev, ki jih je treba premakniti od začetne točke do stolpca iskanja.
    • Return_col_offset - je število stolpcev, ki jih je treba premakniti od začetne točke do povratnega stolpca.

    V našem primeru je preglednica iskanja A5:B9, vrednost iskanja je v celici B1, zamik stolpca iskanja je 1 (ker iščemo vrednost iskanja v drugem stolpcu (B), se moramo premakniti 1 stolpec desno od začetka preglednice), zamik stolpca vračanja je 0, ker vračamo vrednosti iz prvega stolpca (A):

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

    Vem, da je formula videti nekoliko nerodna, vendar deluje :)

    Primer 2. Kako v Excelu opraviti zgornji pregled

    Tako kot funkcija VLOOKUP ne more pogledati v levo, tudi njena vodoravna ustreznica - funkcija HLOOKUP - ne more pogledati navzgor, da bi vrnila vrednost.

    Če morate poiskati ujemanje v zgornji vrstici, vam lahko ponovno pomaga formula OFFSET MATCH, vendar jo morate tokrat dopolniti s funkcijo COLUMNS, kot sledi:

    OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, STOLPCI( lookup_table )), 0) -1, 1, 1)

    Kje:

    • Lookup_row_offset - število vrstic za premik od začetne točke do vrstice iskanja.
    • Return_row_offset - število vrstic, ki jih je treba premakniti od začetne do povratne vrstice.

    Ob predpostavki, da je preglednica iskanja B4:F5 in da je vrednost iskanja v celici B1, je formula naslednja:

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

    V našem primeru je zamik vrstice iskanja 1, ker je naše območje iskanja za eno vrstico nižje od začetne točke, zamik vrstice vrnitve pa je 0, ker vračamo zadetke iz prve vrstice v tabeli.

    Primer 3. Dvosmerno iskanje (po vrednostih stolpcev in vrstic)

    Dvosmerno iskanje vrne vrednost na podlagi ujemanj v obeh vrsticah in stolpcih. Za iskanje vrednosti v presečišču določene vrstice in stolpca lahko uporabite naslednjo formulo za dvosmerno iskanje:

    =OFFSET( preglednica za iskanje , MATCH( vrednost iskanja v vrstici , OFFSET( preglednica za iskanje , 0, 0, ROWS( preglednica za iskanje ), 1), 0) -1, MATCH( iskalna vrednost stolpca , OFFSET( preglednica za iskanje , 0, 0, 1, STOLPCI( preglednica za iskanje )), 0) -1)

    Glede na to:

    • Preglednica za iskanje je A5:G9
    • Vrednost, ki se ujema z vrsticami, je v vrstici B2
    • Vrednost, ki se ujema s stolpci, je v B1

    Dobili boste naslednjo dvodimenzionalno formulo za iskanje:

    =OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, 0, VRSTICE(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 1, STOLPCI(A5:G9)), 0) -1)

    Tega si ni najlažje zapomniti, kajne? Poleg tega gre za formulo v obliki polja, zato ne pozabite pritisniti kombinacije tipk Ctrl + Shift + Enter, da jo pravilno vnesete.

    Ta dolga formula OFFSET seveda ni edini možni način za izvedbo dvojnega iskanja v Excelu. Enak rezultat lahko dosežete z uporabo funkcij VLOOKUP & amp; MATCH, SUMPRODUCT ali INDEX & amp; MATCH. Obstaja celo način brez formul - uporaba poimenovanih območij in operatorja preseka (presledek). V naslednjem vodniku so podrobno razložene vse alternativne rešitve: Kako narediti dvosmerniiskanje v Excelu.

    Funkcija OFFSET - omejitve in alternative

    Upamo, da so primeri formul na tej strani osvetlili uporabo funkcije OFFSET v Excelu. Če želite učinkovito uporabiti funkcijo v svojih delovnih zvezkih, ne smete poznati le njenih prednosti, temveč morate biti pozorni tudi na njene slabosti.

    Najpomembnejše omejitve Excelove funkcije OFFSET so naslednje:

    • Tako kot druge hlapne funkcije je tudi OFFSET funkcija, ki zahteva veliko virov. Ob vsaki spremembi izvornih podatkov se formule OFFSET ponovno preračunajo, zaradi česar je Excel malo dlje zaposlen. To ni težava za eno samo formulo v majhni preglednici. Če pa je v delovnem zvezku na desetine ali stotine formul, lahko Microsoft Excel za ponovno izračunavanje porabi precej časa.
    • Excelove formule OFFSET so težko pregledati Ker so reference, ki jih vrne funkcija OFFSET, dinamične, je velike formule (zlasti z vgnezdenimi funkcijami OFFSET) lahko precej zapleteno razhroščevati.

    Alternative za uporabo OFFSET v Excelu

    Kot je v Excelu pogosto, lahko isti rezultat dosežemo na več različnih načinov. Tukaj so tri elegantne alternative za OFFSET.

    1. Excelove tabele

      Od programa Excel 2002 imamo zares čudovito funkcijo - polnopravne tabele programa Excel v nasprotju z običajnimi razponi. Če želite izdelati tabelo iz strukturiranih podatkov, preprosto kliknite Vstavljanje> Tabela na Domov ali pritisnite kombinacijo tipk Ctrl + T .

      Z vnosom formule v eno celico v Excelovi tabeli lahko ustvarite tako imenovani "izračunani stolpec", ki samodejno kopira formulo v vse druge celice v tem stolpcu in prilagodi formulo za vsako vrstico v tabeli.

      Poleg tega se vsaka formula, ki se nanaša na podatke v tabeli, samodejno prilagodi tako, da vključi vse nove vrstice, ki jih dodate v tabelo, ali izključi vrstice, ki jih izbrišete. Tehnično take formule delujejo na stolpce ali vrstice tabele, ki so dinamični razponi Vsaka tabela v delovnem zvezku ima edinstveno ime (privzeta imena so Tabela1, Tabela2 itd.), tabelo pa lahko preimenujete s pomočjo Oblikovanje zavihek> Lastnosti skupina> Ime mize besedilno polje.

      Naslednja slika prikazuje formulo SUM, ki se nanaša na Bonus stolpca tabele 3. Bodite pozorni, da formula vključuje podatke iz tabele ime stolpca namesto območja celic.

    2. Excelova funkcija INDEX

      Čeprav ne povsem na enak način kot OFFSET, lahko Excel INDEX uporabite tudi za ustvarjanje dinamičnih referenc na območja. Za razliko od OFFSET funkcija INDEX ni nestalna, zato ne bo upočasnila delovanja programa Excel.

    3. Excelova funkcija INDIRECT

      S funkcijo INDIRECT lahko ustvarite dinamično sklicevanje na območja iz številnih virov, kot so vrednosti celic, vrednosti celic in besedilo, poimenovana območja. Dinamično se lahko sklicuje tudi na drug Excelov list ali delovni zvezek. Vse te primere formul lahko najdete v našem Excelovem učbeniku za funkcijo INDIRECT.

    Se spomnite vprašanja, ki ste ga zastavili na začetku tega učbenika - Kaj je OFFSET v programu Excel? Upam, da zdaj poznate odgovor : ) Če želite še več praktičnih izkušenj, si lahko prenesete naš vadbeni zvezek (glej spodaj), ki vsebuje vse formule, obravnavane na tej strani, in jih uporabite za boljše razumevanje. Hvala za branje!

    Praktični delovni zvezek za prenos

    Primeri formul OFFSET (.xlsx datoteka)

    Michael Brown je predan tehnološki navdušenec s strastjo do poenostavljanja kompleksnih procesov z uporabo programskih orodij. Z več kot desetletnimi izkušnjami v tehnološki industriji je svoje veščine izpopolnil v Microsoft Excelu in Outlooku ter Google Preglednicah in Dokumentih. Michaelov blog je namenjen deljenju svojega znanja in strokovnega znanja z drugimi ter ponuja preproste nasvete in vadnice za izboljšanje produktivnosti in učinkovitosti. Ne glede na to, ali ste izkušen strokovnjak ali začetnik, Michaelov blog ponuja dragocene vpoglede in praktične nasvete, kako kar najbolje izkoristiti ta osnovna programska orodja.