SUMAR.SI DEPENDIENDO DE LA FORMULA

5 envíos / 0 nuevos
Último envío
fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 7 años 8 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
SUMAR.SI DEPENDIENDO DE LA FORMULA

Hola.

Quisiera hacer un sumar.si, donde la condicion es que el criterio sea que la formula que existe dentro del rango de busqueda contenga un determinado texto:

Por ejemplo:

En la celda E4 tengo la formula =Hoja2!B$1

Bien pues en la celda G4 quiero sumar todos los valores de la columna E3 cuando su columna E4 tenga dentro de su formula "B$1".

Lo estoy intentando con HALLAR, pero ni por asomo me sale.

No sé si me explico bien, pero es que esto de excel......

universoexcel
Imagen de universoexcel
Offline
última acción: Hace 6 años 8 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 25/10/2011 - 19:41
Puntos: 710
Re: SUMAR.SI DEPENDIENDO DE LA FORMULA

Hola,

Temo decirte que lo que estás intentando hacer no es posible en Excel, ya que si bien tu lógica es correcta en la fórmula que estás inentando construir; Excel no puede resolver fórmulas donde el resultado depende de los argumentos de una función. Ya que esto estaría creando una referencia circular.

Tu mejor opción sería ponerle un indicador a las celdas que quieres sumar y en base a eso usar "Sumar.Si"...

Visitanos en http://universoexcel.com

xoan ninguen
Imagen de xoan ninguen
Offline
última acción: Hace 3 años 9 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 19/01/2011 - 10:03
Puntos: 835
Re: SUMAR.SI DEPENDIENDO DE LA FORMULA

Hum.

Muy interesante la pregunta. A bote pronto, a mi se me ocurriría ir a las macros. Pero seguro que podría resolverse de otra forma.

Navegando por la red, he visto que esto podría solventarse con funciones XML (Excel4). Pero estas funciones no se instalan por defecto, así que toca reinstalar el paquete Office/Excel y verificar que lo estén. Yo no las he podido probar porque no las tengo instaladas, pero "parece que quiero entender lo que me explican"... :)

En el siguiente enlace se comenta cómo proceder, una vez instaladas y funcionando:

http://www.compartir-tecnologias.es/respuesta/como-puedo-convertir-el-argumento-una-formula-texto-ayuda-203639492.html

puedes obtener el resultado 'textual' de una formula en celda a través de nombres definidos y macrofunciones de excel4, suponiendo que la celda que contiene la formula es 'E4'... y que el trabajo lo requieres en 'G4'...
1) SELECCIONA 'G4' antes de todo [es importante que la celda activa sea la adecuada para mantener la relatividad de las referencias]
2) ve a [menu] insertar / nombre / definir... (asigna un nombre p.e.: Formula, sin comillas ni nada), y se asigna a E4 que es la que contiene la fórmula
Hasta aqui, el nombre definido -Formula- sera el texto de la formula de la celda donde sea 'llamado/usado/...'
4) usa la siguiente formula en [G4] =SUMAR.SI(E3;EXTRAE(Formula;HALLAR("!";Formula);3))

Un poco más de información en... http://jldexcelsp.blogspot.com/2006/08/usando-funciones-xlm-excel-4-en-hojas.html

Y si no, mediante macros, llamando a la función que te adjunto, y que tienes que pegar en el código de la hoja o en un Módulo aparte.

En tu caso me parece que no vale el SUMAR.SI porque creo que es relativo a las celdas que evalúa, pero lo puedes evaluar con la función condicional SI:
=SI(ENCONTRAR("B$1";TEXTO(formula2texto(4;5);"#"))>0;E3;0))

donde
Fila = 4
Columna = E = 5

Function Formula2Texto(lgFila As Long, lgColumna As Long) As String
Formula2Texto = VBA.CStr(Cells(lgFila, lgColumna).FormulaLocal)
End Function

Saludos

-----------------------------------------------------------------

www.TrazEX.com (soluciones sobre Excel)

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 1 día 3 horas
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
función personalizada.

Si no tienes miedo a las macros, puedes crear una función personalizada que de como resultado la fórmula que hay dentro de una celda.

una vez tengas la fórmula como un texto, ya puedes hacer con ella lo que quieras, por ejemplo buscar si tiene la cadena "$B$1"

por ejemplo, podría ser algo así:

Function DimeTuFormula(Celda As Range, Optional TipoFormula As Integer = 0) As String
' función que da como resultado la fórmula que hay en una celda
' el tipo especifica cómo queremos ver la fórmula
Select Case TipoFormula
Case 0 ' inglés A1
DimeTuFormula = Celda.formula
Case 1 ' idioma local, A1
DimeTuFormula = Celda.FormulaLocal
Case 2 ' inglés RC (Fila Columna)
DimeTuFormula = Celda.FormulaR1C1
Case 3 ' idioma local, RC (Fila Columna)
DimeTuFormula = Celda.FormulaR1C1Local
End Select
End Function

------
Ya sé Excel, pero necesito más ahora en pdf

 

------
Ya sé Excel, pero necesito más.

fjlruiz
Imagen de fjlruiz
Offline
última acción: Hace 7 años 8 meses
Nivel 1 - 200 puntosNivel 2 - 500 puntos
alta: 11/01/2010 - 10:59
Puntos: 817
Re: función personalizada.

Hola Don pacomegia. Usted me enseño muy bien a emplear macros, jejeje. Quería hacerlo con funciones de excel, pero parece ser que no hay manera. Cabezonadas que le dan a uno, mas que nada por intentar aprender siempre un poquito mas. Quizas intente lo que dice Xoan. Gracias a ambos.