Reducir y mejorar fórmula

20/05/2007 - 12:37 por Ernesto | Informe spam
Hola a todos.
A ver si me podría alguien ayudar.
Tengo una fórmula, que se repite bastantes veces, en distintas celdas y
columnas y creo que se podría reducir y 'afinar'.
La fórmula en cuestión es:
=SI($B77="A";SI($G77=1;$H$3;SI($G77=2;$H$3/2;SI($G77=3;$H$3/3;SI($G77=4;$H$3/4;SI($G77=5;$H$3/5;SI($G77=6;$H$3/6)))))))
En cierta ocasión Héctor Miguel me
dejó:=SI(CJ524úLSO;"";SI(CJ524=$H$3/2;"";SI(CJ524=$H$3/3;$H$3/3;SI(CJ524=$H$3/4;$H$3/4;SI(CJ524=$H$3/5;$H$3/5;SI(CJ524=$H$3/6;$H$3/6)))))),
en:
=SI(O(CJ524úLSO;CJ524=$H$3/2);"";SI(ESNUMERO(COINCIDIR($H$3;CJ524*{3\4\5\6};0));CJ524)),yfunciona igual.Soy novato y aún con este ejemplo no me atrevo a 'cambiarla' al formato'*{3\4\5\6};0))', ya que esta hoja es muy valiosa para el trabajo.Gracias y saludos.

Preguntas similare

Leer las respuestas

#6 Héctor Miguel
22/05/2007 - 07:39 | Informe spam
hola, Ernesto !

He probado la formula que me dabas : =si(y($b77="a";esnumero(coincidir($g77;{1\2\3\4\5\6};0)));$h$3/$g77)
tal como esta aquí, '[OJO, que mi sistema usa barra invertida para separar filas en matrices constantes -?-]'
y no me funciona, no me da ningun valor, ni error.
Como si trabajara sobre valores 0 (cero), cuando '$G77, tiene valores del 1 al 6, y $H$3 también tiene un valor...



'curioso' ???

si no se cumplen ambas condiciones:
1) que $B77 contenga la letra "a"
2) que $G77 contenga numeros enteros de 1 a 6
-> la formula me devuelve: -> FALSO

si se cumplen, la formula divide el valor en $H$3 por el entero en $G77 (1 a 6 solamente)

comentas [si encuentras] algun detalle mas... 'sgnificativo' ?
saludos,
hector.
Respuesta Responder a este mensaje
#7 Ernesto
22/05/2007 - 15:33 | Informe spam
Es curioso HM. Te amplio y explico.
Tengo 6 'paneles' con 11 columnas [A,B,C,D,E,F,G,H,I,J,K], con 60 filas cada
una.
1º panel va de BC524 a BM583, el 2º de CJ524 a CT583, el 3º de DQ524 a
EA583, el 4º de BC595 a BM654, el 5º de CJ595 a CT654
y el 6º de DQ595 a EA654. SOLO he intentado modificar [para probar] los
paneles 1 y el 3 [pago contado y en 3 plazos] CON TUS FORMULAS..

En $H$3:$H$13, están 'fijos' los distintos valores de los 'costes' a
liquidar de A,B,C,D,E,F,G,H,I,J y K [cada uno con un valor, entero o no]
En G77:G136, van los valores del 1 al 6, enteros, no fracción [formas de
pago].

1º Panel [Pago de UNA sola vez] MODIFICADO.
columna [A] primera fila/celda [BC524]; yo tenía:
=SI($B77="A";SI($G77=1;$H$3;SI($G77=2;$H$3/2;SI($G77=3;$H$3/3;SI($G77=4;$H$3/4;SI($G77=5;$H$3/5;SI($G77=6;$H$3/6)))))))
Sustituida por la tuya:
=SI(Y($B77="A";ESNUMERO(COINCIDIR($G77;{1\2\3\4\5\6};0)));$H$3/$G77),
columna [B] primera fila/celda [BD524]; yo tenía:
=SI($B77="B";SI($G77=1;$H$4;SI($G77=2;$H$4/2;SI($G77=3;$H$4/3;SI($G77=4;$H$4/4;SI($G77=5;$H$4/5;SI($G77=6;$H$4/6)))))))
Sustituida por la tuya:
=SI(Y($B77="B";ESNUMERO(COINCIDIR($G77;{1\2\3\4\5\6};0)));$H$4/$G77),
columna [C] primera fila/celda [BE524]; yo tenía:
=SI($B77="C";SI($G77=1;$H$5;SI($G77=2;$H$5/2;SI($G77=3;$H$5/3;SI($G77=4;$H$5/4;SI($G77=5;$H$5/5;SI($G77=6;$H$5/6)))))))
Sustituida por la tuya:
=SI(Y($B77="C";ESNUMERO(COINCIDIR($G77;{1\2\3\4\5\6};0)));$H$5/$G77), así en
la primera celda hasta la "K" y
COPIADA toda la primera fila BC524:BM524 hasta la BC583:BM583. Como ves van
VARIANDO las LETRAS[A,B,C,D,...K] y $H$[3,4,5,...13]
En este panel TUS FORMULAS LIQUIDAN exactamente igual que las mías.
Funciona.

