Sisukord
Selles õpetuses heidame valgust ühele Exceli universumi kõige salapärasemale elanikule - funktsioonile OFFSET.
Mis on siis OFFSET Excelis? Lühidalt öeldes annab valem OFFSET tagasi viite vahemikule, mis on algsest lahtrist või lahtrite vahemikust nihkes määratud arvu ridade ja veergude võrra.
Funktsioon OFFSET võib olla veidi keeruline, seega vaatame kõigepealt läbi lühikese tehnilise selgituse (ma annan endast parima, et hoida see lihtne) ja seejärel käsitleme mõningaid kõige tõhusamaid viise OFFSETi kasutamiseks Excelis.
Excel OFFSET funktsioon - süntaks ja põhilised kasutusalad
Exceli funktsioon OFFSET tagastab lahtri või rakkude vahemiku, mis on antud arvu ridade ja veergude kaugusel antud lahtrist või vahemikust.
Funktsiooni OFFSET süntaks on järgmine:
OFFSET(reference, rows, cols, [height], [width])Esimesed 3 argumenti on kohustuslikud ja viimased 2 on valikulised. Kõik argumendid võivad olla viited teistele lahtritele või teiste valemite poolt tagastatud tulemustele.
Tundub, et Microsoft on teinud häid jõupingutusi, et anda parameetrite nimedele mingi tähendus, ja nad annavad vihjeid, mida peaksite igas parameetris täpsustama.
Vajalikud argumendid:
- Viide - lahtrit või kõrvuti asetsevate lahtrite vahemikku, millest lähtute nihkega. Võite mõelda sellele kui alguspunktile.
- Rid - Ridade arv, mis liigub alguspunktist üles- või allapoole. Kui ridade arv on positiivne, liigub valem alguspunktist allapoole, negatiivse arvu korral alguspunktist ülespoole.
- Cols - Veergude arv, mida soovite, et valem liiguks alguspunktist. Nagu ka read, võivad ka veerud olla positiivsed (alguspunktist paremale) või negatiivsed (alguspunktist vasakule).
Vabatahtlikud argumendid:
- Kõrgus - tagastatavate ridade arv.
- Laius - tagastatavate veergude arv.
Nii kõrgus kui ka laius peavad alati olema positiivsed arvud. Kui kumbki neist jäetakse välja, kasutatakse vaikimisi kõrgust või laiust viide .
Märkus. OFFSET on volatiilne funktsioon ja võib teie töölehte aeglustada. Aeglus on otseselt proportsionaalne ümberarvutatud lahtrite arvuga.
Ja nüüd illustreerime teooriat lihtsaima OFFSET-valemi näite abil.
Exceli OFFSET-valemi näide
Siin on näide lihtsast OFFSET-valemist, mis tagastab lahtriviite, mis põhineb teie poolt määratud alguspunktil, ridadel ja veerudel:
=OFFSET(A1,3,1)
Valem ütleb Excelile, et ta võtaks lahtri A1 alguspunktiks (viide), seejärel liiguks 3 rida allapoole (argument rows) ja 1 veerg vasakule (argument cols). Selle tulemusena annab see valem OFFSET väärtuse lahtris B4.
Vasakul olev pilt näitab funktsiooni marsruuti ja paremal olev ekraanipilt näitab, kuidas saab kasutada valemit OFFSET reaalsete andmete peal. Ainus erinevus kahe valemi vahel on see, et teine valem (paremal) sisaldab ridade argumendis lahtriviidet (E1). Kuna aga lahter E1 sisaldab numbrit 3, siis täpselt sama number esineb ka esimese valemi ridade argumendis,mõlemad annaksid identse tulemuse - väärtuse B4.
Exceli OFFSET-vormelid - asju, mida meeles pidada
- Funktsioon OFFSET ei liiguta Excelis tegelikult ühtegi lahtrit või vahemikku, vaid tagastab lihtsalt viite.
- Kui valem OFFSET tagastab lahtrite vahemiku, viitavad read ja cols argumendid alati tagastatava rahe vasakpoolsele ülemisele lahtrile.
- Viiteargument peab sisaldama lahtrit või kõrvuti asetsevate lahtrite vahemikku, vastasel juhul annab teie valem tagasi vea #VALUE!.
- Kui määratud read ja/või veerud liigutavad viite üle tabeli serva, annab teie Exceli valem OFFSET tagasi vea #REF!.
- Funktsiooni OFFSET saab kasutada mis tahes muus Exceli funktsioonis, mis võtab oma argumentides vastu lahtri/vahemiku viite.
Näiteks, kui te proovite kasutada valemit =OFFSET(A1,3,1,1,1,3)
iseenesest viskab see #VALUE! vea, kuna tagastatav vahemik (1 rida, 3 veergu) ei mahu ühte lahtrisse. Kui aga põimida see funktsiooni SUM, näiteks nii:
=SUM(OFFSET(A1,3,1,1,1,3))
Valem tagastab väärtuste summa 1 rea ja 3 veeru vahelises vahemikus, mis asub 3 rida allpool ja 1 veerg paremal lahtrist A1, st lahtrite B4:D4 väärtuste summa.
Miks ma kasutan Excelis OFFSETi?
Nüüd, kui te teate, mida OFFSET-funktsioon teeb, võite küsida endalt: "Miks seda kasutada?" Miks mitte lihtsalt kirjutada otseviide nagu B4:D4?
Exceli valem OFFSET on väga hea:
Dünaamiliste vahemike loomine : Viited nagu B1:C4 on staatilised, mis tähendab, et nad viitavad alati antud vahemikule. Kuid mõningaid ülesandeid on lihtsam täita dünaamiliste vahemike abil. See kehtib eriti siis, kui töötate muutuvate andmetega, näiteks kui teil on tööleht, kuhu igal nädalal lisatakse uus rida või veerg.
Vahemiku saamine lähtekohast Mõnikord ei pruugi te teada vahemiku tegelikku aadressi, kuigi teate, et see algab teatud lahtrist. Selliste stsenaariumide puhul on Exceli OFFSETi kasutamine õige viis.
Kuidas kasutada OFFSET funktsiooni Excelis - valemite näited
Ma loodan, et te ei ole tüdinenud nii palju teooriast. Igatahes, nüüd jõuame kõige põnevama osa juurde - OFFSET-funktsiooni praktilise kasutamise juurde.
Exceli OFFSET ja SUM funktsioonid
Näide, mida me hetk tagasi arutasime, näitab OFFSET & SUM kõige lihtsamat kasutamist. Nüüd vaatame neid funktsioone teise nurga alt ja vaatame, mida nad veel teha saavad.
Näide 1. Dünaamiline SUMMA / OFFSET valem
Kui töötate pidevalt uuendatud töölehtedega, võite soovida kasutada valemit SUM, mis valib automaatselt kõik äsja lisatud read.
Oletame, et teil on lähteandmed, mis on sarnased alloleval ekraanipildil kujutatud andmetega. Igal kuul lisatakse uus rida vahetult SUMMA valemi kohal ja loomulikult soovite, et see oleks kaasatud summasse. Kokkuvõttes on kaks võimalust - kas uuendada SUMMA valemi vahemikku iga kord käsitsi või lasta OFFSET-valemil seda teie eest teha.
Kuna summeeritava vahemiku esimene lahter määratakse otse valemis SUM, peate otsustama ainult Exceli OFFSET-funktsiooni parameetrid, mis saavad vahemiku viimase lahtri:
Viide
- lahter, mis sisaldab kogusummat, meie puhul B9.Rid
- lahter otse summa kohal, mis nõuab negatiivset arvu -1.Cols
- see on 0, sest te ei taha veergu muuta.
Niisiis, siin läheb SUM / OFFSET valemiga muster:
=SUM( esimene lahter :(OFFSET( rakk, mille kogusumma on , -1,0)Ülaltoodud näite jaoks kohandatud valem näeb välja järgmiselt:
=SUMMA(B2:(OFFSET(B9, -1, 0)))
Ja nagu allpool olevast ekraanipildist näha, töötab see laitmatult:
Näide 2. Exceli OFFSET-valem viimaste N rea summeerimiseks
Eeldame, et ülaltoodud näites soovite teada viimase N kuu boonuste summat, mitte kogusummat. Samuti soovite, et valem sisaldaks automaatselt kõiki uusi ridu, mida lisate lehele.
Selle ülesande jaoks kasutame Exceli OFFSETi koos funktsioonidega SUM ja COUNT / COUNTA:
=SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))
või
=SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))
Järgmised üksikasjad aitavad teil valemeid paremini mõista:
Viide
- selle veeru päise, mille väärtusi soovite summeerida, antud näites lahter B1.Rid
- nihutatavate ridade arvu arvutamiseks kasutate kas funktsiooni COUNT või COUNTA.COUNT tagastab veerus B olevate numbreid sisaldavate lahtrite arvu, millest lahutate viimased N kuud (number on lahter E1) ja lisate 1.
Kui COUNTA on teie valitud funktsioon, siis ei ole vaja lisada 1, sest see funktsioon loeb kõiki mitte-tühje lahtreid ja teksti väärtusega päise rida lisab ühe lisaraku, mida meie valem vajab. Pange tähele, et see valem töötab õigesti ainult sarnase tabeli struktuuri korral - üks päise rida, millele järgnevad numbritega read. Teistsuguse tabeli paigutuse korral võib olla vaja teha mõningaid kohandusi tabelisOFFSET/COUNTA valem.
Cols
- nihutatavate veergude arv on null (0).Kõrgus
- summeeritavate ridade arv on määratud punktis E1.Laius
- 1 veerg.
OFFSET funktsiooni kasutamine koos AVERAGE, MAX, MIN funktsioonidega
Samamoodi, nagu me arvutasime boonuseid viimase N kuu kohta, saate saada viimase N päeva, nädala või aasta keskmise ning leida nende maksimaalsed või minimaalsed väärtused. Ainus erinevus valemite vahel on esimese funktsiooni nimi:
= 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))
Nende valemite peamine eelis tavapäraste valemite AVERAGE(B5:B8) või MAX(B5:B8) ees on see, et te ei pea valemit uuendama iga kord, kui teie lähtetabelit uuendatakse. Ükskõik kui palju uusi ridu teie töölehel lisatakse või kustutatakse, OFFSET-vormelid viitavad alati määratud arvu viimastele (kõige alumistele) lahtritele veerus.
Exceli OFFSET valem dünaamilise vahemiku loomiseks
Funktsiooni OFFSET saab koos funktsiooniga COUNTA kasutada dünaamilise vahemiku loomiseks, mis võib osutuda kasulikuks paljudes stsenaariumides, näiteks automaatselt uuendatavate ripploendite loomiseks.
Dünaamilise vahemiku OFFSET valem on järgmine:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Selle valemi keskmes kasutate funktsiooni COUNTA, et saada sihtveergu tühjade lahtrite arv. See arv läheb OFFSETi kõrguse argumendiks, mis annab juhiseid, mitu rida tagasi anda.
Peale selle on see tavaline Offset valem, kus:
- Viide on alguspunkt, millest lähtute nihke aluseks, näiteks Sheet1!$A$1.
- Rid ja
Cols
on mõlemad 0, sest puuduvad nihutatavad veerud ja read. - Laius on 1 veerg.
Märkus. Kui teete dünaamilise vahemiku praegusel lehel, ei ole vaja lisada lehe nime viidetesse, Excel teeb seda automaatselt teie eest, kui te loote nimelise vahemiku. Vastasel juhul lisage kindlasti lehe nimi, millele järgneb hüüumärk, nagu selles valemi näites.
Kui olete ülaltoodud valemiga OFFSET loonud dünaamilise nimega vahemiku, saate kasutada Data Validation'i, et luua dünaamiline ripploend, mis uuendatakse automaatselt, kui lisate või eemaldate elemente lähteloendist.
Üksikasjalikud samm-sammulised juhised Exceli ripploendite loomiseks leiate järgmistest õpetustest:
- Exceli ripploendite loomine - staatiline, dünaamiline, teisest töövihikust
- Sõltuva ripploendi tegemine
Excel OFFSET & VLOOKUP
Nagu kõik teavad, tehakse lihtsaid vertikaalseid ja horisontaalseid otsinguid vastavalt funktsiooniga VLOOKUP või HLOOKUP. Nendel funktsioonidel on aga liiga palju piiranguid ja nad komistavad sageli võimsamates ja keerulisemates otsinguvormelites. Seega, et teha oma Exceli tabelites keerulisemaid otsinguid, peate otsima alternatiive, nagu INDEX, MATCH ja OFFSET.
Näide 1. OFFSET-valem vasakpoolse Vlookup'i jaoks Excelis
Üks VLOOKUP-funktsiooni kõige kurikuulsamaid piiranguid on võimetus vaadata selle vasakule poole, mis tähendab, et VLOOKUP saab tagastada ainult otsingusammast paremale jääva väärtuse.
Meie näidistabelis on kaks veergu - kuude nimed (veerg A) ja boonused (veerg B). Kui soovite saada teatud kuu boonust, töötab see lihtne VLOOKUP-valem tõrgeteta:
=VLOOKUP(B1, A5:B11, 2, FALSE)
Kuid niipea, kui te vahetate tabeli veerge, tekib kohe #N/A viga:
Vasakpoolse otsinguga tegelemiseks on vaja mitmekülgsemat funktsiooni, mis ei hooli sellest, kus tagastatav veerg asub. Üks võimalik lahendus on kasutada funktsioonide INDEX ja MATCH kombinatsiooni. Teine lähenemine on kasutada OFFSET, MATCH ja 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)Kus:
- Lookup_col_offset - on veergude arv, mis tuleb alguspunktist otsingusammastesse liigutada.
- Return_col_offset - on veergude arv, mis tuleb alguspunktist tagasiulatuvasse veergu viia.
Meie näites on otsingutabel A5:B9 ja otsinguväärtus on lahtris B1, otsingu veeru nihe on 1 (kuna me otsime otsinguväärtust teises veerus (B), peame tabeli algusest 1 veeru võrra paremale liikuma), tagastussamba nihe on 0, kuna me tagastame väärtusi esimesest veerust (A):
=OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1, 1)
Ma tean, et valem näeb natuke kohmakas välja, aga see töötab :)
Näide 2. Kuidas teha ülemine otsing Excelis
Nagu VLOOKUP ei saa vaadata vasakule, ei saa ka selle horisontaalne vaste - HLOOKUP funktsioon - vaadata ülespoole, et tagastada väärtust.
Kui teil on vaja otsida ülemist rida vasteid, võib OFFSET MATCH valem taas aidata, kuid seekord peate seda täiustama COLUMNS funktsiooniga, näiteks nii:
OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, VEERUD( lookup_table )), 0) -1, 1, 1)Kus:
- Lookup_row_offset - ridade arv, mis tuleb alguspunktist otsingurivile viia.
- Return_row_offset - ridade arv, mida tuleb alguspunktist tagasi pöördumise reale liigutada.
Eeldades, et otsingutabel on B4:F5 ja otsinguväärtus on lahtris B1, on valem järgmine:
=OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 1, COLUMNS(B4:F5)), 0) -1, 1, 1, 1)
Meie puhul on otsingurivi nihkeks 1, sest meie otsinguväli on 1 rida allapoole alguspunktist, tagastatava rea nihkeks on 0, sest me tagastame vasteid tabeli esimesest reast.
Näide 3. Kahesuunaline otsing (veeru ja rea väärtuste järgi)
Kahesuunaline otsing tagastab väärtuse, mis põhineb nii ridade kui ka veergude vastetel. Ja te võite kasutada järgmist topeltotsingu massiivi valemit, et leida väärtus teatud rea ja veeru ristumiskohas:
=OFFSET( otsingutabeli , MATCH( rea otsinguväärtus , OFFSET( otsingutabeli , 0, 0, ROWS( otsingutabeli ), 1), 0) -1, MATCH( veeru otsinguväärtus , OFFSET( otsingutabeli , 0, 0, 1, VEERUD( otsingutabeli )), 0) -1)Arvestades seda:
- Otsingutabel on A5:G9
- Ridade vastav väärtus on B2-s.
- Veergude vastav väärtus on B1-s.
Saate järgmise kahemõõtmelise otsinguvormeli:
=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)
See ei ole kõige lihtsam meeles pidada, eks ole? Lisaks on see massiivi valem, nii et ärge unustage vajutada Ctrl + Shift + Enter, et seda õigesti sisestada.
Loomulikult ei ole see pikk OFFSET-valem ainus võimalik viis Excelis kahesuunalise otsingu tegemiseks. Sama tulemuse saate saavutada, kasutades funktsioone VLOOKUP & MATCH, SUMPRODUCT või INDEX & MATCH. On olemas isegi valemivaba viis - kasutada nimetatud vahemikke ja ristamisoperaatorit (tühik). Järgnevas õpetuses on kõik alternatiivsed lahendused üksikasjalikult selgitatud: Kuidas teha kahesuunalistotsing Excelis.
OFFSET funktsioon - piirangud ja alternatiivid
Loodetavasti on sellel leheküljel olevad valemite näited valgustanud OFFSETi kasutamist Excelis. Kuid selleks, et seda funktsiooni oma töövihikutes tõhusalt kasutada, peaksite lisaks selle tugevatele külgedele tundma ka selle nõrku külgi.
Exceli OFFSET-funktsiooni kõige kriitilisemad piirangud on järgmised:
- Nagu teised volatiilsed funktsioonid, on ka OFFSET ressursinõudlik funktsioon Kui lähteandmed muutuvad, arvutatakse teie OFFSET-valemid uuesti, mis hoiab Exceli veidi kauem hõivatud. See ei ole probleem ühe valemi puhul väikeses tabelis. Kui aga töövihikus on kümneid või sadu valemeid, võib Microsoft Excelil võtta üsna kaua aega ümberarvutamiseks.
- Exceli OFFSET-valemid on raske üle vaadata Kuna OFFSET-funktsiooniga tagastatavad viited on dünaamilised, võib suurte valemite (eriti sisseehitatud OFFSETidega) vigade kõrvaldamine olla üsna keeruline.
Alternatiivid OFFSETi kasutamisele Excelis
Nagu Excelis sageli juhtub, saab sama tulemust saavutada mitmel erineval viisil. Siin on kolm elegantset alternatiivi OFFSETile.
- Exceli tabelid
Alates Excel 2002-st on meil tõeliselt imeline funktsioon - täieõiguslikud Exceli tabelid, erinevalt tavalistest vahemikest. Struktureeritud andmetest tabeli tegemiseks klõpsake lihtsalt nuppu Insert> Tabel kohta Kodu või vajutage Ctrl + T .
Sisestades Exceli tabeli ühte lahtrisse valemi, saate luua nn "arvutatud veeru", mis automaatselt kopeerib valemi kõikidesse teistesse lahtritesse selles veerus ja kohandab valemi iga tabeli rea jaoks.
Lisaks sellele kohanduvad kõik valemid, mis viitavad tabeli andmetele, automaatselt nii, et need hõlmavad kõiki uusi ridu, mida tabelisse lisate, või jätavad välja read, mida kustutate. Tehniliselt töötavad sellised valemid tabeli veergudel või ridadel, mis on dünaamilised vahemikud olemuselt. Igal töövihiku tabelil on unikaalne nimi (vaikimisi on tabel1, tabel2 jne.) ja te võite oma tabelit vabalt ümber nimetada funktsiooni Disain tab> Omadused rühm> Tabeli nimi tekstikast.
Järgnev ekraanipilt näitab SUM valemit, mis viitab Boonus tabeli3 veergu. Palun pöörake tähelepanu, et valem sisaldab tabeli veeru nimi pigem kui rakkude vahemik.
- Exceli INDEX funktsioon
Kuigi mitte täpselt samamoodi nagu OFFSET, saab Exceli INDEXi kasutada ka dünaamiliste vahemikuviidete loomiseks. Erinevalt OFFSETist ei ole INDEX funktsioon lenduv, seega ei aeglusta see Exceli tööd.
- Exceli funktsioon INDIRECT
Funktsiooni INDIRECT abil saate luua dünaamilisi vahemiku viiteid paljudest allikatest, nagu lahtri väärtused, lahtri väärtused ja tekst, nimetatud vahemikud. Samuti saab dünaamiliselt viidata teisele Exceli lehele või töövihikule. Kõik need valemite näited leiate meie Exceli funktsiooni INDIRECT õpetusest.
Kas mäletate selle õpetuse alguses esitatud küsimust - Mis on OFFSET Excelis? Loodan, et nüüd teate vastust : ) Kui soovite rohkem praktilisi kogemusi, laadige alla meie praktiline töövihik (vt allpool), mis sisaldab kõiki sellel leheküljel käsitletud valemeid ja pöörake neid sügavama arusaamise eesmärgil tagasi. Tänan teid lugemise eest!
Praktiline töövihik allalaadimiseks
OFFSET-valemi näited (.xlsx fail)