Tartalomjegyzék
Ebben a bemutatóban az Excel-univerzum egyik legrejtélyesebb lakója, az OFFSET függvényt fogjuk megvilágítani.
Mi is az OFFSET az Excelben? Dióhéjban az OFFSET formula egy olyan tartományra való hivatkozást ad vissza, amely egy kezdő cellától vagy egy cellatartománytól meghatározott számú sorral és oszloppal van eltolva.
Az OFFSET függvény egy kicsit trükkös lehet, ezért először egy rövid technikai magyarázatot adunk (mindent megteszek, hogy egyszerű legyen), majd az OFFSET Excelben való használatának néhány leghatékonyabb módját mutatjuk be.
Excel OFFSET függvény - szintaxis és alapvető felhasználások
Az Excel OFFSET függvénye egy olyan cellát vagy cellatartományt ad vissza, amely adott számú sor és oszlop távolságra van egy adott cellától vagy tartománytól.
Az OFFSET funkció szintaxisa a következő:
OFFSET(reference, rows, cols, [height], [width])Az első 3 argumentum kötelező, az utolsó 2 pedig opcionális. Az összes argumentum lehet hivatkozás más cellákra vagy más képletek által visszaadott eredményekre.
Úgy tűnik, hogy a Microsoft igyekezett értelmet adni a paraméterek nevének, és utalást adnak arra, hogy mit kell megadni az egyes paraméterekben.
Szükséges érvek:
- Hivatkozás - egy cella vagy szomszédos cellák tartománya, amelyből kiindulva az eltolás történik. Úgy is gondolhat rá, mint a kiindulási pontra.
- Sorok - A kiindulási ponttól felfelé vagy lefelé mozgatandó sorok száma. Ha a sorok száma pozitív, a képlet a kiindulási referencia alá mozog, negatív szám esetén a kiindulási referencia fölé.
- Cols - Az oszlopok száma, amelyeket a képletnek a kiindulási ponttól el kell mozdítania. A sorok mellett a oszlopok is lehetnek pozitívak (a kiindulási referenciától jobbra) vagy negatívak (a kiindulási referenciától balra).
Választható argumentumok:
- Magasság - a visszaadandó sorok száma.
- Szélesség - a visszaadandó oszlopok száma.
A magasság és a szélesség argumentumoknak mindig pozitív számoknak kell lenniük. Ha bármelyik elhagyható, akkor az alapértelmezett érték a magasság vagy szélesség hivatkozás .
Megjegyzés: Az OFFSET egy illékony függvény, és lelassíthatja a munkalapot. A lassúság egyenesen arányos az újraszámított cellák számával.
Most pedig szemléltetjük az elméletet egy példával, a legegyszerűbb OFFSET képlet segítségével.
Excel OFFSET képlet példa
Íme egy példa egy egyszerű OFFSET képletre, amely egy cellahivatkozást ad vissza a megadott kezdőpont, sorok és oszlopok alapján:
=OFFSET(A1,3,1)
A képlet utasítja az Excelt, hogy az A1 cellát vegye kiindulási pontnak (referencia), majd lépjen 3 sorral lejjebb (rows argumentum) és 1 oszloppal balra (cols argumentum). Ennek eredményeként ez az OFFSET képlet a B4 cellában lévő értéket adja vissza.
A bal oldali képen a függvény útvonala látható, a jobb oldali képernyőkép pedig azt mutatja, hogyan használhatjuk az OFFSET képletet valós adatokon. Az egyetlen különbség a két képlet között az, hogy a második (jobb oldali) képletben a sorok argumentumában szerepel egy cellahivatkozás (E1). Mivel azonban az E1-es cellában a 3. szám szerepel, és pontosan ugyanez a szám szerepel az első képlet sorok argumentumában is,mindkettő azonos eredményt adna vissza - a B4-ben szereplő értéket.
Excel OFFSET képletek - megjegyzendő dolgok
- Az OFFSET funkció az Excelben valójában nem mozgat semmilyen cellát vagy tartományt, csak egy hivatkozást ad vissza.
- Amikor egy OFFSET formula cellatartományt ad vissza, a rows és cols argumentumok mindig a visszaadott tartomány bal felső cellájára vonatkoznak.
- A referenciaargumentumnak tartalmaznia kell egy cellát vagy szomszédos cellák tartományát, különben a képlet a #VALUE! hibát adja vissza.
- Ha a megadott sorok és/vagy oszlopok egy hivatkozást a táblázat szélén túlra helyeznek, az Excel OFFSET képlete a #REF! hibát fogja visszaadni.
- Az OFFSET függvény bármely más Excel-funkcióban használható, amely az argumentumaiban cellahivatkozást/tartományhivatkozást fogad el.
Például, ha a következő képletet próbálja használni =OFFSET(A1,3,1,1,1,3)
önmagában #VALUE! hibát fog dobni, mivel a visszaadandó tartomány (1 sor, 3 oszlop) nem fér bele egyetlen cellába. Ha azonban beágyazod a SUM függvénybe, például így:
=SUM(OFFSET(A1,3,1,1,1,3))
A képlet az A1 cellától 3 sorral lejjebb és 1 oszloppal jobbra lévő 1 soros és 3 oszlopos tartományban lévő értékek összegét adja vissza, azaz a B4:D4 cellákban lévő értékek összegét.
Miért használom az OFFSET-et az Excelben?
Most, hogy már tudod, hogy mit csinál az OFFSET függvény, talán azt kérdezed magadtól: "Miért használod?" Miért nem írsz egyszerűen egy közvetlen hivatkozást, mint például B4:D4?
Az Excel OFFSET képlet nagyon jó:
Dinamikus tartományok létrehozása : Az olyan hivatkozások, mint a B1:C4, statikusak, azaz mindig egy adott tartományra vonatkoznak. Egyes feladatokat azonban könnyebb dinamikus tartományokkal elvégezni. Ez különösen akkor igaz, ha változó adatokkal dolgozunk, például ha van egy munkalapunk, ahol minden héten új sor vagy oszlop kerül be.
A tartomány kinyerése a kezdő cellából Néha előfordulhat, hogy nem ismeri a tartomány tényleges címét, bár tudja, hogy egy bizonyos cellából indul. Ilyen esetekben az OFFSET használata az Excelben a megfelelő megoldás.
Az OFFSET függvény használata az Excelben - képletpéldák
Remélem, nem untad meg ennyi elméletet. Mindegy, most elérkeztünk a legizgalmasabb részhez - az OFFSET függvény gyakorlati alkalmazásához.
Excel OFFSET és SUM funkciók
Az imént tárgyalt példa az OFFSET & SUM legegyszerűbb használatát mutatja be. Most nézzük meg ezeket a függvényeket egy másik szemszögből, és nézzük meg, mire képesek még.
Példa 1. Dinamikus SUM / OFFSET képlet
Ha folyamatosan frissített munkalapokkal dolgozik, érdemes egy olyan SUM-képletet használni, amely automatikusan kiválasztja az összes újonnan hozzáadott sort.
Tegyük fel, hogy az alábbi képernyőképen láthatóhoz hasonló forrásadatokkal rendelkezik. Minden hónapban egy új sor kerül hozzá a SUM formula fölé, és természetesen szeretné, ha ez is bekerülne az összegbe. Összességében két lehetőség van: vagy minden alkalommal manuálisan frissíti a tartományt a SUM képletben, vagy az OFFSET képlet elvégzi ezt Ön helyett.
Mivel az összegzendő tartomány első cellája közvetlenül a SUM képletben lesz megadva, csak az Excel OFFSET függvény paramétereit kell meghatározni, amely a tartomány utolsó celláját kapja meg:
Hivatkozás
- a teljes összeget tartalmazó cellát, esetünkben a B9-et.Sorok
- a jobb oldali cellát az összeg felett, amihez a negatív -1-es számot kell beírni.Cols
- 0, mert nem akarja megváltoztatni az oszlopot.
Tehát, itt jön a SUM / OFFSET képletminta:
=SUM( első cella :(OFFSET( cella teljes , -1,0)A fenti példához igazítva a képlet a következőképpen néz ki:
=SUM(B2:(OFFSET(B9, -1, 0)))
És ahogy az alábbi képernyőképen látható, hibátlanul működik:
Példa 2. Excel OFFSET formula az utolsó N sor összegzésére
A fenti példában tegyük fel, hogy nem az összesített összeget, hanem az elmúlt N hónap bónuszainak összegét szeretné tudni. Azt is szeretné, ha a képlet automatikusan tartalmazná a laphoz hozzáadott új sorokat.
Ehhez a feladathoz az Excel OFFSET és a SUM és COUNT / COUNTA függvények kombinációját fogjuk használni:
=SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))
vagy
=SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))
A következő részletek segíthetnek a képletek jobb megértésében:
Hivatkozás
- annak az oszlopnak a fejlécét, amelynek értékeit összegezni szeretné, ebben a példában a B1 cellát.Sorok
- az eltolandó sorok számának kiszámításához a COUNT vagy a COUNTA függvényt használja.A COUNT a B oszlopban lévő, számokat tartalmazó cellák számát adja vissza, amelyből kivonja az utolsó N hónapot (a szám az E1-es cellában van), és hozzáad 1-et.
Ha a COUNTA a választott függvény, akkor nem kell hozzáadni 1-et, mivel ez a függvény minden nem üres cellát számol, és egy szöveges értékkel rendelkező fejléc sor egy plusz cellát ad hozzá, amelyre a képletünknek szüksége van. Kérjük, vegye figyelembe, hogy ez a képlet csak hasonló táblázatszerkezet esetén működik helyesen - egy fejléc sor, amelyet számsorok követnek. Más táblázatszerkezetek esetén szükség lehet néhány módosításra aOFFSET/COUNTA képlet.
Cols
- az eltolandó oszlopok száma nulla (0).Magasság
- az összegzendő sorok száma az E1-ben van megadva.Szélesség
- 1 oszlop.
Az OFFSET funkció használata az AVERAGE, MAX, MIN funkcióval együtt
Ugyanúgy, ahogyan az elmúlt N hónap bónuszát kiszámítottuk, az elmúlt N nap, hét vagy év átlagát is megkaphatjuk, valamint megtalálhatjuk a maximális vagy minimális értéküket. Az egyetlen különbség a képletek között az első függvény neve:
=ÁTLAG(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))
Ezeknek a képleteknek a legfontosabb előnye a szokásos AVERAGE(B5:B8) vagy MAX(B5:B8) képletekkel szemben az, hogy nem kell minden alkalommal frissítenie a képletet, amikor a forrástábla frissül. Nem számít, hány új sor kerül hozzáadásra vagy törlésre a munkalapon, az OFFSET képletek mindig az oszlop utolsó (legalsó) celláinak meghatározott számára fognak hivatkozni.
Excel OFFSET képlet dinamikus tartomány létrehozásához
A COUNTA funkcióval együtt használva az OFFSET funkció segítségével dinamikus tartományt hozhat létre, ami számos esetben hasznos lehet, például automatikusan frissíthető legördülő listák létrehozásához.
Az OFFSET képlet a dinamikus tartományra a következő:
=OFFSET(Sheet_Name!$A$1, 0, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
A képlet középpontjában a COUNTA függvényt használja a céloszlopban lévő nem üres cellák számának meghatározására. Ez a szám az OFFSET függvény magassági argumentumába kerül, amely megadja, hogy hány sort adjon vissza.
Ettől eltekintve ez egy szokásos Offset formula, ahol:
- Hivatkozás a kiindulási pont, amelyből az eltolás kiindul, például Sheet1!$A$1.
- Sorok és
Cols
mindkettő 0, mert nincsenek eltolandó oszlopok vagy sorok. - Szélesség 1 oszlop.
Megjegyzés: Ha dinamikus tartományt hoz létre az aktuális lapon, nem szükséges a lap nevét a hivatkozásokban feltüntetni, az Excel automatikusan megteszi ezt a nevesített tartomány létrehozásakor. Ellenkező esetben mindenképpen adja meg a lap nevét, amelyet a felkiáltójel követ, mint ebben a képletpéldában.
Miután a fenti OFFSET képlettel dinamikus névtartományt hozott létre, az Adatérvényesítés segítségével dinamikus legördülő listát hozhat létre, amely automatikusan frissül, amint elemeket ad hozzá vagy vesz el a forráslistából.
A legördülő listák Excelben történő létrehozásának részletes, lépésről-lépésre történő útmutatásáért tekintse meg a következő útmutatókat:
- Legördülő listák létrehozása Excelben - statikus, dinamikus, egy másik munkafüzetből
- Függő legördülő lista készítése
Excel OFFSET & VLOOKUP
Mint mindenki tudja, az egyszerű függőleges és vízszintes kereséseket a VLOOKUP, illetve a HLOOKUP függvénnyel lehet elvégezni. Ezeknek a függvényeknek azonban túl sok korlátja van, és gyakran megbotlanak a nagyobb teljesítményű és összetett keresési formulákban. Így ahhoz, hogy kifinomultabb kereséseket hajtson végre az Excel tábláiban, olyan alternatívákat kell keresnie, mint az INDEX, MATCH és OFFSET.
Példa 1. OFFSET képlet egy bal oldali Vlookuphoz az Excelben
A VLOOKUP függvény egyik leghírhedtebb korlátozása, hogy nem képes balra nézni, ami azt jelenti, hogy a VLOOKUP csak a keresési oszloptól jobbra eső értéket adhat vissza.
A mintatáblánkban két oszlop van - a hónapok neve (A oszlop) és a bónuszok (B oszlop). Ha egy adott hónap bónuszát szeretné megkapni, ez az egyszerű VLOOKUP formula gond nélkül működik:
=VLOOKUP(B1, A5:B11, 2, FALSE)
Amint azonban felcseréljük az oszlopokat a keresőtáblában, ez azonnal #N/A hibát eredményez:
A bal oldali keresés kezeléséhez egy sokoldalúbb függvényre van szükség, amely nem igazán törődik azzal, hogy a visszatérő oszlop hol található. Az egyik lehetséges megoldás az INDEX és MATCH függvények kombinációja. Egy másik megközelítés az OFFSET, MATCH és ROWS függvények használata:
OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , ROWS( lookup_table ), 1) ,0) -1, return_col_offset , 1, 1)Hol:
- Lookup_col_offset - az oszlopok száma, amelyeket a kiindulási ponttól a keresési oszlopig kell áthelyezni.
- Return_col_offset - az oszlopok száma, amelyeket a kiindulási ponttól a visszatérő oszlopig kell áthelyezni.
Példánkban a keresési táblázat A5:B9, a keresési érték a B1 cellában van, a keresési oszlop eltolása 1 (mivel a keresési értéket a második oszlopban (B) keressük, ezért a táblázat elejétől 1 oszlopot kell jobbra mozgatnunk), a visszatérési oszlop eltolása 0, mivel az első oszlopból (A) adunk vissza értékeket:
=OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1, 1)
Tudom, hogy a formula kicsit ügyetlenül néz ki, de működik :)
Példa 2. Hogyan készítsünk felső keresést Excelben?
Ahogy a VLOOKUP nem tud balra nézni, úgy a vízszintes megfelelője - a HLOOKUP függvény - sem tud felfelé nézni, hogy értéket adjon vissza.
Ha egy felső sorban kell keresnie a találatokat, az OFFSET MATCH formula ismét segíthet, de ezúttal a COLUMNS funkcióval kell bővítenie, például így:
OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, OSZLOPOK( lookup_table )), 0) -1, 1, 1)Hol:
- Lookup_row_offset - a kiindulási ponttól a keresési sorig áthelyezendő sorok száma.
- Return_row_offset - a kiindulási ponttól a visszatérő sorig áthelyezendő sorok száma.
Feltételezve, hogy a keresési táblázat B4:F5, és a keresési érték a B1 cellában van, a képlet a következőképpen néz ki:
=OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 1, COLUMNS(B4:F5)), 0) -1, 1, 1, 1)
A mi esetünkben a keresési soreltolás 1, mert a keresési tartományunk a kiindulási ponttól 1 sorral lejjebb van, a visszatérési soreltolás 0, mert a táblázat első sorából adjuk vissza a találatokat.
Példa 3. Kétirányú keresés (oszlop- és sorértékek alapján)
A kétirányú keresés a sorokban és az oszlopokban lévő egyezések alapján ad vissza egy értéket. A következő kettős keresési tömb képletet pedig használhatja, ha egy adott sor és oszlop metszéspontjában lévő értéket keres:
=OFFSET( keresőtábla , MATCH( sor keresési érték , OFFSET( keresőtábla , 0, 0, ROWS( keresőtábla ), 1), 0) -1, MATCH( oszlop keresési értéke , OFFSET( keresőtábla , 0, 0, 0, 1, OSZLOPOK( keresőtábla )), 0) -1)Tekintettel arra, hogy:
- A keresési táblázat A5:G9
- A sorokban a B2-ben található az egyezőségi érték.
- Az oszlopokban az egyezőségi érték a B1-ben található.
A következő kétdimenziós keresési képletet kapjuk:
=OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, 0, ROWS(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 1, COLUMNS(A5:G9)), 0) -1) -1)
Nem a legkönnyebb megjegyezni, ugye? Ráadásul ez egy tömbképlet, ezért ne felejtsd el lenyomni a Ctrl + Shift + Enter billentyűkombinációt a helyes bevitelhez.
Természetesen ez a hosszadalmas OFFSET formula nem az egyetlen lehetséges módja a kettős keresés elvégzésének az Excelben. Ugyanezt az eredményt elérheti a VLOOKUP & MATCH függvények, a SUMPRODUCT vagy az INDEX & MATCH használatával. Van még egy képletmentes módszer is - a megnevezett tartományok és a metszéspont operátor (szóköz) használata. A következő bemutató az összes alternatív megoldást részletesen ismerteti: Hogyan készítsünk kétirányú keresést?keresés az Excelben.
OFFSET funkció - korlátok és alternatívák
Remélhetőleg az ezen az oldalon található képletpéldák megvilágították az OFFSET Excelben való használatát. Ahhoz azonban, hogy a függvényt hatékonyan használhassa saját munkafüzeteiben, nemcsak az erősségeit kell ismernie, hanem a gyengeségeivel is óvakodnia kell.
Az Excel OFFSET függvényének legkritikusabb korlátai a következők:
- A többi illékony függvényhez hasonlóan az OFFSET is egy erőforrás-igényes funkció Amikor a forrásadatokban bármilyen változás történik, az OFFSET képletek újraszámításra kerülnek, ami egy kicsit tovább lefoglalja az Excelt. Ez nem jelent problémát egyetlen képlet esetében egy kis táblázatkezelőben. De ha egy munkafüzetben több tucat vagy több száz képlet van, a Microsoft Excelnek elég sokáig tarthat az újraszámítás.
- Az Excel OFFSET képletek a következők nehezen felülvizsgálható Mivel az OFFSET függvény által visszaadott hivatkozások dinamikusak, a nagy képletek (különösen az egymásba ágyazott OFFSET-ek esetében) elég trükkösek lehetnek a hibakeresésnél.
Az OFFSET használatának alternatívái az Excelben
Ahogy az Excelben gyakran előfordul, ugyanazt az eredményt többféleképpen is el lehet érni. Íme tehát az OFFSET három elegáns alternatívája.
- Excel táblázatok
Az Excel 2002 óta egy igazán csodálatos funkcióval rendelkezünk - a szokásos tartományokkal szemben a teljes értékű Excel táblázatokkal. Ahhoz, hogy strukturált adatokból táblázatot készítsen, egyszerűen kattintson a Beszúrás> táblázat a Home lapot, vagy nyomja meg a Ctrl + T billentyűkombinációt.
Ha egy Excel táblázat egyik cellájába beír egy képletet, létrehozhat egy úgynevezett "számított oszlopot", amely automatikusan átmásolja a képletet az oszlop összes többi cellájába, és a táblázat minden egyes sorában módosítja a képletet.
Továbbá, minden olyan képlet, amely egy táblázat adataira hivatkozik, automatikusan kiigazodik, hogy tartalmazza a táblázathoz hozzáadott új sorokat, vagy kizárja a törölt sorokat. Technikailag az ilyen képletek a táblázat oszlopain vagy sorain működnek, amelyek dinamikatartományok A munkafüzetben minden táblázatnak egyedi neve van (az alapértelmezettek a Table1, Table2 stb.), és a táblázatot szabadon átnevezheti a Table1, Table2 stb. Tervezés tab> Tulajdonságok csoport> Asztal neve szövegdoboz.
A következő képernyőkép a SUM képletet mutatja be, amely a Bónusz táblázat3 oszlopát. Kérjük, figyeljen arra, hogy a képlet tartalmazza a táblázat oszlop neve cellák tartománya helyett.
- Excel INDEX funkció
Bár nem pontosan ugyanúgy, mint az OFFSET, az Excel INDEX is használható dinamikus tartományhivatkozások létrehozására. Az OFFSET-tel ellentétben az INDEX funkció nem illékony, így nem lassítja az Excel működését.
- Excel INDIRECT funkció
Az INDIRECT függvény segítségével dinamikus tartományhivatkozásokat hozhat létre számos forrásból, például cellák értékeiből, cellák értékeiből és szövegéből, nevesített tartományokból. Dinamikusan hivatkozhat egy másik Excel lapra vagy munkafüzetre is. Az összes ilyen képletpéldát megtalálhatja az Excel INDIRECT függvény bemutatójában.
Emlékszel a bemutató elején feltett kérdésre - Mi az OFFSET az Excelben? Remélem, most már tudod a választ : ) Ha szeretnél még több gyakorlati tapasztalatot, töltsd le bátran a gyakorló munkafüzetünket (lásd alább), amely tartalmazza az ezen az oldalon tárgyalt összes képletet, és fordítsd vissza őket a mélyebb megértés érdekében. Köszönöm, hogy elolvastad!
Gyakorlati munkafüzet letölthető
OFFSET képlet példák (.xlsx fájl)