Rango denominado dinámico de Excel: como crear e usar

  • Comparte Isto
Michael Brown

Neste titorial, aprenderás a crear un intervalo de nomes dinámico en Excel e a usalo en fórmulas para incluír novos datos nos cálculos automaticamente.

No curso da semana pasada tutorial, analizamos diferentes formas de definir un intervalo con nome estático en Excel. Un nome estático sempre se refire ás mesmas celas, o que significa que terías que actualizar manualmente a referencia do intervalo sempre que engadas datos novos ou elimines datos existentes.

Se estás a traballar cun conxunto de datos en constante cambio, podes querer Dinámico o seu intervalo nomeado para que se expanda automaticamente para acomodar entradas ou contratos recentemente engadidos para excluír os datos eliminados. Máis adiante neste titorial, atoparás unha guía detallada paso a paso sobre como facelo.

    Como crear un intervalo de nomes dinámico en Excel

    Para Para comezar, imos construír un intervalo de nomes dinámico composto por unha única columna e un número variable de filas. Para facelo, siga estes pasos:

    1. Na pestana Fórmula , no grupo Nomes definidos , faga clic en Definir nome . Ou prema Ctrl + F3 para abrir o Xestor de nomes de Excel e faga clic no botón Novo... .
    2. De calquera xeito, abrirase o cadro de diálogo Novo nome , onde especifica os seguintes detalles:
      • Na caixa Nome , escriba o nome para o seu rango dinámico.
      • No menú despregable Alcance , configure o ámbito do nome. Recoméndase Caderno de traballo (predeterminado) na maioríacasos.
      • Na caixa Refírese a , insira a fórmula COUNT OFFSET ou INDEX COUNTA.
    3. Fai clic en Aceptar. Feito!

    Na seguinte captura de pantalla, definimos un intervalo denominado dinámico elementos que acomoda todas as celas con datos da columna A, excepto a fila de cabeceira :

    Fórmula OFFSET para definir un intervalo de nome dinámico de Excel

    A fórmula xenérica para facer un rango de nome dinámico en Excel é a seguinte:

    OFFSET ( primeira_celda, 0, 0, COUNTA( columna), 1)

    Onde:

    • primeira_cela - a primeira elemento que se incluirá no intervalo nomeado, por exemplo $A$2.
    • columna : unha referencia absoluta á columna como $A:$A.

    No núcleo desta fórmula, usa a función COUNTA para obter o número de celas non en branco na columna de interese. Ese número vai directamente ao argumento height da función OFFSET(reference, rows, cols, [height], [width]) que lle indica cantas filas hai que devolver.

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

    • referencia é o punto de partida desde o que se basea o desprazamento (primeira_célula).
    • filas e cols son ambos 0, xa que non hai columnas nin filas para compensar.
    • width é igual a 1 columna.

    Por exemplo, para construír un intervalo de nomes dinámico para a columna A da folla 3, comezando na cela A2, usamos esta fórmula:

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

    Nota. Se estás definindoun rango dinámico na folla de traballo actual, non precisa incluír o nome da folla nas referencias, Excel farao por ti automaticamente. Se está a construír un intervalo para algunha outra folla, prefixe a cela ou a referencia do intervalo co nome da folla seguido do signo de exclamación (como no exemplo de fórmula anterior).

    Fórmula INDEX para crear un intervalo con nome dinámico en Excel

    Outra forma de crear un rango dinámico de Excel é usar COUNTA en combinación coa función INDEX.

    primeira_celda:INDEX( columna,CONTA( columna))

    Esta fórmula consta de dúas partes:

    • No lado esquerdo do operador de intervalo (:), pon a referencia inicial codificada como $A$2 .
    • No lado dereito, usa a función INDEX(matriz, row_num, [column_num]) para descubrir a referencia final. Aquí, proporciona toda a columna A para a matriz e usa COUNTA para obter o número de fila (é dicir, o número de celas que non se introducen na columna A).

    Para o noso conxunto de datos de mostra (consulta o captura de pantalla anterior), a fórmula é o seguinte:

    =$A$2:INDEX($A:$A, COUNTA($A:$A))

    Dado que hai 5 celas non en branco na columna A, incluíndo un encabezado de columna, COUNTA devolve 5. En consecuencia, INDEX devolve $A $5, que é a última cela utilizada na columna A (normalmente unha fórmula de índice devolve un valor, pero o operador de referencia obrígao a devolver unha referencia). E porque establecemos $A$2 como punto de partida, o resultado final dea fórmula é o intervalo $A$2:$A$5.

    Para probar o intervalo dinámico recén creado, podes facer que COUNTA obteña o reconto de elementos:

    =COUNTA(Items)

    Se todo se fai correctamente, o resultado da fórmula cambiará unha vez que engada ou elimine elementos da lista:

    Nota. As dúas fórmulas comentadas anteriormente producen o mesmo resultado, pero hai unha diferenza de rendemento que debes ter en conta. OFFSET é unha función volátil que se recalcula con cada cambio nunha folla. En máquinas modernas potentes e conxuntos de datos de tamaño razoable, isto non debería ser un problema. En máquinas de pouca capacidade e grandes conxuntos de datos, isto pode ralentizar o teu Excel. Nese caso, é mellor que use a fórmula INDEX para crear un intervalo con nome dinámico.

    Como facer un intervalo dinámico bidimensional en Excel

    Para crear un intervalo con nome bidimensional, onde non só o número de filas senón tamén o de columnas é dinámico, use a seguinte modificación da fórmula INDEX COUNTA:

    primeira_célula:INDEX($1:$1048576, COUNTA( primeira_columna), COUNTA( first_row)))

    Nesta fórmula, tes dúas funcións COUNTA para obter a última fila non baleira e a última columna non baleira ( row_num e os argumentos número_columna da función INDEX, respectivamente). No argumento matriz , alimenta a folla de traballo completa (1048576 filas en Excel 2016 - 2007; 65535 filas en Excel 2003 e inferiores).

    E agora,imos definir un intervalo dinámico máis para o noso conxunto de datos: o intervalo denominado vendas que inclúe as cifras de vendas durante 3 meses (de xaneiro a marzo) e que se axusta automaticamente a medida que engades novos elementos (filas) ou meses (columnas) a a táboa.

    Cos datos de vendas que comezan na columna B, fila 2, a fórmula adopta a seguinte forma:

    =$B$2:INDEX($1:$1048576,COUNTA($B:$B),COUNTA($2:$2))

    Para asegurarte de que o teu rango dinámico funciona como se supón, introduce as seguintes fórmulas nalgún lugar da folla:

    =SUM(sales)

    =SUM(B2:D5)

    Como podes ver na captura de pantalla a continuación , ambas fórmulas devolven o mesmo total. A diferenza revélase no momento en que engades novas entradas á táboa: a primeira fórmula (co rango dinámico nomeado) actualizarase automaticamente, mentres que a segunda terá que actualizarse manualmente con cada cambio. Iso fai unha gran diferenza, eh?

    Como usar rangos con nome dinámicos en fórmulas de Excel

    Nas seccións anteriores deste tutorial, xa viches un par de fórmulas sinxelas que usan rangos dinámicos. Agora, imos tentar crear algo máis significativo que mostre o valor real dun intervalo denominado dinámico de Excel.

    Para este exemplo, imos tomar a fórmula clásica INDEX MATCH que realiza Vlookup en Excel:

    INDEX ( intervalo_devuelto, COINCIDIR ( valor_de_busca, intervalo_de_busca, 0))

    ... e vexa como pode facer a fórmula aínda máis poderosa co uso deintervalos de nome dinámicos.

    Como se mostra na captura de pantalla anterior, estamos tentando crear un panel de control, onde o usuario introduce un nome de artigo no H1 e obtén as vendas totais para ese artigo no H2. A nosa táboa de mostra creada con fins de demostración contén só 4 elementos, pero nas túas follas de vida real pode haber centos e incluso miles de filas. Ademais, pódense engadir novos elementos a diario, polo que usar referencias non é unha opción, porque terías que actualizar a fórmula unha e outra vez. Son moi preguiceiro para iso! :)

    Para forzar que a fórmula se expanda automaticamente, imos definir 3 nomes: 2 rangos dinámicos e 1 cela con nome estática:

    Rango_busca: =$A$2:INDEX($ A:$A, COUNTA($A:$A))

    Rango_retorno: =$E$2:INDEX($E:$E, COUNTA($E:$E))

    Valor_busca: =$H$1

    Nota. Excel engadirá o nome da folla actual a todas as referencias, polo que antes de crear os nomes asegúrate de abrir a folla cos datos de orixe.

    Agora, comeza a escribir a fórmula en H1. Cando se trate do primeiro argumento, escriba algúns caracteres do nome que quere usar e Excel mostrará todos os nomes coincidentes dispoñibles. Fai dobre clic no nome apropiado e Excel inserirao na fórmula inmediatamente:

    A fórmula completada ten o seguinte aspecto:

    =INDEX(Return_range, MATCH(Lookup_value, Lookup_range, 0))

    E funciona perfectamente!

    En canto engadas novos rexistros á táboa, incluiranse nos teus cálculos enunha vez, sen que teñas que facer un só cambio na fórmula! E se algunha vez precisas transferir a fórmula a outro ficheiro de Excel, simplemente crea os mesmos nomes no libro de destino, copia/pega a fórmula e fai que funcione inmediatamente.

    Consello. Ademais de facer que as fórmulas sexan máis duradeiras, os intervalos dinámicos son útiles para crear listas despregábeis dinámicas.

    É así como creas e usas intervalos con nome dinámicos en Excel. Para ver as fórmulas que se comentan neste tutorial, podes descargar o noso Caderno de traballo de rango dinámico de Excel de exemplo. Grazas por ler e espero verte no noso blog a vindeira semana!

    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.