jueves, 18 de marzo de 2010

Ejercicio con la función INDIRECTO.

Ejercitaremos, aplicando a un caso propuesto por un usuario, con la función INDIRECTO, de la que ya comentamos algo en una entrada anterior:
...Tengo una tabla de varias fila y columnas (A1:H100 por ejemplo). Como puedo indicar a una operacion promedio (por ejemplo) que promedie entre la celda A25:A65, por ejemplo sin colocar dichos coordenadas manualmente?
Por ejemplo, de acuerdo a un resultado X de la celdas X100 y X101, (Que se hallan fuera de la tabla) es necesario promediar la columna A25:A65, en donde 25 y 65 deben corresponder a los resultados de las celdas X100 y X101. Estas ultimas celdas me determinan el rango de busqueda. Hasta ahora lo vengo haciendo introduciendo el rango manualmente...

La solución es bien sencilla en este caso planteado. Suponemos que los valores de las celdas X100 y X101 resultan bien de alguna formulación o alguna Validación, bien de introducir valores manualmente.
Valor X100 = 25
Valor X101 = 65
Por otro lado disponemos de una Tabla de datos, rango A1:B100, en cuya primera columna 'Importe' listamos valores núméricos asociados a una descripción.
Puesto que lo que necesitamos conocer es el promedio de las celdas de la columna A ('Importe') determinados por las filas marcadas por las celdas X100 y X101, empleamos nuestra función INDIRECTO

=PROMEDIO(INDIRECTO("A"&X100):INDIRECTO("A"&X101))

La función INDIRECTO convierte en un rango entendible para Excel la combinación de un texto con un valor ("A"&X100 ó "A"&X101); esto es, transforma la unión de 'A + 25' ó 'A + 65' en celdas; sobre las cuales poder aplicar la función PROMEDIO.

5 comentarios:

  1. Hola a todos, muy bueno lo que han compartido, los felicito por ayudar a la comunidad.
    Habrá alguien que me pueda ayudar con esta tarea?
    Tengo dos archivos en excel 2007 en uno manejo una serie de listas las cuales ya poseen Nombres de Rangos Dinámicos (ya comprobados que sí trabajan bien) y mientras que en el otro archivo manejo una serie de plantillas para rellenar. Bien lo que necesito es hacer una Validación por lista externa con Nombre de Rango Dinámico, que sí sé hacerla pero únicamente con Rango Fijo (ej.: A2:A9), no tengo problema con que el Libro Origen (el de las listas) esté abierto.
    De antemano estoy muy agradecido al o a los expertos que me puedan brindar una mano.
    Saludos Cordiales..!Pueden escribirme a danubioazula@gmail.com

    ResponderEliminar
  2. Hola Danubio,
    En principio es imposible incluir para generar una Validación tipo lista, un rango de otros libros...pero una solución intermedia sería:
    en primer lugar crear el rango dinámico, en tu caso mediante la función DESREF, en el Libro_Origen.xls, lo llamaremos datos. Una vez generado este rango dinámico, lo traeríamos a nuestro Libro_principal.xls, en alguna hoja del libro_principal introduciríamos el vínculo con ese rango:
    =Libro_origen!datos
    que si lo ejecutamos en forma matricial, sobre el rango adecuado, tendríamos en nuestro Libro los valores necesarios para crear nuestra validación.
    Buscaré la forma de evitar este último paso...
    Slds

    ResponderEliminar
  3. Hola, de nuevo, Danubio...
    parece que he tenido una inspiración o algo similar.
    Creo haber encontrado la solución.
    El el 'Libro_principal' generas un Nombre, llamado datos, creado con la función ya comentada DESREF, de esta forma:
    =DESREF([Libro_origen]Hoja1!$A$2;;;CONTARA([Libro_origen]Hoja1!$A:$A)-1;1)
    y una vez creado este rango dinámico sobre otro libro, podremos emplearlo en el 'Libro_principal' en una Validación de celda tipo lista.
    Saludos!!

    ResponderEliminar
  4. Alguien me puede ayudar con un ejercicio de INDIRECTO... no entiendoo !!

    ResponderEliminar
  5. Claro...
    ¿cuál es tu problema con la función INDIRECTO?.

    ResponderEliminar