Saltar al contenido

¿Como puedo auto-anidad formulas para no utilizar formulas intermedias?


simon5

Recommended Posts

Hola, soy nuevo en el foro(usuario básico-intermedio de excel, utilizo 2007).

Luego de hartas horas de búsqueda en google y este foro, les hago llegar mi inquietud.

Quería saber si excel posee alguna función que permita "auto anidar", o bien "auto-compilar" (primero nose si existen estos términos jejeje). Con estos términos hago referencia a que a partir de una celda final se cree en una nueva celda final una formula que incluya todas las dependencias de las celdas que esta llamando de forma que llege al inicio de un "arbol genealógico" detectando las celdas principales de entrada (las cuales serian las únicas que dependen de esta nueva celda final).

En otras palabras:

Teniendo de una serie de celdas en cadena que estén incluidas en una formula final en una celda de término

Utilizar una función "mágica" que me permita replicar la formula de la celda final pero que esta reemplace las dependencias de otras celdas por las operaciones múltiples que estén incluidas en el proceso hasta llegar a las celdas iniciales (variables de entrada como las utilizo yo).

Incluyo una planilla con un ejemplo a modo explicativo de mi inquietud, donde requiero calcular el peso de un cilindro de metal (siendo las celdas iniciales : diámetro, altura, y densidad material).

El resultado final debiese obtenerse mediante lo que busco tomando la celda L5 y devolver la celda L10, donde yo manualmente compile las celdas intermedias.

Entiendo que esto se puede hacer manualmente, pero yo tengo problemas con la sintaxis y suelo equivocarme y tardar mucho tiempo (a pesar de utilizar el "asistente de formulas"), por lo que busco una forma automática.

REFERENCIA: de porque creo que podría ser posible la existencia de esta funcion "magica"

Solver de alguna forma también realiza esta operación en el campo "estimar", donde se colocan las celdas a cambiar para obtener la maximizan o minimizan de la celda objetivo, de tal forma que automáticamente retrocede en este árbol genealógico y detecta las celdas iniciales o variables de entrada.

Muchas gracias, Saludos

anidar o compilar formulas en una sola celda.xls

Enlace a comentario
Compartir con otras webs

simon5, no tengo respuesta para generar automáticamente megafórmulas en Excel.

Para meter en una celda una megafórmula, me ayudo del [DBOX]Administrador de Nombres[/DBOX], como he hecho en tu caso.

Mira las fórmulas del adjunto e investiga sobre [DBOX]Definir y usar nombres en fórmulas - Excel - Office.com[/DBOX]

[ATTACH]39543.vB[/ATTACH]

post-47802-145877007981_thumb.jpg

anidar o compilar formulas en una sola celda-PW1.xls

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Saludos amigos espero estén bien Estoy intentando hacer un formulario que me convierta unidades de masa sin embargo  en el mejor de los casos solo he podido lograr la conversión de una unidad a la vez en los TextBox 1, 3, 5, 7, 9, 11 y 13 y cuando lo logro el resultado que se copia  en la celda no se corresponde con el obtenido originalmente en el Textbox del Formulario (frmconv)  ejemplo al convertir 1900 Kg a Lb el resultado en el TextBox1 =4188,78298142 sin embargo al guardar el resultado lo que se copia en la Celda  "F11" es  418.878.298.142,00, adicionalmente el resultado de la conversión no se visualiza inmediatamente por lo que debo de hacer click en los TextBox 1, 3, 5, 7, 9, 11 y 13  para ver el resultado. Mucho les sabre agradecer la ayuda que me puedan brindar. PRUEBA.xlsm
    • Saludos a ambos. Copiar y pegar por sí solas, no tengo el conocimiento de que sirvan como "evento" para actualizar las referencias que buscas hacer, en la forma que lo quieres hacer, ó la fórmula como la quieres hacer. Te recomiendo abrir un tema similar en Macros, es posible que algún Maestro te de alguna idea. Por otro lado, si debe ser con funciones, entonces tendías que interactuar con COLUMNA() y FILA() para que al pegar el destino "sepa" donde está ubicado e intentar cambiar la referencia. =INDIRECTO(CARACTER(COLUMNA()+64)&FILA()) Algo como eso se podría usar para obtener el código ASCII de la letra de la columna (donde 65 es el código para “A”), y FILA() devuelve el número de la fila. La función CARACTER() convierte el código ASCII en una letra. Luego, INDIRECTO() toma la cadena resultante (por ejemplo, “A1”, “B2”, etc.) y la usa como una referencia de celda. En ese caso, una posible idea de editar tu ejemplo sería: =SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&"1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!"&CARACTER(COLUMNA()+64)&":"&CARACTER(COLUMNA()+64)); "OK")); 0)   Enfatizo que es una idea, es muy probable que haya que editar. Así como esta su tema, la recomendación del maestro toma relevancia porque especular o deducir no es lo adecuado para intentar ayudar en este tipo de consultas. Por esta causa de mi parte por ejemplo no puedo aportar algo adicional.
    • En el ejemplo te he puesto 1 segundo para no hacer largo el gif, cámbialo a tu necesidad
    • Sub RecorrerRangoC() Set hoja = ActiveSheet Set rango = hoja.Range("C2:C" & hoja.Cells(hoja.Rows.Count, "C").End(xlUp).Row) If rango.Cells.Count = 0 Then MsgBox "No hay datos en la columna C.", vbExclamation Exit Sub End If For Each celda In rango.SpecialCells(xlCellTypeVisible) celda.Select Application.Wait Now + TimeValue("00:00:01") Next celda End Sub Prueba y comenta
    • Gracias   Al final funciona con esta formula. =SI.ERROR(C5*BUSCARV(A$2;TablaReparto[#Todo];COINCIDIR(D5;TablaReparto[#Encabezados];));C5) En la celda C5 he puesto la OT. Es similar a lo que me das como solución. ¡Muchas gracias por la ayuda!  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.