Satura rādītājs
Šajā pamācībā mēs pievērsīsimies vienam no noslēpumainākajiem Excel visuma iemītniekiem - funkcijai OFFSET.
Tātad, kas ir OFFSET programmā Excel? Īsumā formulā OFFSET tiek atgriezta atsauce uz diapazonu, kas ir nobīdīts no sākuma šūnas vai šūnu diapazona par noteiktu rindu un kolonnu skaitu.
OFFSET funkcija var būt nedaudz sarežģīta, tāpēc vispirms sniegsim īsu tehnisku skaidrojumu (es centīšos to vienkāršot), un pēc tam mēs aplūkosim dažus visefektīvākos OFFSET izmantošanas veidus programmā Excel.
Excel OFFSET funkcija - sintakse un galvenie lietojumi
Excel funkcija OFFSET atgriež šūnas vai šūnu diapazonu, kas atrodas noteiktu rindu un kolonnu skaitu no noteiktas šūnas vai diapazona.
Funkcijas OFFSET sintakse ir šāda:
OFFSET(atsauce, rindas, cols, [augstums], [platums])Pirmie 3 argumenti ir obligāti, bet pēdējie 2 nav obligāti. Visi argumenti var būt atsauces uz citām šūnām vai citu formulu sniegtie rezultāti.
Izskatās, ka Microsoft ir centusies piešķirt parametru nosaukumiem zināmu nozīmi, un tie sniedz mājienu par to, kas jānorāda katrā parametrā.
Nepieciešamie argumenti:
- Atsauce - šūna vai blakus esošu šūnu diapazons, no kura tiek veikts nobīde. To var uzskatīt par sākuma punktu.
- Rindas - Rindiņu skaits, kas jāpārvieto no sākuma punkta uz augšu vai uz leju. Ja rindas ir pozitīvs skaitlis, formula pārvietojas zem sākuma atskaites, bet negatīva skaitļa gadījumā - virs sākuma atskaites.
- Cols - Sleju skaits, par kādu vēlaties, lai formula pārvietojas no sākuma punkta. Tāpat kā rindas, arī slejas var būt pozitīvas (pa labi no sākuma atsauces) vai negatīvas (pa kreisi no sākuma atsauces).
Neobligātie argumenti:
- Augstums - atgriežamo rindu skaits.
- Platums - atgriežamo kolonnu skaits.
Gan augstuma, gan platuma argumentiem vienmēr jābūt pozitīviem skaitļiem. Ja kāds no šiem argumentiem netiek izmantots, pēc noklusējuma tiek izmantots augstums vai platums atsauce .
Piezīme. OFFSET ir gaistoša funkcija, un tā var palēnināt darblapas darbību. Palēninājums ir tieši proporcionāls pārrēķināto šūnu skaitam.
Tagad ilustrēsim teoriju ar vienkāršākās OFFSET formulas piemēru.
Excel OFFSET formulas piemērs
Šeit ir vienkāršas OFFSET formulas piemērs, kas atgriež atsauci uz šūnu, pamatojoties uz sākuma punktu, rindām un kolonnām, ko norādāt:
=OFFSET(A1,3,1)
Formulā ir norādīts, ka Excel par sākuma punktu (atsauce) jāņem šūna A1, pēc tam tā jāpārvieto par 3 rindām uz leju (arguments rindas) un 1 sleju uz kreiso pusi (arguments cols). Rezultātā šī OFFSET formula atgriež vērtību šūnā B4.
Attēlā pa kreisi ir parādīts funkcijas maršruts, bet ekrānšāviņš pa labi demonstrē, kā var izmantot OFFSET formulu reāliem datiem. Vienīgā atšķirība starp abām formulām ir tā, ka otrajā formulā (pa labi) rindas argumentā ir iekļauta atsauce uz šūnu (E1). Bet, tā kā šūnā E1 ir skaitlis 3, un tieši tāds pats skaitlis parādās pirmās formulas argumentā rindas,abos gadījumos tiktu iegūts identisks rezultāts - vērtība B4.
Excel OFFSET formulas - lietas, kas jāatceras
- OFFSET funkcija programmā Excel faktiski nepārvieto nevienu šūnu vai diapazonu, tā tikai atgriež atsauci.
- Ja ar OFFSET formulu tiek atgriezts šūnu diapazons, rindas un cols argumenti vienmēr attiecas uz augšējo kreiso šūnu atgrieztajā diapazonā.
- Atsauces argumentā jāiekļauj šūna vai blakus esošu šūnu diapazons, pretējā gadījumā formula atgriezīs kļūdu #VALUE!.
- Ja norādītās rindas un/vai slejas pārvieto atsauci pāri izklājlapas malai, Excel OFFSET formula atgriezīs #REF! kļūdu.
- Funkciju OFFSET var izmantot jebkurā citā Excel funkcijā, kuras argumentos var izmantot atsauci uz šūnu/ diapazonu.
Piemēram, ja mēģināt izmantot formulu =OFFSET(A1,3,1,1,1,3)
vienatnē, tā radīs kļūdu #VALUE!, jo atgriežamais diapazons (1 rinda, 3 kolonnas) neiekļaujas vienā šūnā. Tomēr, ja to iestrādāsiet SUM funkcijā, piemēram, šādā veidā:
=SUM(OFFSET(A1,3,1,1,1,3))
Formula atgriezīs vērtību summu 1 rindas un 3 kolonnu diapazonā, kas atrodas 3 rindas zemāk un 1 kolonnu pa labi no šūnas A1, t. i., vērtību summu šūnās B4:D4.
Kāpēc programmā Excel jāizmanto OFFSET?
Tagad, kad zināt, ko dara funkcija OFFSET, iespējams, jautājat sev: "Kāpēc to izmantot?" Kāpēc vienkārši neuzrakstīt tiešu atsauci, piemēram, B4:D4?
Excel OFFSET formula ir ļoti noderīga:
Dinamisko diapazonu izveide : Atsauces, piemēram, B1:C4, ir statiskas, t. i., tās vienmēr attiecas uz konkrēto diapazonu. Tomēr dažus uzdevumus ir vieglāk veikt ar dinamiskiem diapazoniem. Tas jo īpaši attiecas uz gadījumiem, kad strādājat ar mainīgiem datiem, piemēram, ja jums ir darblapa, kurā katru nedēļu tiek pievienota jauna rinda vai sleja.
Diapazona iegūšana no sākuma šūnas Dažreiz jūs nezināt diapazona faktisko adresi, lai gan zināt, ka tas sākas no noteiktas šūnas. Šādos gadījumos pareizais veids ir izmantot OFFSET programmā Excel.
Kā lietot funkciju OFFSET programmā Excel - formulas piemēri
Es ceru, ka jums nav apnicis tik daudz teorijas. Lai nu kā, tagad mēs nonākam pie aizraujošākās daļas - OFFSET funkcijas praktiskā pielietojuma.
Excel OFFSET un SUM funkcijas
Pirms brīža aplūkotais piemērs demonstrē visvienkāršāko OFFSET & amp; SUM izmantošanu. Tagad aplūkosim šīs funkcijas no cita skatu punkta un redzēsim, ko vēl tās spēj paveikt.
Piemērs 1. Dinamiska SUM / OFFSET formula
Strādājot ar pastāvīgi atjauninātām darblapām, iespējams, vēlaties izmantot SUM formulu, kas automātiski atlasa visas jaunpievienotās rindas.
Pieņemsim, ka jums ir avota dati, kas līdzinās attēlā zemāk redzamajam. Katru mēnesi tiek pievienota jauna rinda tieši virs SUM formulas, un, protams, jūs vēlaties, lai tā tiktu iekļauta kopējā summā. Kopumā ir divas iespējas - vai nu katru reizi manuāli atjaunināt SUM formulas diapazonu, vai arī likt OFFSET formulai to darīt jūsu vietā.
Tā kā saskaitāmā diapazona pirmā šūna tiks norādīta tieši formulā SUM, jums ir tikai jāizlemj par Excel OFFSET funkcijas parametriem, kas iegūs diapazona pēdējo šūnu:
Atsauce
- šūnā, kurā ir kopsumma, mūsu gadījumā - B9.Rindas
- šūnā tieši virs kopsummas, kurai ir nepieciešams negatīvs skaitlis -1.Cols
- tas ir 0, jo jūs nevēlaties mainīt kolonnu.
Tātad, šeit ir SUM / OFFSET formulas modelis:
=SUM( pirmā šūna :(OFFSET( šūna ar kopējo , -1,0)Iepriekš minētajā piemērā formula ir šāda:
=SUM(B2:(OFFSET(B9, -1, 0)))
Un, kā parādīts zemāk redzamajā ekrānšāviņā, tas darbojas nevainojami:
Piemērs 2. Excel OFFSET formula, lai summētu pēdējās N rindas
Pieņemsim, ka iepriekš minētajā piemērā vēlaties uzzināt prēmiju summu par pēdējiem N mēnešiem, nevis kopējo summu. Jūs arī vēlaties, lai formula automātiski ietvertu visas jaunas rindas, ko pievienojat lapai.
Šajā uzdevumā mēs izmantosim Excel OFFSET kopā ar SUM un COUNT / COUNTA funkcijām:
=SUM(OFFSET(B1,COUNT(B:B)-E1+1,0,E1,1))
vai
=SUM(OFFSET(B1,COUNTA(B:B)-E1,0,E1,1))
Turpmāk sniegtā informācija var palīdzēt jums labāk izprast formulas:
Atsauce
- tās kolonnas galveni, kuras vērtības vēlaties summēt, šajā piemērā - B1 šūnā.Rindas
- lai aprēķinātu kompensējamo rindu skaitu, izmantojiet funkciju COUNT vai COUNTA.COUNT atgriež B slejas šūnu skaitu, kurās ir skaitļi, no kuriem atņem pēdējos N mēnešus (skaitlis ir šūna E1) un pievieno 1.
Ja jūsu izvēlētā funkcija ir COUNTA, jums nav nepieciešams pievienot 1, jo šī funkcija saskaita visas šūnas, kas nav tukšas, un galvenes rinda ar teksta vērtību pievieno papildu šūnu, kas nepieciešama mūsu formulai. Lūdzu, ņemiet vērā, ka šī formula darbosies pareizi tikai ar līdzīgu tabulas struktūru - vienu galvenes rindu, kurai seko rindas ar skaitļiem. Ja tabulas izkārtojums ir atšķirīgs, var būt nepieciešams veikt dažas korekcijas.OFFSET/COUNTA formula.
Cols
- nobīdāmo kolonnu skaits ir nulle (0).Augstums
- summējamo rindu skaits ir norādīts E1.Platums
- 1 sleja.
Izmantojot OFFSET funkciju ar AVERAGE, MAX, MIN
Tādā pašā veidā, kā mēs aprēķinājām prēmijas par pēdējiem N mēnešiem, jūs varat iegūt vidējo vērtību par pēdējām N dienām, nedēļām vai gadiem, kā arī atrast to maksimālās vai minimālās vērtības. Vienīgā atšķirība starp formulām ir pirmās funkcijas nosaukums:
= VIDĒJAIS(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))
Šo formulu galvenā priekšrocība salīdzinājumā ar parastajām formulām AVERAGE(B5:B8) vai MAX(B5:B8) ir tā, ka formula nav jāatjaunina katru reizi, kad tiek atjaunināta avota tabula. Neatkarīgi no tā, cik daudz jaunu rindu tiek pievienotas vai dzēstas darblapā, OFFSET formulas vienmēr attieksies uz norādīto pēdējo (zemāko) šūnu skaitu kolonnā.
Excel OFFSET formula dinamiskā diapazona izveidei
Izmantojot kopā ar funkciju COUNTA, ar funkciju OFFSET var izveidot dinamisku diapazonu, kas var noderēt daudzos scenārijos, piemēram, lai izveidotu automātiski atjaunināmus nolaižamos sarakstus.
Dinamiskā diapazona OFFSET formula ir šāda:
=OFFSET(Sheet_Name!$A$1, 0, 0, COUNTA(Sheet_Name!$A:$A), 1)
Šīs formulas pamatā ir funkcija COUNTA, lai iegūtu to šūnu skaitu, kas nav tukšas, mērķa kolonnā. Šis skaitlis tiek ievadīts OFFSET augstuma argumentā, norādot, cik daudz rindu jāatgriež.
Papildus tam tā ir parasta ieskaita formula, kurā:
- Atsauce ir sākuma punkts, no kura tiek veikts nobīde, piemēram, Loksne1!$A$1.
- Rindas un
Cols
abas ir 0, jo nav ne kolonnu, ne rindu, kuras varētu nobīdīt. - Platums ir 1 sleja.
Piezīme. Ja dinamisko diapazonu veidojat pašreizējā lapā, atsauces nav nepieciešams iekļaut lapas nosaukumu, Excel to izdarīs automātiski, veidojot nosaukto diapazonu. Pretējā gadījumā noteikti iekļaujiet lapas nosaukumu, kam seko izsaukuma punkts, kā šajā formulas piemērā.
Kad esat izveidojis dinamisku nosaukumu diapazonu ar iepriekš minēto OFFSET formulu, varat izmantot datu validēšanu, lai izveidotu dinamisku nolaižamo sarakstu, kas automātiski atjaunināsies, tiklīdz pievienosiet vai noņemsiet vienumus no avota saraksta.
Lai detalizēti soli pa solim iepazītos ar izlaižamo sarakstu izveidi programmā Excel, skatiet turpmāk norādītās pamācības:
- Izlaižamo sarakstu izveide programmā Excel - statiski, dinamiski, no citas darbgrāmatas
- Atkarīga nolaižamā saraksta izveide
Excel OFFSET & amp; VLOOKUP
Kā zināms, vienkāršas vertikālās un horizontālās meklēšanas funkcijas tiek veiktas, izmantojot attiecīgi VLOOKUP vai HLOOKUP funkciju. Tomēr šīm funkcijām ir pārāk daudz ierobežojumu, un tās bieži vien paklūp jaudīgākās un sarežģītākās meklēšanas formulās. Tāpēc, lai Excel tabulās veiktu sarežģītākas meklēšanas funkcijas, jums ir jāmeklē alternatīvas, piemēram, INDEX, MATCH un OFFSET funkcijas.
Piemērs 1. OFFSET formula kreisajam Vlookup programmā Excel
Viens no bēdīgi slavenākajiem VLOOKUP funkcijas ierobežojumiem ir nespēja skatīties pa kreisi, kas nozīmē, ka VLOOKUP var atgriezt tikai vērtību pa labi no meklēšanas kolonnas.
Mūsu parauga meklēšanas tabulā ir divas kolonnas - mēnešu nosaukumi (A aile) un prēmijas (B aile). Ja vēlaties iegūt prēmiju par konkrētu mēnesi, šī vienkāršā VLOOKUP formula darbosies bez aizķeršanās:
=VLOOKUP(B1, A5:B11, 2, FALSE)
Tomēr, tiklīdz apmaināsiet kolonnas uzmeklēšanas tabulā, uzreiz tiks pieļauta kļūda #N/A:
Lai apstrādātu kreisās puses meklēšanu, ir nepieciešama daudzpusīgāka funkcija, kurai nav svarīgi, kur atrodas atgrieztā sleja. Viens no iespējamiem risinājumiem ir INDEX un MATCH funkciju kombinācija. Cita pieeja ir OFFSET, MATCH un ROWS izmantošana:
OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , ROWS( lookup_table ), 1) ,0) -1, return_col_offset , 1, 1)Kur:
- Lookup_col_offset - ir kolonnu skaits, kas jāpārvieto no sākuma punkta uz meklēšanas kolonnu.
- Return_col_offset - ir kolonnu skaits, kas jāpārvieto no sākuma punkta līdz atgriešanās kolonnai.
Mūsu piemērā meklēšanas tabula ir A5:B9, un meklēšanas vērtība ir B1 šūnā, meklēšanas kolonnas nobīde ir 1 (jo mēs meklējam meklēšanas vērtību otrajā kolonnā (B), mums ir jāpārvieto 1 kolonna pa labi no tabulas sākuma), atgriešanas kolonnas nobīde ir 0, jo mēs atgriežam vērtības no pirmās kolonnas (A):
=OFFSET(A5:B9, MATCH(B1, OFFSET(A5:B9, 0, 1, ROWS(A5:B9), 1) ,0) -1, 0, 1, 1, 1)
Zinu, ka formula izskatās nedaudz neveikli, bet tā darbojas :)
Piemērs 2. Kā veikt augšējo meklēšanu programmā Excel
Līdzīgi kā VLOOKUP gadījumā, kas nespēj skatīties pa kreisi, arī tās horizontālais ekvivalents - HLOOKUP funkcija - nevar skatīties uz augšu, lai atgrieztu vērtību.
Ja jums ir nepieciešams skenēt augšējo rindu, lai atrastu atbilstību, atkal var palīdzēt OFFSET MATCH formula, bet šoreiz tā būs jāuzlabo ar funkciju COLUMNS, piemēram, šādi:
OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, KOLONNAS( lookup_table )), 0) -1, 1, 1)Kur:
- Lookup_row_offset - rindu skaits, kas jāpārvieto no sākuma punkta uz meklēšanas rindu.
- Return_row_offset - rindu skaits, kas jāpārvieto no sākuma punkta uz atgriešanās rindu.
Pieņemot, ka meklēšanas tabula ir B4:F5 un meklēšanas vērtība ir šūnā B1, formula ir šāda:
=OFFSET(B4:F5, 0, MATCH(B1, OFFSET(B4:F5, 1, 0, 1, COLUMNS(B4:F5)), 0) -1, 1, 1, 1)
Mūsu gadījumā meklēšanas rindas nobīde ir 1, jo mūsu meklēšanas diapazons ir 1 rinda uz leju no sākuma punkta, bet atgrieztās rindas nobīde ir 0, jo mēs atgriežam atbilstību no tabulas pirmās rindas.
Piemērs 3. Divvirzienu meklēšana (pēc kolonnas un rindas vērtībām)
Divvirzienu meklēšana atgriež vērtību, pamatojoties uz atbilstību gan rindās, gan kolonnās. Lai atrastu vērtību konkrētas rindas un kolonnas krustpunktā, varat izmantot šādu divvirzienu meklēšanas masīva formulu:
=OFFSET( uzmeklēšanas tabula , MATCH( rindas meklēšanas vērtība , OFFSET( uzmeklēšanas tabula , 0, 0, ROWS( uzmeklēšanas tabula ), 1), 0) -1, MATCH( kolonnas meklēšanas vērtība , OFFSET( uzmeklēšanas tabula , 0, 0, 0, 1, KOLONNAS( uzmeklēšanas tabula )), 0) -1)Ņemot vērā, ka:
- Atvēršanas tabula ir A5:G9.
- Vērtība, kas jāatbilst rindām, ir B2.
- Vērtība, kas jāatbilst kolonnām, ir B1.
Iegūsiet šādu divdimensiju meklēšanas formulu:
=OFFSET(A5:G9, MATCH(B2, OFFSET(A5:G9, 0, 0, 0, RINDAS(A5:G9), 1), 0)-1, MATCH(B1, OFFSET(A5:G9, 0, 0, 0, 1, KOLONNAS(A5:G9)), 0) -1)
To nav visvieglāk atcerēties, vai ne? Turklāt šī ir masīva formula, tāpēc neaizmirstiet nospiest Ctrl + Shift + Enter, lai to ievadītu pareizi.
Protams, šī garā OFFSET formula nav vienīgais iespējamais veids, kā Excel programmā veikt dubulto meklēšanu. To pašu rezultātu var iegūt, izmantojot VLOOKUP & amp; MATCH funkcijas, SUMPRODUCT vai INDEX & amp; MATCH. Ir pat veids bez formulas - izmantot nosauktos diapazonus un krustošanās operatoru (atstarpi). Turpmāk pamācībā ir sīki izskaidroti visi alternatīvie risinājumi: Kā veikt divvirzienu meklēšanu?meklēšanu programmā Excel.
OFFSET funkcija - ierobežojumi un alternatīvas
Cerams, ka šajā lapā sniegtie formulas piemēri ir nedaudz izskaidrojuši OFFSET lietošanu programmā Excel. Tomēr, lai efektīvi izmantotu šo funkciju savās darbgrāmatās, jums ir ne tikai jāpārzina tās stiprās puses, bet arī jāuzmanās no tās vājajām pusēm.
Excel OFFSET funkcijas būtiskākie ierobežojumi ir šādi:
- Tāpat kā citas gaistošās funkcijas, OFFSET ir resursus patērējoša funkcija Kad vien avota datos notiek kādas izmaiņas, jūsu OFFSET formulas tiek pārrēķinātas, tādējādi Excel ir nedaudz ilgāk aizņemts. Tas nav problēma vienai formulai nelielā izklājlapā. Bet, ja darbgrāmatā ir desmitiem vai simtiem formulu, Microsoft Excel var aizņemt diezgan daudz laika, lai veiktu pārrēķinu.
- Excel OFFSET formulas ir grūti pārskatīt Tā kā OFFSET funkcijas atgrieztās atsauces ir dinamiskas, lielas formulas (jo īpaši ar ievietotiem OFFSET) var būt diezgan sarežģīti atkļūdot.
Alternatīvas OFFSET izmantošanai programmā Excel
Kā tas bieži notiek programmā Excel, vienu un to pašu rezultātu var sasniegt dažādos veidos. Tāpēc šeit ir trīs elegantas OFFSET alternatīvas.
- Excel tabulas
Kopš Excel 2002 ir pieejama patiesi brīnišķīga funkcija - pilnvērtīgas Excel tabulas, nevis parastie diapazoni. Lai izveidotu tabulu no strukturētiem datiem, vienkārši noklikšķiniet uz Ievietot> tabula par Sākums cilni vai nospiediet Ctrl + T .
Ievadot formulu vienā Excel tabulas šūnā, varat izveidot tā saukto "aprēķināto kolonnu", kas automātiski kopē formulu visās citās šīs kolonnas šūnās un pielāgo formulu katrai tabulas rindai.
Turklāt jebkura formula, kas attiecas uz tabulas datiem, automātiski pielāgojas, lai iekļautu tabulā pievienotās jaunās rindas vai izslēgtu dzēstās rindas. Tehniski šādas formulas darbojas ar tabulas slejām vai rindām, kas ir. dinamiskie diapazoni Katrai darbgrāmatas tabulai ir unikāls nosaukums (pēc noklusējuma tie ir Tabula1, Tabula2 utt.), un jūs varat brīvi pārsaukt savu tabulu, izmantojot komandu Dizains cilne> Īpašības grupa> Tabulas nosaukums teksta lodziņš.
Tālāk redzamajā ekrānšāviņas attēlā ir parādīta SUM formula, kas attiecas uz Bonuss tabulas3 slejā. Lūdzu, pievērsiet uzmanību tam, ka formulā ir iekļauti tabulas kolonnas nosaukums nevis šūnu diapazonu.
- Excel INDEX funkcija
Lai gan ne tieši tādā pašā veidā kā OFFSET, Excel INDEX var izmantot arī dinamisku atsauču uz diapazonu izveidei. Atšķirībā no OFFSET funkcija INDEX nav gaistoša, tāpēc tā nepalēnina Excel darbību.
- Excel INDIRECT funkcija
Izmantojot funkciju INDIRECT, varat izveidot dinamiskas atsauces uz diapazonu no daudziem avotiem, piemēram, šūnu vērtībām, šūnu vērtībām un tekstu, nosauktiem diapazoniem. Tā var arī dinamiski atsaukties uz citu Excel lapu vai darbgrāmatu. Visus šos formulas piemērus varat atrast mūsu Excel INDIRECT funkcijas pamācībā.
Vai atceraties jautājumu, kas tika uzdots šīs pamācības sākumā - Kas ir OFFSET programmā Excel? Es ceru, ka tagad jūs zināt atbildi : ) Ja vēlaties gūt vairāk praktiskas pieredzes, nekautrējieties lejupielādēt mūsu praktisko darbgrāmatu (lūdzu, skatiet zemāk), kurā ir visas šajā lapā aplūkotās formulas, un apgriezti tās, lai iegūtu dziļāku izpratni. Paldies, ka izlasījāt!
Prakses darba burtnīca lejupielādei
OFFSET formulas piemēri (.xlsx fails)