Excelova funkcija OFFSET - primjeri formula i upotrebe

  • Podijeli Ovo
Michael Brown

U ovom ćemo vodiču baciti malo svjetla na jednog od najtajanstvenijih stanovnika Excel svemira - funkciju OFFSET.

Dakle, što je OFFSET u Excelu? Ukratko, formula OFFSET vraća referencu na raspon koji je odmaknut od početne ćelije ili raspona ćelija za određeni broj redaka i stupaca.

Funkciju OFFSET može biti malo teško dobiti , pa idemo prvo kroz kratko tehničko objašnjenje (potrudit ću se da bude jednostavno), a zatim ćemo pokriti nekoliko najučinkovitijih načina za korištenje OFFSET-a u Excelu.

    Excelova funkcija OFFSET - sintaksa i osnovne upotrebe

    Funkcija OFFSET u Excelu vraća ćeliju ili raspon ćelija koji je zadani broj redaka i stupaca iz dane ćelije ili raspona.

    Sintaksa funkcije OFFSET je sljedeća:

    OFFSET(referenca, redovi, stupci, [visina], [širina])

    Prva 3 argumenta su obavezna, a zadnja 2 su izborna. Svi argumenti mogu biti reference na druge ćelije ili rezultati koje vraćaju druge formule.

    Čini se da se Microsoft dobro potrudio staviti neko značenje u nazive parametara, a oni daju naslutiti što želite trebaju navesti u svakoj.

    Potrebni argumenti:

    • Referenca - ćelija ili raspon susjednih ćelija na kojima temeljite pomak. Možete to zamisliti kao početnu točku.
    • Redovi - Broj redakastupac (A):

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

      Znam da formula izgleda malo nespretno, ali radi :)

      Primjer 2 . Kako napraviti gornje pretraživanje u Excelu

      Kao što je slučaj s VLOOKUP-om koji ne može gledati ulijevo, njegov horizontalni pandan - HLOOKUP funkcija - ne može pogledati prema gore da vrati vrijednost.

      Ako trebate skenirati gornji red u potrazi za podudarnostima, formula OFFSET MATCH opet može pomoći, ali ovaj put ćete je morati poboljšati funkcijom COLUMNS, ovako:

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

      Gdje:

      • Lookup_row_offset - broj redaka za pomicanje od početne točke do redaka za traženje.
      • Return_row_offset - broj redaka za pomicanje od početne točke do povratnog retka.

      Pod pretpostavkom da je tablica pretraživanja B4:F5, a vrijednost pretraživanja u ćeliji B1, formula ide kako slijedi:

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

      U našem slučaju, pomak retka pretraživanja je 1 jer je naš raspon pretraživanja 1 red niže od početne točke, pomak povratnog reda je 0 jer vraćamo podudaranja iz prvog retka u tablici.

      Primjer 3. Dvosmjerno pretraživanje (prema vrijednostima stupca i retka)

      Dvosmjerno pretraživanje vraća vrijednost temeljenu na podudaranjima u recima i stupcima. A možete koristiti sljedećedvostruka formula polja traženja za pronalaženje vrijednosti na sjecištu određenog retka i stupca:

      =OFFSET( tablica pretraživanja , MATCH( vrijednost pretraživanja reda , OFFSET( tablica pretraživanja , 0, 0, ROWS( tablica pretraživanja ), 1), 0) -1, MATCH( vrijednost pretraživanja stupca , OFFSET( tablica pretraživanja , 0, 0, 1, COLUMNS( tablica pretraživanja )), 0) -1)

      S obzirom da:

      • Tablica pretraživanja je A5:G9
      • Vrijednost za podudaranje u recima je u B2
      • Vrijednost za podudaranje u stupcima je u B1

      Dobivate sljedeću dvodimenzionalnu formulu pretraživanja:

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

      Nije to najlakše zapamtiti, zar ne? Osim toga, ovo je formula polja, stoga ne zaboravite pritisnuti Ctrl + Shift + Enter da biste je ispravno unijeli.

      Naravno, ova duga formula OFFSET nije jedini mogući način dvostrukog pretraživanja u Excelu. Možete dobiti isti rezultat korištenjem VLOOKUP & MATCH funkcije, SUMPRODUCT ili INDEX & USPOREDI SE. Postoji čak i način bez formule - korištenje imenovanih raspona i operatora presjeka (razmak). Sljedeći vodič detaljno objašnjava sva alternativna rješenja: Kako napraviti dvosmjerno traženje u Excelu.

      Funkcija OFFSET - ograničenja i alternative

      Nadamo se da su primjeri formula na ovoj stranici malo razjasnili svjetlo o tome kako koristiti OFFSET u Excelu. Međutim, da biste učinkovito iskoristili funkciju u svojim radnim knjigama, ne biste trebali samo bitiupoznati s njezinim snagama, ali također budite oprezni s njezinim slabostima.

      Najkritičnija ograničenja Excelove funkcije OFFSET su sljedeća:

      • Kao i druge nepostojane funkcije, OFFSET je funkcija gladna resursa . Kad god dođe do bilo kakve promjene u izvornim podacima, vaše formule OFFSET ponovno se izračunavaju, čime Excel ostaje zauzet još malo. To nije problem za jednu formulu u maloj proračunskoj tablici. Ali ako postoje deseci ili stotine formula u radnoj knjizi, Microsoft Excelu može trebati dosta vremena za ponovni izračun.
      • Excel OFFSET formule teško je pregledati . Budući da su reference koje vraća funkcija OFFSET dinamične, velike formule (osobito s ugniježđenim OFFSET-ima) može biti prilično teško otkloniti pogreške.

      Alternative korištenju OFFSET-a u Excelu

      Kao što je često U slučaju Excela, isti se rezultat može postići na više različitih načina. Dakle, ovdje su tri elegantne alternative za OFFSET.

      1. Excel tablice

        Od Excela 2002. imamo doista prekrasnu značajku - potpune Excel tablice, za razliku od uobičajeni rasponi. Da biste napravili tablicu od strukturiranih podataka, jednostavno kliknite Umetni > Tablica na kartici Početna ili pritisnite Ctrl + T .

        Unosom formule u jednu ćeliju u Excel tablici, možete stvoriti takozvani "izračunati stupac" koji automatski kopira formulu u sve ostale ćelije u tom stupcu i prilagođavaformula za svaki redak u tablici.

        Štoviše, svaka formula koja se odnosi na podatke tablice automatski se prilagođava kako bi uključila sve nove retke koje dodate u tablicu ili isključila retke koje izbrišete. Tehnički, takve formule djeluju na stupce ili retke tablice, koji su po prirodi dinamički rasponi . Svaka tablica u radnoj knjizi ima jedinstveni naziv (zadana su Tablica1, Tablica2 itd.) i možete slobodno preimenovati svoju tablicu putem kartice Dizajn > Svojstva grupe > ; Table Name tekstualni okvir.

        Sljedeća snimka zaslona prikazuje formulu SUM koja se odnosi na stupac Bonus tablice3. Obratite pozornost da formula uključuje naziv stupca tablice, a ne niz ćelija.

      2. Funkcija Excel INDEX

        Iako ne baš na isti način kao OFFSET, Excel INDEX također se može koristiti za stvaranje referenci dinamičkog raspona. Za razliku od OFFSET, funkcija INDEX nije nepostojana, pa neće usporiti vaš Excel.

      3. INDIRECT funkcija programa Excel

        Pomoću INDIRECT funkcije možete stvoriti dinamički raspon reference iz mnogih izvora kao što su vrijednosti ćelija, vrijednosti ćelija i tekst, imenovani rasponi. Također se može dinamički referirati na drugi Excel list ili radnu knjigu. Sve ove primjere formula možete pronaći u našem vodiču za Excel INDIRECT funkciju.

      Sjećate li se pitanja postavljenog na početku ovog vodiča - Što je OFFSET u Excelu? Nadam se da sada znate odgovor : ) Ako želite još malo praktičnog iskustva, slobodno preuzmite našu radnu bilježnicu za vježbanje (molimo pogledajte dolje) koja sadrži sve formule o kojima se govorilo na ovom stranicu i obrnutim inženjeringom ih radi dubljeg razumijevanja. Hvala vam na čitanju!

      Vježbe za preuzimanje

      Primjeri OFFSET formule (.xlsx datoteka)

      za pomicanje s početne točke, gore ili dolje. Ako je redak pozitivan broj, formula se pomiče ispod početne reference, u slučaju negativnog broja ide iznad početne reference.
    • Cols - Broj stupaca za koje želite formulu pomaknuti se s početne točke. Kao i redovi, stupci mogu biti pozitivni (desno od početne reference) ili negativni (lijevo od početne reference).

    Neobavezni argumenti:

    • Visina - broj redaka za vraćanje.
    • Širina - broj stupaca za vraćanje.

    I visina i argumenti širine uvijek moraju biti pozitivni brojevi. Ako je bilo koje izostavljeno, zadana je visina ili širina reference .

    Napomena. OFFSET je nepostojana funkcija i može usporiti vaš radni list. Sporost je izravno proporcionalna broju ponovno izračunatih ćelija.

    A sada, ilustrirajmo teoriju primjerom najjednostavnije formule OFFSET.

    Primjer formule OFFSET programa Excel

    Ovdje je primjer jednostavne formule OFFSET koja vraća referencu ćelije na temelju početne točke, redaka i stupaca koje navedete:

    =OFFSET(A1,3,1)

    Formula govori Excelu da uzme ćeliju A1 kao početna točka (referenca), zatim pomaknite 3 retka prema dolje (argument rows) i 1 stupac ulijevo (argument cols). Kao rezultat, ova formula OFFSET vraća vrijednost u ćeliji B4.

    Slika lijevoprikazuje rutu funkcije, a snimka zaslona s desne strane pokazuje kako možete koristiti formulu OFFSET na podacima iz stvarnog života. Jedina razlika između dviju formula je u tome što druga (desno) uključuje referencu ćelije (E1) u argumentu redaka. No budući da ćelija E1 sadrži broj 3, a potpuno isti broj pojavljuje se u argumentu redaka prve formule, obje bi vratile identičan rezultat - vrijednost u B4.

    Formule OFFSET programa Excel - stvari koje treba zapamtiti

    • Funkcija OFFSET znači da Excel zapravo ne pomiče nijednu ćeliju ili raspone, ona samo vraća referencu.
    • Kada formula OFFSET vrati raspon ćelija, argumenti redaka i stupaca uvijek se odnose na gornju lijevu ćeliju u vraćenom bijesu.
    • Argument reference mora uključivati ​​ćeliju ili raspon susjednih ćelija, inače će vaša formula vratiti #VALUE! pogreška.
    • Ako navedeni retci i/ili stupci pomaknu referencu preko ruba proračunske tablice, vaša formula Excel OFFSET vratit će #REF! pogreška.
    • Funkcija OFFSET može se koristiti unutar bilo koje druge Excel funkcije koja prihvaća referencu ćelije/raspona u svojim argumentima.

    Na primjer, ako pokušate upotrijebiti formulu =OFFSET(A1,3,1,1,3) samostalno, izbacit će #VRIJEDNOST! greška, budući da raspon za vraćanje (1 red, 3 stupca) ne stane u jednu ćeliju. Međutim, ako ga ugradite u funkciju SUM, nprovo:

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

    Formula će vratiti zbroj vrijednosti u rasponu od 1 retka do 3 stupca koji je 3 retka ispod i 1 stupac desno od ćelije A1, tj. ukupnih vrijednosti u ćelijama B4:D4.

    Zašto koristim OFFSET u Excelu?

    Sada kada znate što funkcija OFFSET radi, možete zapitajte se "Zašto se truditi koristiti ga?" Zašto jednostavno ne napišete izravnu referencu kao što je B4:D4?

    Excel OFFSET formula je vrlo dobra za:

    Stvaranje dinamičkih raspona : Reference kao što je B1:C4 su statične , što znači da se uvijek odnose na određeni raspon. Ali neke je zadatke lakše izvesti s dinamičkim rasponima. To je osobito slučaj kada radite s promjenjivim podacima, npr. imate radni list na koji se svaki tjedan dodaje novi red ili stupac.

    Dohvaćanje raspona iz početne ćelije . Ponekad možda ne znate stvarnu adresu raspona, iako znate da počinje od određene ćelije. U takvim scenarijima korištenje OFFSET-a u Excelu pravi je način.

    Kako koristiti OFFSET funkciju u Excelu - primjeri formula

    Nadam se da vam nije dosadilo toliko teorije . U svakom slučaju, sada dolazimo do najuzbudljivijeg dijela - praktične upotrebe OFFSET funkcije.

    Excel OFFSET i SUM funkcije

    Primjer o kojem smo maloprije raspravljali pokazuje najjednostavniju upotrebu OFFSET & ; IZNOS. Sada, pogledajmo ove funkcije iz drugog kuta i vidimo štodrugo mogu učiniti.

    Primjer 1. Dinamička formula SUM / OFFSET

    Kada radite s radnim listovima koji se stalno ažuriraju, možda ćete htjeti imati formulu SUM koja automatski odabire sve novo dodane retke.

    Pretpostavimo da imate izvorne podatke slične onima koje vidite na snimci zaslona u nastavku. Svaki mjesec dodaje se novi red neposredno iznad formule SUM i naravno, želite da bude uključen u zbroj. U cjelini, postoje dva izbora - ažurirajte raspon u formuli SUM svaki put ručno ili neka to umjesto vas učini formula OFFSET.

    Budući da prva ćelija od raspon za zbrajanje bit će naveden izravno u formuli SUM, morate samo odlučiti o parametrima za Excelovu funkciju OFFSET, koja će dobiti posljednju ćeliju raspona:

    • Reference - ćelija sadrži zbroj, B9 u našem slučaju.
    • Rows - ćelija odmah iznad zbroja, koja zahtijeva negativan broj -1.
    • Cols - to je 0 jer ne želite mijenjati stupac.

    Dakle, evo uzorka formule SUM / OFFSET:

    =SUM( prva ćelija:(OFFSET( ćelija s ukupnom, -1,0)

    Prilagođena za gornji primjer, formula izgleda ovako:

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

    I kao što je prikazano na slici ispod, radi besprijekorno:

    Primjer 2. Excel OFFSET formula za zbrajanje zadnjih N redaka

    U gornjem primjeru, pretpostavimo da želite znati iznos bonusa zaposljednjih N mjeseci, a ne ukupno. Također želite da formula automatski uključuje sve nove retke koje dodate na list.

    Za ovaj zadatak koristit ćemo Excel OFFSET u kombinaciji s funkcijama SUM i COUNT / COUNTA:

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

    ili

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

    Sljedeći detalji mogu vam pomoći da bolje razumijete formule:

    • Reference - zaglavlje stupca čije vrijednosti želite zbrojiti, ćelija B1 u ovom primjeru.
    • Rows - da biste izračunali broj redaka za pomak, koristite funkciju COUNT ili COUNTA.

      COUNT vraća broj ćelija u stupcu B koje sadrže brojeve, od kojih oduzimate zadnjih N mjeseci (broj je ćelija E1) i dodajete 1.

      Ako je COUNTA funkcija vašeg izbora, ne morate dodati 1, budući da ova funkcija broji sve ćelije koje nisu prazne, a redak zaglavlja s tekstualnom vrijednošću dodaje dodatnu ćeliju koja je potrebna našoj formuli. Imajte na umu da će ova formula ispravno raditi samo na sličnoj strukturi tablice - jedan redak zaglavlja iza kojeg slijede redovi s brojevima. Za različite izglede tablice, možda ćete trebati napraviti neke prilagodbe u formuli OFFSET/COUNTA.

    • Cols - broj stupaca za pomak je nula (0).
    • Height - broj redaka za zbroj naveden je u E1.
    • Width - 1 stupac.

    Upotreba funkcije OFFSET s PROSJEČNO, MAX, MIN

    Na isti način kako smo izračunali bonuse za zadnjih N mjeseci, možetedobiti prosjek zadnjih N dana, tjedana ili godina, kao i pronaći njihove maksimalne ili minimalne vrijednosti. Jedina razlika između formula je naziv prve funkcije:

    =AVERAGE(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))

    Ključ Prednost ovih formula u odnosu na uobičajene AVERAGE(B5:B8) ili MAX(B5:B8) je ta što nećete morati ažurirati formulu svaki put kada se vaša izvorna tablica ažurira. Bez obzira na to koliko je novih redaka dodano ili izbrisano na vašem radnom listu, formule OFFSET uvijek će se odnositi na navedeni broj zadnjih (najnižih) ćelija u stupcu.

    Excel OFFSET formula za stvaranje dinamičkog raspona

    Koristi se zajedno s COUNTA, funkcija OFFSET može vam pomoći da napravite dinamički raspon koji se može pokazati korisnim u mnogim scenarijima, na primjer za stvaranje automatski ažuriranih padajućih popisa.

    Formula OFFSET za dinamički raspon je kako slijedi:

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

    U središtu ove formule koristite funkciju COUNTA da dobijete broj ćelija koje nisu prazne u ciljnom stupcu. Taj broj ide u argument visine OFFSET-a dajući mu upute koliko redaka treba vratiti.

    Osim toga, to je uobičajena formula za pomak, gdje:

    • Referenca je početna točka od koje temeljite pomak, na primjer Sheet1!$A$1.
    • Reci i Cols su oba 0 jer nema stupaca ili redaka za pomak.
    • Širina je 1 stupac.

    Napomena. Ako steizradu dinamičkog raspona u trenutnom listu, nema potrebe uključivati ​​naziv lista u reference, Excel će to učiniti za vas automatski prilikom stvaranja imenovanog raspona. U suprotnom, svakako uključite naziv lista nakon kojeg slijedi uskličnik kao u ovom primjeru formule.

    Nakon što ste izradili dinamički imenovani raspon s gornjom formulom OFFSET, možete koristiti Provjeru valjanosti podataka za izradu dinamičkog padajućeg popisa koji će se automatski ažurirati čim dodate ili uklonite stavke s izvornog popisa.

    Za detaljne upute korak po korak o stvaranju padajućih popisa u Excelu pogledajte sljedeće vodiče:

    • Stvaranje padajućih popisa u Excelu - statički, dinamički, iz druge radne knjige
    • Izrada ovisnog padajućeg popisa

    Excel OFFSET & VLOOKUP

    Kao što svi znaju, jednostavna okomita i vodoravna pretraga izvode se pomoću funkcije VLOOKUP odnosno HLOOKUP. Međutim, ove funkcije imaju previše ograničenja i često se spotiču u moćnijim i složenijim formulama pretraživanja. Dakle, da biste izvršili sofisticiranije pretrage u svojim Excel tablicama, morate potražiti alternative kao što su INDEX, MATCH i OFFSET.

    Primjer 1. OFFSET formula za Vlookup lijevo u Excelu

    Jedno od najzloglasnijih ograničenja funkcije VLOOKUP je nemogućnost gledanja ulijevo, što znači da VLOOKUP može vratiti vrijednost samodesno od stupca pretraživanja.

    U našoj oglednoj tablici pretraživanja postoje dva stupca - imena mjeseci (stupac A) i bonusi (stupac B). Ako želite dobiti bonus za određeni mjesec, ova jednostavna VLOOKUP formula radit će bez problema:

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

    Međutim, čim zamijenite stupce u tablici pretraživanja, ovo odmah će rezultirati pogreškom #N/A:

    Da biste upravljali pretraživanjem s lijeve strane, potrebna vam je svestranija funkcija koja zapravo ne mari gdje se nalazi povratni stupac . Jedno od mogućih rješenja je korištenje kombinacije funkcija INDEX i MATCH. Drugi pristup je korištenje OFFSET, MATCH i 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)

    Gdje:

    • Lookup_col_offset - je broj stupaca za pomicanje od početne točke do stupca pretraživanja.
    • Return_col_offset - je broj stupaca za pomicanje od početne točke do povratka stupac.

    U našem primjeru, tablica pretraživanja je A5:B9, a vrijednost pretraživanja je u ćeliji B1, pomak stupca pretraživanja je 1 (jer tražimo vrijednost pretraživanja u drugom stupcu (B ), moramo pomaknuti 1 stupac udesno od početka tablice), povratni pomak stupca je 0 jer vraćamo vrijednosti iz prvog

    Michael Brown predani je tehnološki entuzijast sa strašću za pojednostavljivanjem složenih procesa pomoću softverskih alata. S više od desetljeća iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google tablicama i dokumentima. Michaelov blog posvećen je dijeljenju znanja i stručnosti s drugima, pružajući savjete i upute koje je lako slijediti za poboljšanje produktivnosti i učinkovitosti. Bez obzira jeste li iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.