Función OFFSET de Excel: exemplos de fórmulas e usos

  • Comparte Isto
Michael Brown

Neste titorial, imos arroxar algo de luz sobre un dos habitantes máis misteriosos do universo Excel: a función OFFSET.

Entón, que é OFFSET. en Excel? En poucas palabras, a fórmula OFFSET devolve unha referencia a un intervalo que está desfasado desde unha cela inicial ou un rango de celas por un número especificado de filas e columnas.

A función OFFSET pode ser un pouco complicada de conseguir , entón imos repasar primeiro unha pequena explicación técnica (farei todo o posible para que sexa sinxelo) e despois cubriremos algunhas das formas máis eficientes de usar OFFSET en Excel.

    Función OFFSET de Excel: sintaxe e usos básicos

    A función OFFSET en Excel devolve unha cela ou un intervalo de celas que é un número determinado de filas e columnas dunha determinada cela ou rango.

    A sintaxe da función OFFSET é a seguinte:

    OFFSET(referencia, filas, cols, [alto], [ancho])

    Os 3 primeiros argumentos son obrigatorios e os 2 últimos son opcionais. Todos os argumentos poden ser referencias a outras celas ou resultados devoltos por outras fórmulas.

    Parece que Microsoft fixo un bo esforzo para darlle algún significado aos nomes dos parámetros e dan unha pista sobre o que vostede Suponse que se especifican en cada un.

    Argumentos necesarios:

    • Referencia : unha cela ou un intervalo de celas adxacentes a partir das que basea a compensación. Podes pensar nel como o punto de partida.
    • Filas - O número de filascolumna (A):

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

      Sei que a fórmula parece un pouco torpe, pero funciona :)

      Exemplo 2 . Como facer unha busca superior en Excel

      Como é o caso de BUSCARV que non pode mirar á esquerda, a súa contraparte horizontal, a función BUSCARH, non pode mirar cara arriba para devolver un valor.

      Se necesitas buscar coincidencias nunha fila superior, a fórmula OFFSET MATCH pode axudar de novo, pero esta vez terás que mellorala coa función COLUMNS, como esta:

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

      Onde:

      • Lookup_row_offset : o número de filas que hai que mover desde o punto de inicio á fila de busca.
      • Return_row_offset : o número de filas que hai que mover desde o punto de partida ata a fila de retorno.

      Asumindo que a táboa de busca é B4:F5 e o valor de busca está na cela B1, a fórmula é o seguinte:

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

      No noso caso, a compensación da fila de busca é 1 porque o noso intervalo de busca está 1 fila máis abaixo desde o punto de inicio, a compensación da fila de retorno é 0 porque estamos devolvendo coincidencias da primeira fila da táboa.

      Exemplo 3. A busca bidireccional (por valores de columna e fila)

      A busca bidireccional devolve un valor baseado nas coincidencias tanto nas filas como nas columnas. E podes usar o seguintefórmula de matriz de dobre busca para atopar un valor na intersección dunha determinada fila e columna:

      =OFFSET( táboa de busca , MATCH( valor de busca de fila , OFFSET( táboa de busca , 0, 0, FILAS( táboa de busca ), 1), 0) -1, MATCH( valor de busca de columna , OFFSET( táboa de busca , 0, 0, 1, COLUMNS( táboa de busca )), 0) -1)

      Dado que:

      • A táboa de busca é A5:G9
      • O valor a coincidir nas filas está en B2
      • O valor a coincidir nas columnas está en B1

      Obtén a seguinte fórmula de busca 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)

      Non é o máis doado de lembrar, non? Ademais, esta é unha fórmula matricial, polo que non esquezas premer Ctrl + Maiús + Intro para introducila correctamente.

      Por suposto, esta fórmula de OFFSET longa non é a única forma posible de facer unha dobre busca en Excel. Podes obter o mesmo resultado usando a BUSCAR V & funcións MATCH, SUMPRODUCT ou INDEX & PARTIDO. Incluso hai unha forma sen fórmulas: empregar intervalos con nome e o operador de intersección (espazo). O seguinte titorial explica todas as solucións alternativas con todo detalle: Como facer a busca bidireccional en Excel.

      Función OFFSET - limitacións e alternativas

      Con sorte, os exemplos de fórmulas desta páxina arroxaron algúns luz sobre como usar OFFSET en Excel. Non obstante, para aproveitar eficazmente a función nos teus propios libros de traballo, non só deberías facelocoñecedor dos seus puntos fortes, pero tamén teña coidado cos seus puntos débiles.

      As limitacións máis críticas da función OFFSET de Excel son as seguintes:

      • Como outras funcións volátiles, OFFSET é un función ávida de recursos . Sempre que hai algún cambio nos datos de orixe, as túas fórmulas de OFFSET recalcúlanse, mantendo Excel ocupado un pouco máis. Este non é un problema para unha fórmula única nunha folla de cálculo pequena. Pero se hai ducias ou centos de fórmulas nun libro de traballo, Microsoft Excel pode tardar bastante en volver calcular.
      • As fórmulas de Excel OFFSET son difíciles de revisar . Debido a que as referencias devoltas pola función OFFSET son dinámicas, as fórmulas grandes (especialmente con OFFSETs anidados) poden ser bastante complicadas de depurar.

      Alternativas ao uso de OFFSET en Excel

      Como é frecuentemente caso en Excel, o mesmo resultado pódese conseguir de varias maneiras diferentes. Entón, aquí tes tres alternativas elegantes a OFFSET.

      1. Táboas de Excel

        Desde Excel 2002, temos unha característica verdadeiramente marabillosa: táboas de Excel completas, en oposición a rangos habituais. Para facer unha táboa a partir de datos estruturados, simplemente prema Inserir > Táboa na pestana Inicio ou prema Ctrl + T .

        Ao introducir unha fórmula nunha cela dunha táboa de Excel, pode crear unha chamada "columna calculada" que copia automaticamente a fórmula a todas as outras celas desa columna e axusta afórmula para cada fila da táboa.

        Ademais, calquera fórmula que faga referencia aos datos dunha táboa axústase automaticamente para incluír as filas novas que engadas á táboa ou excluír as que elimines. Tecnicamente, tales fórmulas funcionan en columnas ou filas de táboas, que son rangos dinámicos na natureza. Cada táboa dun libro de traballo ten un nome único (os predeterminados son Táboa1, Táboa2, etc.) e podes cambiar o nome da túa táboa a través da pestana Deseño > Grupo Propiedades > ;Cadro de texto Nome da táboa .

        A seguinte captura de pantalla mostra a fórmula SUMA que fai referencia á columna Bonus da táboa 3. Preste atención a que a fórmula inclúe o nome da columna da táboa en lugar dun intervalo de celas.

      2. Función INDEX de Excel

        Aínda que non exactamente do mesmo xeito que OFFSET, Excel INDEX tamén se pode usar para crear referencias de rango dinámico. A diferenza de OFFSET, a función INDEX non é volátil, polo que non ralentizará o teu Excel.

      3. Función INDIRECTA de Excel

        Con a función INDIRECTA podes crear un rango dinámico referencias de moitas fontes, como valores de cela, valores de cela e texto, intervalos con nome. Tamén pode facer referencia dinámica a outra folla de Excel ou libro de traballo. Podes atopar todos estes exemplos de fórmulas no noso tutorial de funcións INDIRECTAS de Excel.

      Lembras a pregunta que se fixo ao comezo deste tutorial? Que é OFFSET en Excel? Espero que agora coñezas a resposta : ) Se queres máis experiencia práctica, non dubides en descargar o noso caderno de prácticas (consulta a continuación) que contén todas as fórmulas que se comentan neste tema. páxina e infórmaos de enxeñería inversa para unha comprensión máis profunda. Grazas por ler!

      Caderno de prácticas para descargar

      Exemplos de fórmulas OFFSET (ficheiro .xlsx)

      moverse desde o punto de partida, cara arriba ou abaixo. Se as filas son un número positivo, a fórmula móvese por debaixo da referencia inicial, no caso dun número negativo vai por riba da referencia inicial.
    • Cols - O número de columnas que desexa a fórmula. para moverse desde o punto de partida. Así como as filas, as cols poden ser positivas (á dereita da referencia inicial) ou negativas (á esquerda da referencia inicial).

    Argumentos opcionais:

    • Altura : o número de filas a devolver.
    • Anchura : o número de columnas a devolver.

    Tanto o alto como o Os argumentos de ancho deben ser sempre números positivos. Se se omite calquera delas, o valor predeterminado é o alto ou o ancho de referencia .

    Nota. OFFSET é unha función volátil e pode ralentizar a súa folla de traballo. A lentitude é directamente proporcional ao número de celas recalculadas.

    E agora, imos ilustrar a teoría cun exemplo da fórmula OFFSET máis sinxela.

    Exemplo de fórmula OFFSET de Excel

    Aquí tes un exemplo dunha fórmula OFFSET sinxela que devolve unha referencia de cela baseada nun punto de partida, filas e cols que especifiques:

    =OFFSET(A1,3,1)

    A fórmula indica a Excel que tome a cela A1 como punto de partida (referencia), despois move 3 filas cara abaixo (argumento filas) e 1 columna cara á esquerda (argumento cols). Como resultado, esta fórmula OFFSET devolve o valor da cela B4.

    A imaxe da esquerdamostra a ruta da función e a captura de pantalla da dereita mostra como pode usar a fórmula OFFSET en datos da vida real. A única diferenza entre as dúas fórmulas é que a segunda (á dereita) inclúe unha referencia de cela (E1) no argumento de filas. Pero dado que a cela E1 contén o número 3 e aparece exactamente o mesmo número no argumento das filas da primeira fórmula, ambas devolverían un resultado idéntico: o valor en B4.

    Fórmulas OFFSET de Excel: cousas para lembrar

    • A función OFFSET é que Excel en realidade non move ningunha cela nin rango, só devolve unha referencia.
    • Cando unha fórmula OFFSET devolve un intervalo de celas, os argumentos de filas e cols sempre se refiren á cela superior esquerda do valor devolto.
    • O argumento de referencia debe incluír unha cela ou un intervalo de celas adxacentes, se non, a súa fórmula devolverá o #VALOR! erro.
    • Se as filas e/ou as columnas especificadas moven unha referencia sobre o bordo da folla de cálculo, a súa fórmula OFFSET de Excel devolverá o #REF! erro.
    • A función OFFSET pódese usar dentro de calquera outra función de Excel que acepte unha referencia de cela ou intervalo nos seus argumentos.

    Por exemplo, se tenta utilizar a fórmula =OFFSET(A1,3,1,1,3) por si só, botará un #VALOR! erro, xa que un intervalo a devolver (1 fila, 3 columnas) non cabe nunha única cela. Non obstante, se o incorporas á función SUMA, comoisto:

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

    A fórmula devolverá a suma de valores nun intervalo de 1 fila por 3 columnas que está 3 filas por debaixo e 1 columna á dereita da cela A1, é dicir, o total de valores nas celas B4:D4.

    Por que uso OFFSET en Excel?

    Agora que sabe o que fai a función OFFSET, pode pregúntase "Por que molestarse en usalo?" Por que non simplemente escribir unha referencia directa como B4:D4?

    A fórmula OFFSET de Excel é moi boa para:

    Crear rangos dinámicos : referencias como B1:C4 son estáticas , é dicir, sempre se refiren a un rango determinado. Pero algunhas tarefas son máis fáciles de realizar con rangos dinámicos. Este é especialmente o caso cando se traballa con datos cambiantes, p. tes unha folla de traballo onde se engade unha nova fila ou columna cada semana.

    Obter o intervalo da cela inicial . Ás veces, é posible que non coñezas o enderezo real do intervalo, aínda que sabes que comeza a partir dunha determinada cela. En tales escenarios, usar OFFSET en Excel é o camiño correcto.

    Como usar a función OFFSET en Excel: exemplos de fórmulas

    Espero que non te aburras con tanta teoría . De todos os xeitos, agora estamos chegando á parte máis interesante: os usos prácticos da función OFFSET.

    Funcións de Excel OFFSET e SUM

    O exemplo que comentamos hai un momento demostra o uso máis sinxelo de OFFSET & ; SUMA. Agora, vexamos estas funcións noutro ángulo e vexamos quedoutro xeito poden facelo.

    Exemplo 1. Unha fórmula SUMA/OFFSET dinámica

    Ao traballar con follas de traballo actualizadas continuamente, pode querer ter unha fórmula SUMA que elixa automaticamente todas as filas recentemente engadidas.

    Supoñamos que tes os datos de orixe similares aos que ves na captura de pantalla que aparece a continuación. Cada mes engádese unha nova fila xusto encima da fórmula SUMA e, por suposto, quere que se inclúa no total. En xeral, hai dúas opcións: actualizar manualmente o intervalo na fórmula SUMA cada vez ou facer que a fórmula OFFSET o faga por ti.

    Desde a primeira cela de o rango para sumar especificarase directamente na fórmula SUMA, só tes que decidir sobre os parámetros para a función OFFSET de Excel, que obterá a última cela do rango:

    • Reference - a cela que contén o total, B9 no noso caso.
    • Rows - a cela situada xusto enriba do total, que require o número negativo -1.
    • Cols - é 0 porque non queres cambiar a columna.

    Entón, aquí vai o patrón da fórmula SUMA / OFFSET:

    =SUM( primeira cela:(OFFSET( celda con total, -1,0)

    Axustada para o exemplo anterior, a fórmula ten o seguinte aspecto:

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

    E como se demostra na captura de pantalla a continuación, funciona perfectamente:

    Exemplo 2. Fórmula OFFSET de Excel para sumar as últimas N filas

    No exemplo anterior, supoña que quere saber a cantidade de bonificacións paraos últimos N meses en lugar do total. Tamén queres que a fórmula inclúa automaticamente todas as filas novas que engadas á folla.

    Para esta tarefa, imos usar Excel OFFSET en combinación coas funcións SUMA e COUNT / COUNTA:

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

    ou

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

    Os seguintes detalles poden axudarche a comprender mellor as fórmulas:

    • Reference - a cabeceira da columna cuxos valores quere sumar, cela B1 neste exemplo.
    • Rows - para calcular o número de filas a compensar, use a función COUNT ou COUNTA.

      CONTAR devolve o número de celas da columna B que conteñen números, dos que resta os últimos N meses (o número é a cela E1) e suma 1.

      Se COUNTA é a túa función que elixes, non precisa engadir 1, xa que esta función conta todas as celas que non están baleiras, e unha fila de cabeceira cun valor de texto engade unha cela adicional que precisa a nosa fórmula. Teña en conta que esta fórmula funcionará correctamente só nunha estrutura de táboa similar: unha fila de cabeceira seguida de filas con números. Para diferentes deseños de táboas, é posible que teñas que facer algúns axustes na fórmula OFFSET/COUNTA.

    • Cols - o número de columnas a compensar é cero (0).
    • Height - o número de filas para sumar especifícase en E1.
    • Width - 1 columna.

    Uso da función OFFSET con AVERAGE, MAX, MIN

    Do mesmo xeito como calculamos as bonificacións dos últimos N meses, podesobter unha media dos últimos N días, semanas ou anos, así como atopar os seus valores máximos ou mínimos. A única diferenza entre as fórmulas é o nome da primeira función:

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

    A chave O beneficio destas fórmulas sobre a MEDIA (B5:B8) ou MAX (B5:B8) habituais é que non terá que actualizar a fórmula cada vez que se actualice a súa táboa de orixe. Non importa cantas filas novas se engadan ou eliminen na súa folla de traballo, as fórmulas OFFSET sempre farán referencia ao número especificado de últimas celas (máis baixas) da columna.

    Fórmula OFFSET de Excel para crear un rango dinámico

    Utilizada xunto con COUNTA, a función OFFSET pode axudarche a crear un rango dinámico que pode resultar útil en moitos escenarios, por exemplo, para crear listas despregábeis actualizables automaticamente.

    A fórmula OFFSET para un intervalo dinámico é o seguinte:

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

    No corazón desta fórmula, usa a función CONTAR para obter o número de celas non en branco na columna de destino. Ese número vai ao argumento de altura de OFFSET que lle indica cantas filas devolver.

    Ademais diso, é unha fórmula de compensación normal, onde:

    • Referencia é o punto de partida desde o que se basea a compensación, por exemplo Sheet1!$A$1.
    • As filas e Cols son 0 porque non hai columnas nin filas para compensar.
    • O ancho é 1 columna.

    Nota. Se estásfacendo un intervalo dinámico na folla actual, non é necesario incluír o nome da folla nas referencias, Excel farao por ti automaticamente ao crear o intervalo nomeado. En caso contrario, asegúrese de incluír o nome da folla seguido do signo de exclamación como neste exemplo de fórmula.

    Unha vez que creas un intervalo con nome dinámico coa fórmula OFFSET anterior, podes usar a validación de datos para crear unha lista despregable dinámica que se actualizará automaticamente en canto engadas ou elimines elementos da lista de orixe.

    Para obter unha guía detallada paso a paso sobre a creación de listas despregábeis en Excel, consulte os seguintes tutoriais:

    • Creación de listas despregábeis en Excel: estático, dinámico, doutro libro
    • Facer unha lista despregable dependente

    Excel OFFSET & BUSCARV

    Como todos saben, realízanse buscas verticais e horizontais simples coa función BUSCARV ou BUSCAR HL, respectivamente. Non obstante, estas funcións teñen demasiadas limitacións e adoitan tropezar con fórmulas de busca máis potentes e complexas. Entón, para realizar buscas máis sofisticadas nas túas táboas de Excel, tes que buscar alternativas como INDEX, MATCH e OFFSET.

    Exemplo 1. Fórmula OFFSET para unha Vlookup esquerda en Excel

    Unha das limitacións máis infames da función BUSCAR V é a incapacidade de mirar á súa esquerda, o que significa que BUSCAR V só pode devolver un valor aá dereita da columna de busca.

    Na nosa táboa de busca de mostra, hai dúas columnas: nomes dos meses (columna A) e bonos (columna B). Se queres obter unha bonificación durante un mes determinado, esta sinxela fórmula de BUSCAR V funcionará sen problemas:

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

    Non obstante, tan pronto como intercambias as columnas na táboa de busca, esta producirá inmediatamente o erro #N/A:

    Para xestionar unha busca no lado esquerdo, necesitas unha función máis versátil que non lle importe realmente onde reside a columna de retorno . Unha das posibles solucións é usar unha combinación de funcións INDEX e MATCH. Outro enfoque é usar OFFSET, MATCH e ROWS:

    OFFSET( lookup_table , MATCH( lookup_value , OFFSET( lookup_table , 0, lookup_col_offset , FILAS( táboa_de_busca ), 1) ,0) -1, return_col_offset , 1, 1)

    Onde:

    • Lookup_col_offset : é o número de columnas que hai que mover desde o punto de inicio á columna de busca.
    • Return_col_offset : é o número de columnas que hai que mover desde o punto de inicio ata o retorno. columna.

    No noso exemplo, a táboa de busca é A5:B9 e o valor de busca está na cela B1, a compensación da columna de busca é 1 (porque estamos a buscar o valor de busca na segunda columna (B ), necesitamos mover 1 columna á dereita desde o inicio da táboa), a compensación da columna de retorno é 0 porque estamos devolvendo valores do primeiro

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.