Екцел функција ОФФСЕТ – примери формула и употреба

  • Деле Ово
Michael Brown

У овом водичу ћемо бацити светло на једног од најмистериознијих становника Екцел универзума - функцију ОФФСЕТ.

Дакле, шта је ОФФСЕТ у Екцел-у? Укратко, формула ОФФСЕТ враћа референцу на опсег који је померен од почетне ћелије или опсега ћелија за одређени број редова и колона.

Функција ОФФСЕТ може бити мало тешка за добијање , па хајде да прво пређемо на кратко техничко објашњење (даћу све од себе да буде једноставно), а затим ћемо покрити неколико најефикаснијих начина коришћења ОФФСЕТ-а у Екцел-у.

    Екцел функција ОФФСЕТ – синтакса и основне употребе

    Функција ОФФСЕТ у Екцел-у враћа ћелију или опсег ћелија који представља дати број редова и колона из дате ћелије или опсега.

    Синтакса функције ОФФСЕТ је следећа:

    ОФФСЕТ(референца, редови, колоне, [висина], [ширина])

    Прва 3 аргумента су обавезна, а последња 2 су опциона. Сви аргументи могу бити референце на друге ћелије или резултати које враћају друге формуле.

    Изгледа да се Мицрософт добро потрудио да стави неко значење у називе параметара и они дају наговештај шта ви требало би да наведу у сваком.

    Обавезни аргументи:

    • Референца - ћелија или опсег суседних ћелија од којих заснивате помак. Можете замислити то као почетну тачку.
    • Редови – Број редоваколона (А):

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

      Знам да формула изгледа мало неспретно, али ради :)

      Пример 2 Како направити горњу претрагу у Екцел-у

      Као што је случај са ВЛООКУП-ом који не може да погледа лево, његов хоризонтални парњак – функција ХЛООКУП – не може да гледа нагоре да би вратио вредност.

      Ако треба да скенирате горњи ред у потрази за подударањима, формула ОФФСЕТ МАТЦХ може поново да помогне, али овог пута ћете морати да је побољшате функцијом ЦОЛУМНС, на пример:

      ОФФСЕТ( лоокуп_табле , повратни_ред_оффсет , МАТЦХ( вредност_потражи , ОФФСЕТ( табела_претраживања , помак_реда_претраживања , 0, 1, ЦОЛУМНС( табела_претраживања )) , 0) -1, 1, 1)

      Где:

      • Помак_реда за тражење - број редова за померање од почетне тачке до реда за тражење.
      • Ретурн_ров_оффсет - број редова за померање од почетне тачке до повратног реда.

      Под претпоставком да је табела за тражење Б4:Ф5 и да је вредност за тражење у ћелији Б1, формула иде на следећи начин:

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

      У нашем случају, помак редова за тражење је 1 јер је наш опсег претраживања 1 ред ниже од почетне тачке, помак повратног реда је 0 јер враћамо подударања из првог реда у табели.

      Пример 3. Двосмерно тражење (према вредностима колона и редова)

      Двосмерно тражење враћа вредност засновану на подударностима у редовима и колонама. И можете користити следећеФормула низа двоструког тражења да бисте пронашли вредност на пресеку одређеног реда и колоне:

      =ОФФСЕТ( табела тражења , МАТЦХ( вредност тражења реда , ОФФСЕТ( табела претраге , 0, 0, РОВС( табела тражења ), 1), 0) -1, МАТЦХ( вредност тражења колоне , ОФФСЕТ( табела тражења , 0, 0, 1, ЦОЛУМНС( табела тражења )), 0) -1)

      С обзиром да је:

      • Табела за тражење А5:Г9
      • Вредност за подударање у редовима је у Б2
      • Вредност за подударање у колонама је у Б1

      Добијате следећу дводимензионалну формулу за тражење:

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

      Није то најлакше запамтити, зар не? Поред тога, ово је формула низа, тако да не заборавите да притиснете Цтрл + Схифт + Ентер да бисте је исправно унели.

      Наравно, ова дуга формула ОФФСЕТ није једини могући начин да се изврши двоструко тражење у Екцел-у. Можете добити исти резултат користећи ВЛООКУП &амп; МАТЦХ функције, СУМПРОДУЦТ или ИНДЕКС &амп; УТАКМИЦА. Постоји чак и начин без формуле - да се користе именовани опсези и оператор пресека (размак). Следећи водич објашњава сва алтернативна решења до детаља: Како направити двосмерно тражење у Екцел-у.

      Функција ОФФСЕТ – ограничења и алтернативе

      Надајмо се да су примери формула на овој страници избацили неке светло о томе како да користите ОФФСЕТ у Екцел-у. Међутим, да бисте ефикасно искористили функцију у својим радним свескама, не бисте само требали битипознају њене предности, али такође будите опрезни у погледу његових слабости.

      Најкритичнија ограничења функције Екцел ОФФСЕТ су следећа:

      • Као и друге променљиве функције, ОФФСЕТ је функција гладна ресурса . Кад год дође до било какве промене у изворним подацима, ваше ОФФСЕТ формуле се поново израчунавају, држећи Екцел заузетим још мало дуже. Ово није проблем за једну формулу у малој табели. Али ако постоје десетине или стотине формула у радној свесци, Мицрософт Екцел-у може потрајати доста времена да се поново израчуна.
      • Екцел формуле ОФФСЕТ тешко је прегледати . Пошто су референце које враћа функција ОФФСЕТ динамичне, велике формуле (посебно са угнежђеним ОФФСЕТ-овима) могу бити прилично тешке за отклањање грешака.

      Алтернативе за коришћење ОФФСЕТ-а у Екцел-у

      Као што је често У случају у Екцел-у, исти резултат се може постићи на више различитих начина. Дакле, ево три елегантне алтернативе за ОФФСЕТ.

      1. Екцел табеле

        Од Екцела 2002, имамо заиста дивну особину - потпуно функционалне Екцел табеле, за разлику од уобичајени распони. Да бисте направили табелу од структурираних података, једноставно кликните на Инсерт &гт; Табела на картици Хоме или притисните Цтрл + Т .

        Уношењем формуле у једну ћелију у Екцел табели, можете креирати такозвану "израчунату колону" која аутоматски копира формулу у све остале ћелије у тој колони и прилагођаваформула за сваки ред у табели.

        Штавише, било која формула која се односи на податке табеле аутоматски се прилагођава тако да укључује све нове редове које додате у табелу или искључује редове које избришете. Технички, такве формуле раде на колонама или редовима табеле, који су по природи динамички опсези . Свака табела у радној свесци има јединствено име (подразумевано су Табела1, Табела2, итд.) и можете слободно да преименујете своју табелу преко картице Дизајн &гт; Својства групе &гт ; Назив табеле оквир за текст.

        Следећи снимак екрана приказује формулу ЗБИР која се односи на колону Бонус у табели 3. Обратите пажњу да формула укључује име колоне табеле, а не опсег ћелија.

      2. Екцел функција ИНДЕКС

        Иако не баш на исти начин као ОФФСЕТ, Екцел ИНДЕКС се такође може користити за креирање референци динамичког опсега. За разлику од ОФФСЕТ-а, функција ИНДЕКС није променљива, тако да неће успорити Екцел.

      3. Екцел ИНДИРЕЦТ функција

        Употребом функције ИНДИРЕЦТ можете креирати динамички опсег референце из многих извора као што су вредности ћелија, вредности ћелија и текст, именовани опсези. Такође се може динамички односити на други Екцел лист или радну свеску. Све ове примере формуле можете пронаћи у нашем водичу за индиректну функцију Екцел.

      Да ли се сећате питања постављеног на почетку овог упутства - Шта је ОФФСЕТ у Екцел-у? Надам се да сада знате одговор: ) Ако желите још мало практичног искуства, слободно преузмите нашу радну свеску (погледајте доле) која садржи све формуле о којима се говори о овоме страницу и обрнути их инжењеринг ради дубљег разумевања. Хвала вам на читању!

      Вежбање за преузимање

      Примери формуле ОФФСЕТ (.клск датотека)

      да бисте се померили са почетне тачке, горе или доле. Ако су редови позитиван број, формула се помера испод почетне референце, у случају негативног броја иде изнад почетне референце.
    • Цолс – Број колона за који желите да добијете формулу да се помери са почетне тачке. Као и редови, колоне могу бити позитивне (десно од почетне референце) или негативне (лево од почетне референце).

    Опционални аргументи:

    • Висина - број редова за враћање.
    • Ширина - број колона за враћање.

    И висина и аргументи ширине увек морају бити позитивни бројеви. Ако је било који од њих изостављен, подразумевана је висина или ширина референце .

    Напомена. ОФФСЕТ је променљива функција и може успорити радни лист. Спорост је директно пропорционална броју поново израчунатих ћелија.

    А сада, хајде да илуструјмо теорију на примеру најједноставније формуле ОФФСЕТ.

    Екцел пример формуле ОФФСЕТ

    Ево примера једноставне формуле ОФФСЕТ која враћа референцу ћелије на основу почетне тачке, редова и колона које наведете:

    =OFFSET(A1,3,1)

    Формула говори Екцел-у да узме ћелију А1 као почетна тачка (референца), затим померите 3 реда надоле (аргумент редова) и 1 колону улево (аргумент цолс). Као резултат, ова формула ОФФСЕТ враћа вредност у ћелији Б4.

    Слика са леве странеприказује руту функције, а снимак екрана са десне стране показује како можете користити формулу ОФФСЕТ на подацима из стварног живота. Једина разлика између ове две формуле је у томе што друга (десно) укључује референцу ћелије (Е1) у аргументу редова. Али пошто ћелија Е1 садржи број 3, а потпуно исти број се појављује у аргументу редова прве формуле, обе би вратиле идентичан резултат - вредност у Б4.

    Екцел формуле ОФФСЕТ – ствари које треба запамтити

    • Функција ОФФСЕТ је Екцел заправо не помера ћелије или опсеге, већ само враћа референцу.
    • Када формула ОФФСЕТ враћа опсег ћелија, аргументи ровс и цолс се увек односе на горњу леву ћелију у враћеном бесу.
    • Аргумент референце мора да садржи ћелију или опсег суседних ћелија, иначе ће ваша формула вратити #ВАЛУЕ! грешка.
    • Ако наведени редови и/или колоне померају референцу преко ивице табеле, ваша Екцел формула ОФФСЕТ ће вратити #РЕФ! грешка.
    • Функција ОФФСЕТ се може користити у оквиру било које друге Екцел функције која прихвата референцу ћелије/опсега у својим аргументима.

    На пример, ако покушате да користите формулу =OFFSET(A1,3,1,1,3) самостално, избациће #ВРЕДНОСТ! грешка, пошто се опсег за враћање (1 ред, 3 колоне) не уклапа у једну ћелију. Међутим, ако га уградите у функцију СУМ, нпрово:

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

    Формула ће вратити збир вредности у опсегу 1 ред по 3 колоне који је 3 реда испод и 1 колона десно од ћелије А1, тј. укупно вредности у ћелијама Б4:Д4.

    Зашто користим ОФФСЕТ у Екцел-у?

    Сада када знате шта ради функција ОФФСЕТ, можете запитајте се "Зашто се трудити да га користите?" Зашто једноставно не напишете директну референцу као што је Б4:Д4?

    Екцел формула ОФФСЕТ је веома добра за:

    Креирање динамичких опсега : Референце попут Б1:Ц4 су статичне , што значи да се увек односе на дати опсег. Али неке задатке је лакше извршити са динамичким опсегом. Ово је посебно случај када радите са променљивим подацима, нпр. имате радни лист где се сваке недеље додаје нови ред или колона.

    Добијање опсега из почетне ћелије . Понекад можда не знате стварну адресу опсега, иако знате да почиње од одређене ћелије. У таквим сценаријима, коришћење ОФФСЕТ-а у Екцел-у је прави пут.

    Како користити функцију ОФФСЕТ у Екцел-у – примери формуле

    Надам се да вам није досадило толики део теорије . У сваком случају, сада долазимо до најузбудљивијег дела – практичне употребе функције ОФФСЕТ.

    Екцел функције ОФФСЕТ и СУМ

    Пример о којем смо малочас говорили показује најједноставнију употребу ОФФСЕТ &амп ; СУМ. Сада, погледајмо ове функције из другог угла и видимо штадруго могу да ураде.

    Пример 1. Динамичка формула ЗБИР / ОФФСЕТ

    Када радите са радним листовима који се стално ажурирају, можда ћете желети да имате формулу СУМ која аутоматски бира све новододате редове.

    Претпоставимо да имате изворне податке сличне онима које видите на слици испод. Сваког месеца се додаје нови ред одмах изнад формуле ЗБИР, и наравно, желите да га уврстите у збир. У целини, постоје два избора – или ажурирање опсега у формули СУМ сваки пут ручно или нека формула ОФФСЕТ то уради уместо вас.

    Од прве ћелије опсег за збир ће бити наведен директно у формули СУМ, само морате да одлучите о параметрима за функцију Екцел ОФФСЕТ, која ће добити последњу ћелију опсега:

    • Reference - ћелија који садржи укупно, Б9 у нашем случају.
    • Rows - ћелија одмах изнад укупне, која захтева негативан број -1.
    • Cols - то је 0 јер не желите да мењате колону.

    Дакле, ево шеме формуле ЗБИР / ОФФСЕТ:

    =СУМ( прва ћелија:(ОФФСЕТ( ћелија са укупно, -1,0)

    Подешено за горњи пример, формула изгледа овако:

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

    И као што је приказано на снимку екрана испод, ради беспрекорно:

    Пример 2. Екцел формула ОФФСЕТ за сумирање последњих Н редова

    У горњем примеру, претпоставимо да желите да знате износ бонуса запоследњих Н месеци, а не укупно. Такође желите да формула аутоматски укључује све нове редове које додате на листу.

    За овај задатак, користићемо Екцел ОФФСЕТ у комбинацији са функцијама СУМ и ЦОУНТ / ЦОУНТА:

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

    или

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

    Следећи детаљи вам могу помоћи да боље разумете формуле:

    • Reference ​​- заглавље колоне чије вредности желите да збројите, ћелија Б1 у овом примеру.
    • Rows - да бисте израчунали број редова за померање, користите функцију ЦОУНТ или ЦОУНТА.

      ЦОУНТ враћа број ћелија у колони Б које садрже бројеве, од којих одузимате последњих Н месеци (број је ћелија Е1) и додајете 1.

      Ако је ЦОУНТА функција по вашем избору, не морате да додате 1, пошто ова функција броји све непразне ћелије, а ред заглавља са текстуалном вредношћу додаје додатну ћелију која је потребна нашој формули. Имајте на уму да ће ова формула исправно радити само на сличној структури табеле – један ред заглавља праћен редовима са бројевима. За различите изгледе табеле, можда ћете морати да извршите нека подешавања у формули ОФФСЕТ/ЦОУНТА.

    • Cols - број колона за померање је нула (0).
    • Height - број редова за збир је наведен у Е1.
    • Width - 1 колона.

    Коришћење функције ОФФСЕТ са АВЕРАГЕ, МАКС, МИН

    На исти начин као што смо израчунали бонусе за последњих Н месеци, можетедобити просек последњих Н дана, недеља или година, као и пронаћи њихове максималне или минималне вредности. Једина разлика између формула је име прве функције:

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

    Кључ Предност ових формула у односу на уобичајени АВЕРАГЕ(Б5:Б8) или МАКС(Б5:Б8) је да нећете морати да ажурирате формулу сваки пут када се ваша изворна табела ажурира. Без обзира на то колико нових редова је додато или избрисано у радном листу, формуле ОФФСЕТ ће се увек односити на одређени број последњих (најнижих) ћелија у колони.

    Екцел формулу ОФФСЕТ за креирање динамичког опсега

    Користи се у комбинацији са ЦОУНТА, функција ОФФСЕТ може да вам помогне да направите динамички опсег који се може показати корисним у многим сценаријима, на пример за креирање падајућих листа које се аутоматски ажурирају.

    Формула ОФФСЕТ за динамички опсег је следећи:

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

    У срцу ове формуле, користите функцију ЦОУНТА да бисте добили број ћелија које нису празне у циљној колони. Тај број иде у аргумент висине ОФФСЕТ-а и налаже му колико редова да врати.

    Осим тога, то је обична формула за помак, где је:

    • Референца је почетна тачка од које заснивате помак, на пример Схеет1!$А$1.
    • Редови и Cols су оба 0 јер нема колона или редова за померање.
    • Ширина је 1 колона.

    Напомена. Ако степрављење динамичког опсега у тренутном листу, нема потребе да укључите име листа у референце, Екцел ће то урадити за вас аутоматски када креирате именовани опсег. У супротном, обавезно укључите име листа праћено узвиком као у овом примеру формуле.

    Када креирате динамички именовани опсег са горњом формулом ОФФСЕТ, можете користити Валидацију података да направите динамичку падајућу листу која ће се аутоматски ажурирати чим додате или уклоните ставке са изворне листе.

    За детаљна упутства корак по корак о креирању падајућих листа у Екцел-у, погледајте следеће туторијале:

    • Креирање падајућих листа у Екцел-у - статички, динамички, из друге радне свеске
    • Прављење зависне падајуће листе

    Екцел ОФФСЕТ &амп; ВЛООКУП

    Као што сви знају, једноставне вертикалне и хоризонталне претраге се изводе помоћу функције ВЛООКУП или ХЛООКУП. Међутим, ове функције имају превише ограничења и често наилазе на моћније и сложеније формуле за тражење. Дакле, да бисте извршили софистициранија претраживања у вашим Екцел табелама, морате да тражите алтернативе као што су ИНДЕКС, МАТЦХ и ОФФСЕТ.

    Пример 1. Формула ОФФСЕТ за леви Влоокуп у Екцел-у

    Једно од најозлоглашенијих ограничења функције ВЛООКУП је немогућност гледања у леву страну, што значи да ВЛООКУП може да врати вредност само надесно од колоне за тражење.

    У нашем узорку табеле за тражење, постоје две колоне – називи месеци (колона А) и бонуси (колона Б). Ако желите да добијете бонус за одређени месец, ова једноставна ВЛООКУП формула ће радити без проблема:

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

    Међутим, чим замените колоне у табели за тражење, ово ће одмах резултирати грешком #Н/А:

    Да бисте управљали тражењем са леве стране, потребна вам је свестранија функција којој није битно где се налази колона за повратак . Једно од могућих решења је коришћење комбинације функција ИНДЕКС и МАТЦХ. Други приступ је коришћење ОФФСЕТ, МАТЦХ и РОВС:

    ОФФСЕТ( табела_потражи , МАТЦХ( вредност_потражи , ОФФСЕТ( табела_погледавања , 0, помак_кола за тражење , РОВС( табела_претраживања ), 1) ,0) -1, повратни_цол_оффсет , 1, 1)

    Где:

    • Лоокуп_цол_оффсет - је број колона за померање од почетне тачке до колоне за тражење.
    • Ретурн_цол_оффсет - је број колона за померање од почетне до повратне тачке колона.

    У нашем примеру, табела за тражење је А5:Б9 и вредност за тражење је у ћелији Б1, помак колоне за претрагу је 1 (јер тражимо вредност за тражење у другој колони (Б ), треба да померимо 1 колону удесно од почетка табеле), помак повратне колоне је 0 јер враћамо вредности из прве

    Мајкл Браун је посвећен технолошки ентузијаста са страшћу за поједностављење сложених процеса помоћу софтверских алата. Са више од деценије искуства у технолошкој индустрији, усавршио је своје вештине у Мицрософт Екцел-у и Оутлоок-у, као и у Гоогле табеле и документима. Мајклов блог посвећен је дељењу свог знања и стручности са другима, пружајући једноставне савете и упутства за побољшање продуктивности и ефикасности. Без обзира да ли сте искусан професионалац или почетник, Мајклов блог нуди вредне увиде и практичне савете како да на најбољи начин искористите ове основне софтверске алате.