Funció OFFSET d'Excel: exemples i usos de fórmules

  • Comparteix Això
Michael Brown

En aquest tutorial, farem una mica de llum sobre un dels habitants més misteriosos de l'univers Excel: la funció OFFSET.

Així que, què és OFFSET en Excel? En poques paraules, la fórmula OFFSET retorna una referència a un interval que es desplaça des d'una cel·la inicial o un rang de cel·les per un nombre especificat de files i columnes.

La funció OFFSET pot ser una mica difícil d'aconseguir. , així que repassem primer una breu explicació tècnica (faré tot el possible perquè sigui senzill) i després tractarem algunes de les maneres més eficients d'utilitzar OFFSET a Excel.

    Funció OFFSET d'Excel: sintaxi i usos bàsics

    La funció OFFSET d'Excel retorna una cel·la o un rang de cel·les que és un nombre determinat de files i columnes d'una cel·la o rang determinats.

    La sintaxi de la funció OFFSET és la següent:

    OFFSET(referència, files, cols, [alçada], [amplada])

    Els 3 primers arguments són obligatoris i els 2 últims són opcionals. Tots els arguments poden ser referències a altres cel·les o resultats retornats per altres fórmules.

    Sembla que Microsoft va fer un bon esforç per donar un significat als noms dels paràmetres, i donen una pista sobre el que se suposa que s'han d'especificar en cadascun.

    Arguments necessaris:

    • Referència : una cel·la o un rang de cel·les adjacents a partir de les quals baseu el desplaçament. Podeu pensar-ho com el punt de partida.
    • Files : el nombre de files.columna (A):

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

      Sé que la fórmula sembla una mica maldestra, però funciona :)

      Exemple 2 . Com fer una cerca superior a Excel

      Com és el cas de BUSCARV que no pot mirar a l'esquerra, la seva contrapart horitzontal, la funció BUSCAR HL, no pot mirar cap amunt per retornar un valor.

      Si necessiteu escanejar una fila superior per trobar coincidències, la fórmula OFFSET MATCH us pot ajudar de nou, però aquesta vegada haureu de millorar-la amb la funció COLUMNS, com aquesta:

      OFFSET( lookup_table , return_row_offset , MATCH( lookup_value , OFFSET( lookup_table , lookup_row_offset , 0, 1, COLUMNS( lookup_table )) , 0) -1, 1, 1)

      On:

      • Lookup_row_offset : el nombre de files que cal moure des del punt inicial a la fila de cerca.
      • Return_row_offset : el nombre de files que cal moure des del punt inicial a la fila de retorn.

      Suposant que la taula de cerca és B4:F5 i el valor de cerca és a la cel·la B1, la fórmula és la següent:

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

      En el nostre cas, el desplaçament de la fila de cerca és 1 perquè el nostre interval de cerca és 1 fila més avall des del punt inicial, el desplaçament de la fila de retorn és 0 perquè estem retornant coincidències des de la primera fila de la taula.

      Exemple 3. Cerca bidireccional (per valors de columna i fila)

      La cerca bidireccional retorna un valor basat en les coincidències tant a les files com a les columnes. I podeu utilitzar el següentfórmula de matriu de cerca doble per trobar un valor a la intersecció d'una fila i una columna determinades:

      =OFFSET( taula de cerca , MATCH( valor de cerca de fila , OFFSET( taula de cerca , 0, 0, FILES( taula de cerca ), 1), 0) -1, MATCH( valor de cerca de columna , OFFSET( taula de cerca , 0, 0, 1, COLUMNS( taula de cerca )), 0) -1)

      Tenint en compte que:

      • La taula de cerca és A5:G9
      • El valor que s'ha de fer coincidir a les files és a B2
      • El valor que s'ha de fer coincidir a les columnes és a B1

      Obteu la següent fórmula de cerca bidimensional:

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

      No és el més fàcil de recordar, oi? A més, aquesta és una fórmula de matriu, així que no us oblideu de prémer Ctrl + Maj + Retorn per introduir-la correctament.

      Per descomptat, aquesta llarga fórmula OFFSET no ho és. l'única manera possible de fer una doble cerca a Excel. Podeu obtenir el mateix resultat mitjançant l'ús de VLOOKUP & Funcions MATCH, SUMAPRODUCT o INDEX & PARTIT. Fins i tot hi ha una manera sense fórmules: utilitzar intervals amb nom i l'operador d'intersecció (espai). El tutorial següent explica totes les solucions alternatives amb tot detall: Com fer una cerca bidireccional a Excel.

      Funció OFFSET: limitacions i alternatives

      Tant de bo, els exemples de fórmules d'aquesta pàgina han perdut alguns llum sobre com utilitzar OFFSET a Excel. Tanmateix, per aprofitar de manera eficient la funció dels vostres propis llibres de treball, no només hauríeu de ser-hoconeixedor dels seus punts forts, però també desconfieu dels seus punts febles.

      Les limitacions més crítiques de la funció OFFSET d'Excel són les següents:

      • Com altres funcions volàtils, OFFSET és un funció amb fam de recursos . Sempre que hi ha cap canvi en les dades d'origen, les vostres fórmules OFFSET es tornen a calcular, mantenint l'Excel ocupat una mica més. Aquest no és un problema per a una fórmula única en un full de càlcul petit. Però si hi ha desenes o centenars de fórmules en un llibre de treball, Microsoft Excel pot trigar força a tornar-se a calcular.
      • Les fórmules d'Excel OFFSET són difícils de revisar . Com que les referències que retorna la funció OFFSET són dinàmiques, les fórmules grans (sobretot amb OFFSET imbricats) poden ser bastant complicades de depurar.

      Alternatives a l'ús de OFFSET a Excel

      Com és sovint En el cas d'Excel, el mateix resultat es pot aconseguir de diverses maneres diferents. Així doncs, aquí hi ha tres alternatives elegants a OFFSET.

      1. Taules d'Excel

        Des d'Excel 2002, tenim una característica realment meravellosa: taules d'Excel de ple dret, a diferència de rangs habituals. Per fer una taula a partir de dades estructurades, només cal que feu clic a Insereix > Taula a la pestanya Inici o premeu Ctrl + T .

        En introduir una fórmula en una cel·la d'una taula d'Excel, podeu crear una anomenada "columna calculada" que copia automàticament la fórmula a totes les altres cel·les d'aquesta columna i ajusta elfórmula per a cada fila de la taula.

        A més, qualsevol fórmula que faci referència a les dades d'una taula s'ajusta automàticament per incloure les files noves que afegiu a la taula o excloure les files que suprimiu. Tècnicament, aquestes fórmules funcionen en columnes o files de taules, que són de naturalesa intervals dinàmics . Cada taula d'un llibre de treball té un nom únic (els predeterminats són Taula1, Taula2, etc.) i podeu canviar el nom de la taula mitjançant la pestanya Disseny > Grup Propietats > Quadre de text Nom de la taula .

        La captura de pantalla següent mostra la fórmula SUMA que fa referència a la columna Bonus de la taula 3. Si us plau, tingueu en compte que la fórmula inclou el nom de la columna de la taula en lloc d'un rang de cel·les.

      2. Funció INDEX d'Excel

        Tot i que no és exactament de la mateixa manera que OFFSET, Excel INDEX també es pot utilitzar per crear referències d'interval dinàmic. A diferència de OFFSET, la funció INDEX no és volàtil, de manera que no alentirà l'Excel.

      3. Funció INDIRECTA d'Excel

        Utilitzant la funció INDIRECTA podeu crear un rang dinàmic referències de moltes fonts, com ara valors de cel·la, valors de cel·la i text, intervals anomenats. També pot fer referència dinàmicament a un altre full d'Excel o llibre de treball. Podeu trobar tots aquests exemples de fórmules al nostre tutorial de funcions INDIRECTES d'Excel.

      Recordes la pregunta feta al principi d'aquest tutorial? Què és OFFSET a Excel? Espero que ara sàpigues la resposta : ) Si vols una mica més d'experiència pràctica, no dubteu a descarregar-vos el nostre quadern de pràctiques (vegeu més avall) que conté totes les fórmules que s'hi discuteixen. pàgina i realitza enginyeria inversa per a una comprensió més profunda. Gràcies per llegir-lo!

      Llibre de pràctiques per baixar

      Exemples de fórmules OFFSET (fitxer .xlsx)

      per moure's des del punt de partida, cap amunt o cap avall. Si les files és un nombre positiu, la fórmula es mou per sota de la referència inicial, en cas d'un nombre negatiu, passa per sobre de la referència inicial.
    • Cols - El nombre de columnes que voleu que la fórmula per moure's des del punt de partida. A més de les files, les cols poden ser positives (a la dreta de la referència inicial) o negatives (a l'esquerra de la referència inicial).

    Arguments opcionals:

    • Alçada : el nombre de files a retornar.
    • Amplada : el nombre de columnes a retornar.

    Tant l'alçada com la Els arguments d'amplada sempre han de ser nombres positius. Si s'omet qualsevol d'aquestes, per defecte té l'alçada o l'amplada de referència .

    Nota. OFFSET és una funció volàtil i pot alentir el vostre full de treball. La lentitud és directament proporcional al nombre de cel·les recalculades.

    I ara, il·lustrem la teoria amb un exemple de la fórmula OFFSET més senzilla.

    Excel de fórmula OFFSET

    Aquí teniu un exemple d'una fórmula OFFSET senzilla que retorna una referència de cel·la basada en un punt de partida, files i columnes que especifiqueu:

    =OFFSET(A1,3,1)

    La fórmula diu a Excel que prengui la cel·la A1 com a punt de partida (referència), després mou 3 files cap avall (argument de files) i 1 columna cap a l'esquerra (argument cols). Com a resultat, aquesta fórmula OFFSET retorna el valor de la cel·la B4.

    La imatge de l'esquerramostra la ruta de la funció i la captura de pantalla de la dreta mostra com podeu utilitzar la fórmula OFFSET en dades de la vida real. L'única diferència entre les dues fórmules és que la segona (a la dreta) inclou una referència de cel·la (E1) a l'argument de les files. Però com que la cel·la E1 conté el número 3 i exactament el mateix nombre apareix a l'argument de les files de la primera fórmula, ambdues tornarien un resultat idèntic: el valor de B4.

    Fórmules OFFSET d'Excel: coses per recordar

    • La funció OFFSET és que Excel en realitat no mou cap cel·la ni rang, només retorna una referència.
    • Quan una fórmula OFFSET retorna un rang de cel·les, els arguments de files i cols sempre fan referència a la cel·la superior esquerra de la ràbia retornada.
    • L'argument de referència ha d'incloure una cel·la o un rang de cel·les adjacents, en cas contrari, la fórmula retornarà el #VALOR! error.
    • Si les files i/o cols especificats mouen una referència per sobre de la vora del full de càlcul, la fórmula de desplaçament d'Excel tornarà el #REF! error.
    • La funció OFFSET es pot utilitzar dins de qualsevol altra funció d'Excel que accepti una referència de cel·la/interval als seus arguments.

    Per exemple, si intenteu utilitzar la fórmula =OFFSET(A1,3,1,1,3) per si sol, llançarà un #VALOR! error, ja que un interval a retornar (1 fila, 3 columnes) no encaixa en una sola cel·la. Tanmateix, si l'incorporeu a la funció SUMA, comaixò:

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

    La fórmula retornarà la suma de valors en un interval d'1 fila per 3 columnes que es troba 3 files per sota i 1 columna a la dreta de la cel·la A1, és a dir, el total de valors a les cel·les B4:D4.

    Per què faig servir OFFSET a Excel?

    Ara que ja sabeu què fa la funció OFFSET, podeu et preguntaràs "Per què molestar-te amb ell?" Per què no escriu simplement una referència directa com B4:D4?

    La fórmula OFFSET d'Excel és molt bona per:

    Crear rangs dinàmics : les referències com B1:C4 són estàtiques , és a dir, sempre es refereixen a un rang determinat. Però algunes tasques són més fàcils de realitzar amb rangs dinàmics. Aquest és especialment el cas quan es treballa amb dades canviants, p. tens un full de treball on s'afegeix una nova fila o columna cada setmana.

    Obtenir l'interval de la cel·la inicial . De vegades, és possible que no conegueu l'adreça real de l'interval, tot i que sabeu que comença des d'una cel·la determinada. En aquests escenaris, utilitzar OFFSET a Excel és el camí correcte.

    Com utilitzar la funció OFFSET a Excel: exemples de fórmules

    Espero que no us avorreu amb tanta teoria. . De totes maneres, ara estem arribant a la part més interessant: els usos pràctics de la funció OFFSET.

    Funcions Excel OFFSET i SUM

    L'exemple que vam comentar fa un moment demostra l'ús més senzill de OFFSET & ; SUMA. Ara, mirem aquestes funcions des d'un altre angle i veiem quèd'altra banda, poden fer-ho.

    Exemple 1. Una fórmula SUM/OFFSET dinàmica

    Quan treballeu amb fulls de treball actualitzats contínuament, és possible que vulgueu tenir una fórmula SUMA que escolli automàticament totes les files recentment afegides.

    Suposem que tens les dades d'origen semblants a les que veus a la captura de pantalla següent. Cada mes s'afegeix una fila nova just a sobre de la fórmula SUMA i, naturalment, voleu incloure-la al total. En general, hi ha dues opcions: actualitzar l'interval de la fórmula SUMA cada vegada manualment o fer que la fórmula OFFSET ho faci per vosaltres.

    Des de la primera cel·la de l'interval a sumar s'especificarà directament a la fórmula SUMA, només heu de decidir els paràmetres de la funció OFFSET d'Excel, que obtindrà l'última cel·la de l'interval:

    • Reference - la cel·la que conté el total, B9 en el nostre cas.
    • Rows - la cel·la just a sobre del total, que requereix el nombre negatiu -1.
    • Cols - és 0 perquè no voleu canviar la columna.

    Per tant, aquí va el patró de la fórmula SUMA / OFFSET:

    =SUMA( primera cel·la:(OFFSET( cel·la amb total, -1,0)

    Ajustada per a l'exemple anterior, la fórmula té el següent aspecte:

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

    I com es demostra a la captura de pantalla següent, funciona perfectament:

    Exemple 2. Fórmula OFFSET d'Excel per sumar les últimes N files

    En l'exemple anterior, suposem que voleu saber la quantitat de bonificacions perels darrers N mesos en lloc del gran total. També voleu que la fórmula inclogui automàticament qualsevol fila nova que afegiu al full.

    Per a aquesta tasca, utilitzarem Excel OFFSET en combinació amb les funcions SUMA i COUNT / COUNTA:

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

    o

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

    Els detalls següents us poden ajudar a entendre millor les fórmules:

    • Reference : la capçalera de la columna els valors de la qual voleu sumar, cel·la B1 d'aquest exemple.
    • Rows : per calcular el nombre de files a compensar, feu servir la funció COUNT o COUNTA.

      COUNT retorna el nombre de cel·les de la columna B que contenen números, dels quals resteu els darrers N mesos (el nombre és la cel·la E1) i sumeu 1.

      Si COUNTA és la vostra funció que trieu, no cal que afegiu 1, ja que aquesta funció compta totes les cel·les no buides i una fila de capçalera amb un valor de text afegeix una cel·la addicional que necessita la nostra fórmula. Tingueu en compte que aquesta fórmula només funcionarà correctament en una estructura de taula similar: una fila de capçalera seguida de files amb números. Per a diferents dissenys de taula, és possible que hàgiu de fer alguns ajustos a la fórmula OFFSET/COUNTA.

    • Cols : el nombre de columnes a compensar és zero (0).
    • Height - el nombre de files per sumar s'especifica a E1.
    • Width - 1 columna.

    Utilitzar la funció OFFSET amb AVERAGE, MAX, MIN

    De la mateixa manera com hem calculat les bonificacions dels últims N mesos, podeu fer-hoobtenir una mitjana dels darrers N dies, setmanes o anys així com trobar els seus valors màxims o mínims. L'única diferència entre les fórmules és el nom de la primera funció:

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

    La clau L'avantatge d'aquestes fórmules per sobre de l'habitual AVERAGE(B5:B8) o MAX(B5:B8) és que no haureu d'actualitzar la fórmula cada vegada que s'actualitzi la vostra taula d'origen. No importa quantes files noves s'afegeixin o s'eliminin al vostre full de treball, les fórmules OFFSET sempre es referiran al nombre especificat d'últimes cel·les (la més baixa) de la columna.

    Fórmula OFFSET d'Excel per crear un rang dinàmic.

    S'utilitza juntament amb COUNTA, la funció OFFSET us pot ajudar a crear un rang dinàmic que pot resultar útil en molts escenaris, per exemple, per crear llistes desplegables actualitzables automàticament.

    La fórmula OFFSET per a un rang dinàmic és el següent:

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

    Al cor d'aquesta fórmula, feu servir la funció COUNTA per obtenir el nombre de cel·les no en blanc a la columna objectiu. Aquest nombre va a l'argument d'alçada de OFFSET que li indica quantes files ha de tornar.

    A part d'això, és una fórmula de desplaçament normal, on:

    • Referència és el punt de partida des del qual baseu el desplaçament, per exemple Sheet1!$A$1.
    • Les files i Cols són 0 perquè no hi ha columnes ni files per compensar.
    • L'amplada és d'1 columna.

    Nota. Si vostè ésfent un rang dinàmic al full actual, no cal incloure el nom del full a les referències, Excel ho farà automàticament quan creeu l'interval amb nom. En cas contrari, assegureu-vos d'incloure el nom del full seguit del signe d'exclamació com en aquest exemple de fórmula.

    Un cop hàgiu creat un interval de nom dinàmic amb la fórmula OFFSET anterior, podeu utilitzar la validació de dades per crear una llista desplegable dinàmica que s'actualitzarà automàticament tan bon punt afegiu o suprimiu elements de la llista font.

    Per obtenir una guia detallada pas a pas sobre la creació de llistes desplegables a Excel, consulteu els tutorials següents:

    • Creació de llistes desplegables a Excel: estàtic, dinàmic, d'un altre llibre de treball
    • Fer una llista desplegable dependent

    Excel OFFSET & BUSCAR V

    Com tothom sap, les cerques verticals i horitzontals simples es realitzen amb la funció BUSCAR V o BUSCAR HL, respectivament. Tanmateix, aquestes funcions tenen massa limitacions i sovint ensopeguen amb fórmules de cerca més potents i complexes. Per tant, per fer cerques més sofisticades a les taules d'Excel, heu de buscar alternatives com INDEX, MATCH i OFFSET.

    Exemple 1. Fórmula OFFSET per a una Vlookup esquerra a Excel

    Una de les limitacions més infames de la funció BUSCAR V és la incapacitat de mirar a l'esquerra, el que significa que BUSCAR V només pot retornar un valor ala dreta de la columna de cerca.

    A la nostra taula de cerca d'exemple, hi ha dues columnes: noms de mesos (columna A) i bonificacions (columna B). Si voleu obtenir una bonificació durant un mes determinat, aquesta senzilla fórmula de BUSCAR VAC funcionarà sense cap problema:

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

    No obstant això, tan aviat com canvieu les columnes de la taula de cerca, aquest provocarà immediatament l'error #N/A:

    Per gestionar una cerca a l'esquerra, necessiteu una funció més versàtil que no li importi realment on resideix la columna de retorn. . Una de les solucions possibles és utilitzar una combinació de funcions INDEX i MATCH. Un altre enfocament és utilitzar OFFSET, MATCH i ROWS:

    OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , ROWS( taula_de_cerca ), 1) ,0) -1, return_col_offset , 1, 1)

    On:

    • Lookup_col_offset : és el nombre de columnes que cal moure des del punt inicial a la columna de cerca.
    • Return_col_offset : és el nombre de columnes que cal moure des del punt inicial fins al retorn. columna.

    Al nostre exemple, la taula de cerca és A5:B9 i el valor de cerca és a la cel·la B1, el desplaçament de la columna de cerca és 1 (perquè estem cercant el valor de cerca a la segona columna (B ), hem de moure 1 columna cap a la dreta des de l'inici de la taula), el desplaçament de la columna de retorn és 0 perquè estem retornant valors del primer

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.