Sadržaj
U ovom vodiču ćemo baciti svjetlo na jednog od najmisterioznijih stanovnika Excel svemira - funkciju OFFSET.
Dakle, šta je OFFSET u Excelu? Ukratko, formula OFFSET vraća referencu na raspon koji je pomaknut od početne ćelije ili raspona ćelija za određeni broj redaka i stupaca.
Funkciju OFFSET može biti malo teško dobiti , pa hajde da prvo prođemo kroz kratko tehničko objašnjenje (dat ću sve od sebe da bude jednostavno), a zatim ćemo pokriti nekoliko najefikasnijih načina korištenja OFFSET-a u Excelu.
Excel funkcija OFFSET - sintaksa i osnovne upotrebe
Funkcija OFFSET u Excelu vraća ćeliju ili raspon ćelija koji je dati broj redaka i stupaca iz date ćelije ili raspona.
Sintaksa funkcije OFFSET je sljedeća:
OFFSET(referenca, redovi, kolone, [visina], [širina])Prva 3 argumenta su obavezna, a posljednja 2 su neobavezna. Svi argumenti mogu biti reference na druge ćelije ili rezultati koje vraćaju druge formule.
Izgleda da se Microsoft dobro potrudio da stavi neko značenje u nazive parametara, a oni daju nagoveštaj šta treba da navedu u svakom.
Zahtijevani argumenti:
- Referenca - ćelija ili raspon susjednih ćelija od kojih zasnivate pomak. Možete to zamisliti kao početnu tačku.
- Redovi - Broj redovastupac (A):
=OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1)
Vidi_takođe: Excel LINEST funkcija s primjerima formuleZnam da formula izgleda malo nespretno, ali radi :)
Primjer 2 Kako napraviti gornju pretragu u Excel-u
Kao što je slučaj sa VLOOKUP-om koji ne može gledati lijevo, njegov horizontalni pandan - funkcija HLOOKUP - ne može gledati prema gore da bi vratio vrijednost.
Ako trebate skenirati gornji red u potrazi za podudarnostima, formula OFFSET MATCH može ponovo pomoći, ali ovaj put ćete je morati poboljšati funkcijom COLUMNS, na primjer:
OFFSET( lookup_table , povratni_red_pomak , MATCH( vrijednost_pretraživanja , OFFSET( tablica_pretraživanja , pomak_reda_pretraživanja , 0, 1, COLUMNS( tabela_pretraživanja ) , 0) -1, 1, 1)Gdje:
- Lookup_row_offset - broj redova za pomicanje od početne točke do reda za pretraživanje.
- Return_row_offset - broj redova za pomicanje od početne točke do povratnog reda.
Pod pretpostavkom da je tabela 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 reda 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 reda u tabeli.
Primjer 3. Dvosmjerno traženje (prema vrijednostima kolone i reda)
Dvosmjerno traženje vraća vrijednost na osnovu podudaranja u redovima i kolonama. I možete koristiti sljedećeFormula niza dvostrukog pretraživanja za pronalaženje vrijednosti na presjeku određenog reda i stupca:
=OFFSET( tabela pretraživanja , MATCH( vrijednost pretraživanja reda , OFFSET( tabela pretraživanja , 0, 0, ROWS( tabela pretraživanja ), 1), 0) -1, MATCH( vrijednost traženja kolone , OFFSET( tabela pretraživanja , 0, 0, 1, COLUMNS( tabela traženja )), 0) -1)S obzirom da je:
- Tabela pretraživanja A5:G9
- Vrijednost za podudaranje u redovima je u B2
- Vrijednost za podudaranje u stupcima je u B1
Dobijate 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, tako da ne zaboravite pritisnuti Ctrl + Shift + Enter da je unesete ispravno.
Naravno, ova duga formula OFFSET nije jedini mogući način da se izvrši dvostruko traženje u Excelu. Isti rezultat možete dobiti korištenjem VLOOKUP & MATCH funkcije, SUMPRODUCT ili INDEX & MATCH. Postoji čak i način bez formule - da se koriste imenovani rasponi i operator preseka (razmak). Sljedeći vodič objašnjava sva alternativna rješenja u potpunosti: Kako napraviti dvosmjerno traženje u Excelu.
Funkcija OFFSET - ograničenja i alternative
Nadajmo se da su primjeri formule na ovoj stranici izbacili neke svjetlo o tome kako koristiti OFFSET u Excelu. Međutim, da biste efikasno iskoristili funkciju u svojim radnim sveskama, ne biste samo trebali bitipoznavati njene prednosti, ali također budite oprezni s njegovim slabostima.
Najkritičnija ograničenja funkcije Excel OFFSET su sljedeća:
- Kao i druge promjenjive funkcije, OFFSET je funkcija gladna resursa . Kad god dođe do bilo kakve promjene u izvornim podacima, vaše OFFSET formule se ponovo izračunavaju, zadržavajući Excel zauzet još malo duže. Ovo nije problem za jednu formulu u maloj tabeli. Ali ako postoje desetine ili stotine formula u radnoj svesci, Microsoft Excelu može potrajati dosta vremena da se ponovo izračuna.
- Excel formule OFFSET teško je pregledati . Budući da su reference koje vraća funkcija OFFSET dinamične, velike formule (posebno s ugniježđenim OFFSET-ovima) mogu biti prilično teške za otklanjanje grešaka.
Alternative korištenju OFFSET-a u Excelu
Kao što je često U slučaju u Excelu, isti rezultat se može postići na više različitih načina. Dakle, evo tri elegantne alternative za OFFSET.
- Excel tabele
Od Excela 2002, imamo zaista divnu karakteristiku - potpuno razvijene Excel tabele, za razliku od uobičajeni rasponi. Da biste napravili tabelu od strukturiranih podataka, jednostavno kliknite Insert > Tabela na kartici Home ili pritisnite Ctrl + T .
Unošenjem formule u jednu ćeliju u Excel tablici, možete kreirati takozvanu "izračunatu kolonu" koja automatski kopira formulu u sve ostale ćelije u toj koloni i prilagođavaformula za svaki red u tabeli.
Štaviše, bilo koja formula koja se odnosi na podatke tabele automatski se prilagođava tako da uključuje sve nove redove koje dodate u tabelu ili isključuje redove koje izbrišete. Tehnički, takve formule rade na kolonama ili redovima tabele, koji su po prirodi dinamički rasponi . Svaka tabela u radnoj svesci ima jedinstveno ime (podrazumevano su Table1, Table2, itd.) i možete slobodno preimenovati svoju tabelu preko kartice Dizajn > Svojstva grupe > ; Naziv tabele tekstualni okvir.
Sljedeći snimak ekrana prikazuje formulu SUM koja se odnosi na kolonu Bonus u Tabeli3. Obratite pažnju da formula uključuje ime kolone tabele, a ne raspon ćelija.
- Excel funkcija INDEX
Iako ne baš na isti način kao OFFSET, Excel INDEX se također može koristiti za kreiranje referenci dinamičkog raspona. Za razliku od OFFSET-a, funkcija INDEX nije promjenjiva, tako da neće usporiti vaš Excel.
- Excel INDIRECT funkcija
Upotrebom funkcije INDIRECT možete kreirati 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 odnositi na drugi Excel list ili radnu knjigu. Sve ove primjere formule možete pronaći u našem vodiču za INDIRECT funkciju u Excelu.
Sjećate li se pitanja postavljenog na početku ovog vodiča - Šta je OFFSET u Excelu? Nadam se da sada znate odgovor : ) Ako želite više praktičnog iskustva, slobodno preuzmite našu radnu svesku (pogledajte dolje) koja sadrži sve formule o kojima se raspravljalo o ovome stranicu i obrnuti ih inženjering radi dubljeg razumijevanja. Hvala vam na čitanju!
Vježbanje za preuzimanje
Primjeri formule OFFSET (.xlsx datoteka)
za kretanje od početne tačke, gore ili dole. Ako su redovi pozitivan broj, formula se pomiče ispod početne reference, u slučaju negativnog broja ide iznad početne reference. - Cols - Broj stupaca za koji želite formulu da se pomerite sa početne tačke. Kao i redovi, cols mogu biti pozitivni (desno od početne reference) ili negativni (lijevo od početne reference).
Opcijski argumenti:
- Visina - broj redova za vraćanje.
- Širina - broj kolona koje treba vratiti.
I visina i argumenti širine moraju uvijek biti pozitivni brojevi. Ako je bilo koji od njih izostavljen, zadana je visina ili širina reference .
Napomena. OFFSET je promjenjiva funkcija i može usporiti radni list. Sporost je direktno proporcionalna broju preračunatih ćelija.
A sada, ilustrirajmo teoriju na primjeru najjednostavnije formule OFFSET.
Primjer formule OFFSET u Excelu
Evo primjera jednostavne formule OFFSET koja vraća referencu ćelije na osnovu početne točke, redova i stupaca koje navedete:
=OFFSET(A1,3,1)
Formula govori Excelu da uzme ćeliju A1 kao početna tačka (referenca), zatim pomerite 3 reda dole (argument redova) i 1 kolonu ulevo (argument cols). Kao rezultat, ova formula OFFSET vraća vrijednost u ćeliji B4.
Slika na lijevoj straniprikazuje rutu funkcije, a snimak ekrana sa desne strane pokazuje kako možete koristiti formulu OFFSET na podacima iz stvarnog života. Jedina razlika između ove dvije formule je u tome što druga (desno) uključuje referencu ćelije (E1) u argument rows. Ali pošto ćelija E1 sadrži broj 3, a potpuno isti broj se pojavljuje u argumentu redova prve formule, obje bi vratile identičan rezultat - vrijednost u B4.
Excel formule OFFSET - stvari koje treba zapamtiti
- Funkcija OFFSET je Excel zapravo ne pomiče ćelije ili raspone, samo vraća referencu.
- Kada formula OFFSET vraća raspon ćelija, argumenti rows i cols se uvijek odnose na gornju lijevu ćeliju u vraćenom rageu.
- Referentni argument mora uključivati ćeliju ili raspon susjednih ćelija, inače će vaša formula vratiti #VRIJEDNOST! greška.
- Ako navedeni redovi i/ili stupci pomjere referencu preko ruba proračunske tablice, vaša Excel formula OFFSET će vratiti #REF! greška.
- Funkcija OFFSET se može koristiti unutar bilo koje druge Excel funkcije koja prihvaća referencu ćelije/opseg u svojim argumentima.
Na primjer, ako pokušate koristiti formulu =OFFSET(A1,3,1,1,3)
samostalno, bacit će #VRIJEDNOST! greška, jer opseg za vraćanje (1 red, 3 kolone) ne stane u jednu ćeliju. Međutim, ako ga ugradite u funkciju SUM, nprovo:
=SUM(OFFSET(A1,3,1,1,3))
Formula će vratiti zbir vrijednosti u rasponu 1 red po 3 kolone koji je 3 reda ispod i 1 stupac desno od ćelije A1, tj. ukupno vrijednosti u ćelijama B4:D4.
Zašto koristim OFFSET u Excelu?
Sada kada znate što radi funkcija OFFSET, možete pitajte se "Zašto se truditi da ga koristite?" Zašto jednostavno ne napišete direktnu referencu kao što je B4:D4?
Excel formula OFFSET je vrlo dobra za:
Kreiranje dinamičkih raspona : Reference poput B1:C4 su statične , što znači da se uvijek odnose na dati raspon. Ali neke zadatke je lakše izvesti s dinamičkim rasponima. Ovo je posebno slučaj kada radite sa promjenjivim podacima, npr. imate radni list u koji se svake sedmice dodaje novi red ili stupac.
Dobivanje raspona iz početne ćelije . Ponekad možda ne znate stvarnu adresu opsega, iako znate da počinje od određene ćelije. U takvim scenarijima, korištenje OFFSET u Excelu je pravi put.
Kako koristiti funkciju OFFSET u Excelu - primjeri formule
Nadam se da vam nije dosadilo toliko teorije . U svakom slučaju, sada dolazimo do najuzbudljivijeg dijela - praktične upotrebe funkcije OFFSET.
Excel funkcije OFFSET i SUM
Primjer o kojem smo maloprije govorili pokazuje najjednostavniju upotrebu OFFSET & ; SUMA. Sada, pogledajmo ove funkcije iz drugog ugla i vidimo štadrugo mogu da urade.
Primjer 1. Dinamička formula SUM / OFFSET
Kada radite sa kontinuirano ažuriranim radnim listovima, možda ćete htjeti imati formulu SUM koja automatski bira sve novododate redove.
Pretpostavimo da imate izvorne podatke slične onima koje vidite na slici ispod. Svakog mjeseca dodaje se novi red odmah iznad formule SUM, i naravno, želite da ga uključite u ukupnu vrijednost. U cjelini, postoje dva izbora - ili ažurirati raspon u formuli SUM svaki put ručno ili neka formula OFFSET to učini umjesto vas.
Od prve ćelije opseg za zbroj će biti naveden direktno u formuli SUM, samo morate odlučiti o parametrima za funkciju Excel OFFSET, koja će dobiti posljednju ćeliju raspona:
-
Reference
- ćelija koji sadrži ukupno, B9 u našem slučaju. -
Rows
- ćelija odmah iznad totala, koja zahtijeva negativan broj -1. -
Cols
- to je 0 jer ne želite mijenjati stupac.
Dakle, ovdje ide obrazac formule SUM / OFFSET:
=SUM( prva ćelija:(OFFSET( ćelija sa ukupno, -1,0)Prilagođena za gornji primjer, formula izgleda ovako:
=SUM(B2:(OFFSET(B9, -1, 0)))
I kao što je prikazano na snimku ekrana ispod, radi besprijekorno:
Primjer 2. Excel formula OFFSET za sumiranje posljednjih N redova
U gornjem primjeru, pretpostavimo da želite znati iznos bonusa zaposljednjih N mjeseci umjesto ukupnog iznosa. Također želite da formula automatski uključuje sve nove redove koje dodate na list.
Za ovaj zadatak koristit ćemo Excel OFFSET u kombinaciji sa 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 kolone čije vrijednosti želite da zbrojite, ćelija B1 u ovom primjeru. -
Rows
- da biste izračunali broj redova za pomak, koristite funkciju COUNT ili COUNTA.COUNT vraća broj ćelija u koloni B koje sadrže brojeve, od kojih oduzimate posljednjih N mjeseci (broj je ćelija E1) i dodajete 1.
Ako je COUNTA funkcija po vašem izboru, ne morate dodati 1, jer ova funkcija broji sve neprazne ćelije, a red zaglavlja s vrijednošću teksta 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 red zaglavlja nakon kojeg slijede redovi s brojevima. Za različite izglede tablice, možda ćete morati izvršiti neka podešavanja u formuli OFFSET/COUNTA.
-
Cols
- broj stupaca za pomak je nula (0). -
Height
- broj redova za zbroj je određen u E1. -
Width
- 1 stupac.
Korišćenje funkcije OFFSET sa PROSJEČNIM, MAX, MIN
Na isti način kako smo izračunali bonuse za posljednjih N mjeseci, možetedobiti prosjek posljednjih N dana, sedmica 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čajeni AVERAGE(B5:B8) ili MAX(B5:B8) je da nećete morati da ažurirate formulu svaki put kada se vaša izvorna tabela ažurira. Bez obzira na to koliko je novih redova dodano ili izbrisano u vašem radnom listu, formule OFFSET će se uvijek odnositi na određeni broj posljednjih (najnižih) ćelija u stupcu.
Excel formulu OFFSET za kreiranje dinamičkog raspona
Koristi se u kombinaciji sa 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 kreiranje padajućih lista koje se automatski ažuriraju.
Formula OFFSET za dinamički raspon je kako slijedi:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
U srcu ove formule, koristite funkciju COUNTA da biste dobili broj ćelija koje nisu prazne u ciljnoj koloni. Taj broj ide u argument visine OFFSET-a i upućuje mu koliko redova da vrati.
Osim toga, to je obična formula za pomak, gdje je:
- Referenca je početna tačka od koje zasnivate pomak, na primjer Sheet1!$A$1.
- Redovi i
Cols
su oba 0 jer nema stupaca ili redaka za pomak. - Širina je 1 stupac.
Napomena. Ako steako napravite dinamički raspon u trenutnom listu, nema potrebe da uključite naziv lista u reference, Excel će to učiniti za vas automatski kada kreirate imenovani raspon. U suprotnom, obavezno uključite ime lista praćeno uskličnikom kao u ovom primjeru formule.
Kada kreirate dinamički imenovani raspon s gornjom formulom OFFSET, možete koristiti Validaciju podataka da napravite dinamičku padajuću listu koja će se automatski ažurirati čim dodate ili uklonite stavke sa izvorne liste.
Za detaljne upute korak-po-korak o kreiranju padajućih lista u Excelu, pogledajte sljedeće tutorijale:
- Kreiranje padajućih lista u Excelu - statički, dinamički, iz druge radne knjige
- Pravljenje zavisne padajuće liste
Excel OFFSET & VLOOKUP
Kao što svi znaju, jednostavne vertikalne i horizontalne pretrage se izvode pomoću funkcije VLOOKUP ili HLOOKUP. Međutim, ove funkcije imaju previše ograničenja i često nailaze na moćnije i složenije formule pretraživanja. Dakle, da biste izvršili sofisticiranija pretraživanja u vašim Excel tablicama, morate tražiti alternative kao što su INDEX, MATCH i OFFSET.
Primjer 1. OFFSET formula za lijevo Vlookup u Excelu
Jedno od najozloglašenijih ograničenja funkcije VLOOKUP je nemogućnost gledanja lijevo, što znači da VLOOKUP može vratiti vrijednost samo nadesno od kolone za traženje.
U našoj tabeli za pregled uzorka, postoje dvije kolone - nazivi mjeseci (kolona A) i bonusi (kolona B). Ako želite da dobijete bonus za određeni mjesec, ova jednostavna VLOOKUP formula će raditi bez problema:
=VLOOKUP(B1, A5:B11, 2, FALSE)
Međutim, čim zamijenite stupce u tabeli za pretraživanje, ovo će odmah rezultirati greškom #N/A:
Da biste upravljali traženjem s lijeve strane, potrebna vam je svestranija funkcija kojoj nije bitno 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( tablica_potraži , MATCH( vrijednost_potraži , OFFSET( tablica_pretraživanja , 0, pomak_potraživanja , ROWS( tablica_pretraživanja ), 1) ,0) -1, povrat_col_offset , 1, 1)Gdje:
- Lookup_col_offset - je broj kolona za pomicanje od početne do kolone za traženje.
- Return_col_offset - je broj kolona za pomicanje od početne do povratne kolona.
U našem primjeru, tabela 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 tabele), povratni pomak stupca je 0 jer vraćamo vrijednosti iz prve