2º Panel, pago de DOS veces. [Aún NO TE HE PROPUESTO su 'mejora/reducción'
como las otras], yo tengo la fórmula:
=SI(BC524úLSO;"";SI(BC524=$H$3;"";SI(BC524=$H$3/2;$H$3/2;SI(BC524=$H$3/3;$H$3/3;SI(BC524=$H$3/4;$H$3/4;SI(BC524=$H$3/5;$H$3/5;SI(BC524=$H$3/6;$H$3/6))))))).
Liquida correctamente con mis formulas.

3º Panel, pago de TRES veces, columna [A] primera fila/celda [DQ524];
MODIFICADO; yo tenía:
=SI(CJ524úLSO;"";SI(CJ524=$H$3/2;"";SI(CJ524=$H$3/3;$H$3/3;SI(CJ524=$H$3/4;$H$3/4;SI(CJ524=$H$3/5;$H$3/5;SI(CJ524=$H$3/6;$H$3/6)))))),
Sustituida por la tuya:
=SI(O(CJ524úLSO;CJ524=$H$3/2);"";SI(ESNUMERO(COINCIDIR($H$3;CJ524*{3\4\5\6};0));CJ524))
Modificada en las columnas siguientes [B,C,D,.Y K], la celda y $H$, como
el 1º panel y COPIADA luego toda la fila [DQ524:EA524]
a las demás filas hasta [DQ583:EA583]
Y aquí viene lo curioso: Liquida 'Todas' las COLUMNAS bien, EXCEPTO la
columna "E" [DU524:DU583], y columna "I" [DY524:DY583], que en varios casos
y según la clase de liq [valor en G77:G136], deja en blanco y no da valor,
cuando si tiene que tener valor. ¿Por tener distinta formulación que el
panel 2?
El caso es que en las pruebas que he hecho, las demás columnas liquidan
bien. Y esto me 'descoloca'.
Además como el panel 4º se 'apoya' en el 3º, y los demás en el anterior,
cuando 'falla' el 3º los siguientes ya liquidan mal.
Lo he revisado, comparado, borrado, copiado, et. un monton de veces y no
caigo. No se si tendrá que ver que mis formulas 'miran' los paneles
anteriores para calcular en función del valor que tenga y quizá el 3º, con
tu formula afecte. El caso es que no soy capaz de dar con ello, y me
gustaría porque no se me quedaría ela hoja en SOLO poder liquidar hasta 6.

Te expongo para comnpletar las formulas de los tres últimos paneles.

Formula panel 4º, pago en CUATRO veces; NO Modificado
columna [A] primera fila/celda [BC595]; [NO TE HE PROPUESTO su
'mejora/reducción' como las otras], yo tengo la fórmula:
=SI(DQ524úLSO;"";SI(DQ524=$H$3/4;$H$3/4;SI(DQ524=$H$3/5;$H$3/5;SI(DQ524=$H$3/6;$H$3/6))))

Formula panel 5º, pago en CINCO veces; NO Modificado
columna [A] primera fila/celda [BJ595]; [NO TE HE PROPUESTO su
'mejora/reducción' como las otras], yo tengo la fórmula:
=SI(BC595úLSO;"";SI(BC595=$H$3/5;$H$3/5;SI(BC595=$H$3/6;$H$3/6)))

Formula panel 6º, pago en SEIS veces; NO Modificado
columna [A] primera fila/celda [DQ595];[NO TE HE PROPUESTO su
'mejora/reducción' como las otras], yo tengo la fórmula:
=SI(CJ595úLSO;"";SI(CJ595=$H$3/6;$H$3/6))

Gracias por tus ayudas.
-

"Héctor Miguel" escribió en el mensaje
news:%
hola, Ernesto !

He probado la formula que me dabas :
=si(y($b77="a";esnumero(coincidir($g77;{1\2\3\4\5\6};0)));$h$3/$g77)
tal como esta aquí, '[OJO, que mi sistema usa barra invertida para
separar filas en matrices constantes -?-]'
y no me funciona, no me da ningun valor, ni error.
Como si trabajara sobre valores 0 (cero), cuando '$G77, tiene valores del
1 al 6, y $H$3 también tiene un valor...



'curioso' ???

si no se cumplen ambas condiciones:
1) que $B77 contenga la letra "a"
2) que $G77 contenga numeros enteros de 1 a 6
-> la formula me devuelve: -> FALSO

si se cumplen, la formula divide el valor en $H$3 por el entero en $G77 (1
a 6 solamente)

comentas [si encuentras] algun detalle mas... 'sgnificativo' ?
saludos,
hector.

Respuesta Responder a este mensaje
#8 Héctor Miguel
23/05/2007 - 03:53 | Informe spam
hola, Ernesto !

1) si trato de armar un modelo que coincida [+/- exactamente] con los datos que expones en tu consulta...
[seguramente] a mi se me quedarian detalles de la 'realidad' que podria omitir por desconocimiento :-((

2) [probablemente] sin un panel depende de otro, y dado que en tus formulaciones 'originales' incluyes cadenas en longitud cero
[p.e. en el panel 2do] del tipo: =SI(BC524úLSO;"";SI(BC524=$H$3;"";...
podria estar quedando alguna celda [semi]vacia que impida una operacion 'aritmetica' en formulas dependientes -?-

3) si no te 'incomoda' [o es 'secreto de estado'], podrias enviarme una copia 'operativa' de tu modelo ?
-> solo quita de la direccion de respuesta que aparece el 'NO...SPAM...PLS' [y en .zip 'plis'] :D

saludos,
hector.

p.d. y si me das un poquitin de 'tiempo' :))
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida