Si anidado

10/03/2006 - 22:32 por Mayor Rapaz | Informe spam
Me he hecho un lio con la formula SI anidada para obtener lo siguiente.

Ingresando en una celda el monto tengo que calcular los siguiewntes
descuento:

La suma
hasta $ 1000 no descuenta nada
de 1001 a 2000 el 10 %
2001 a 3000 el 15 %
3001 a 4000 el 20 %
4001 a 5000 el 25 %
5001 a 6000 el 30 %

Los descuentos son por franjas o sea que si la suma es de 4000 por ejemplo
se aplica el 10% de 1001 a 2000, de 2001 a 3000 el 15 %,de 3001 a 4000 el
20%.
El descuento es la suma de las franjas.
Podría hacerlo de muchas maneras pero lo necesito en una fórmula sola.
Gracias desde ya

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
11/03/2006 - 05:01 | Informe spam
hola, 'anonimo' !

no queda muy claro si los porcientos los aplicas a las bases 'directas'... o a la diferencia entre una base y la anterior -?-
-> [creo que] seria bueno si 'expandes/expones/...' algunos 'resultados esperados' con [al menos] dos o mas ejemplos ;)
indicando cuales serian los valores 'sumandos' -> por franjas [p.e.] para los valores de 4000 Y 4001

[en via de mientras]... prueba con las siguientes formulas [suponiendo que el valor esta en 'A1']...
-> toma nota que son en una sola linea y que mi separador de argumentos es la coma ',' NO punto y coma ';' :D

op1: sobre la base 'directa'...
=sumaproducto((a1/1000>{2\3\4\5\6})*(1000*{2\3\4\5\6})*{10\15\20\25\20}%)+a1*indice({30\25\20\15\10}%,coincidir(a1/1000,{6\5\4\3\2},-1))

op2: sobre la diferencia entre una base y la anterior...
=sumaproducto(1000*(a1>({2\3\4\5\6}*1000))*{10\15\20\25\20}%)+residuo(a1,1000)*indice({30\25\20\15\10}%,coincidir(a1/1000,{6\5\4\3\2},-1))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ consulta original ___
... lio con la formula SI anidada para... Ingresando en una celda el monto... calcular los siguientes descuento:
La suma hasta $ 1000 no descuenta nada
1001 a 2000 el 10 %
2001 a 3000 el 15 %
3001 a 4000 el 20 %
4001 a 5000 el 25 %
5001 a 6000 el 30 %
Los descuentos son por franjas o sea que si la suma es de 4000 por ejemplo se aplica el 10% de 1001 a 2000, de 2001 a 3000 el 15 %,de 3001 a 4000 el 20%.
El descuento es la suma de las franjas.
Podria hacerlo de muchas maneras pero lo necesito en una formula sola.
Respuesta Responder a este mensaje
#2 Mayor Rapaz
15/03/2006 - 23:51 | Informe spam
No estan funcionando ninguna de las dos formulas que me diste

Para el ejemplo dado :

La suma hasta $ 1000 no descuenta nada

1001 a 2000 el 10 %

2001 a 3000 el 15 %

3001 a 4000 el 20 %

4001 a 5000 el 25 %

5001 a 6000 el 30 %

Si la suma a ingresar es de 6000 deberia darse los siguientes descuentos

100+150+200+250+300 o el residuo superior a 6000 (es decir que si por
ejemplo la cifra a introducir fuese 7140

El ejemplo queda así

100+150+200+250+342

Espero tus comentarios




"Héctor Miguel" escribió en el mensaje
news:
hola, 'anonimo' !

no queda muy claro si los porcientos los aplicas a las bases 'directas'...
o a la diferencia entre una base y la anterior -?-
-> [creo que] seria bueno si 'expandes/expones/...' algunos 'resultados
esperados' con [al menos] dos o mas ejemplos ;)
indicando cuales serian los valores 'sumandos' -> por franjas [p.e.]
para los valores de 4000 Y 4001

[en via de mientras]... prueba con las siguientes formulas [suponiendo que
el valor esta en 'A1']...
-> toma nota que son en una sola linea y que mi separador de argumentos es
la coma ',' NO punto y coma ';' :D

op1: sobre la base 'directa'...
=sumaproducto((a1/1000>{2\3\4\5\6})*(1000*{2\3\4\5\6})*{10\15\20\25\20}%)+a1*indice({30\25\20\15\10}%,coincidir(a1/1000,{6\5\4\3\2},-1))

op2: sobre la diferencia entre una base y la anterior...
=sumaproducto(1000*(a1>({2\3\4\5\6}*1000))*{10\15\20\25\20}%)+residuo(a1,1000)*indice({30\25\20\15\10}%,coincidir(a1/1000,{6\5\4\3\2},-1))

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

__ consulta original ___
... lio con la formula SI anidada para... Ingresando en una celda el
monto... calcular los siguientes descuento:
La suma hasta $ 1000 no descuenta nada
1001 a 2000 el 10 %
2001 a 3000 el 15 %
3001 a 4000 el 20 %
4001 a 5000 el 25 %
5001 a 6000 el 30 %
Los descuentos son por franjas o sea que si la suma es de 4000 por
ejemplo se aplica el 10% de 1001 a 2000, de 2001 a 3000 el 15 %,de 3001 a
4000 el 20%.
El descuento es la suma de las franjas.
Podria hacerlo de muchas maneras pero lo necesito en una formula sola.




Respuesta Responder a este mensaje
#3 Héctor Miguel
18/03/2006 - 07:54 | Informe spam
hola ?

No estan funcionando ninguna de las dos formulas que me diste
Para el ejemplo dado:
La suma hasta $ 1000 no descuenta nada
1001 a 2000 el 10 %
2001 a 3000 el 15 %
3001 a 4000 el 20 %
4001 a 5000 el 25 %
5001 a 6000 el 30 %
Si la suma a ingresar es de 6000 deberia darse los siguientes descuentos 100+150+200+250+300
o el residuo superior a 6000 (es decir que si por ejemplo la cifra a introducir fuese 7140)
El ejemplo queda asi: 100+150+200+250+342



1) [supongo que]... con esta 'nueva' informacion... pudiera cambiarse el ultimo parametro de los porcentajes...
de -> 5001 a 6000 el 30 %
a -> 5001 [en adelante] el 30 % -?-

2) de ser 'correcto' lo anterior... para el 'nuevo' ejemplo de 7140 [y segun parece] los porcentajes 'aplicables' debieran ser...
100+150+200+250+642
-> [es decir]...
100 [de 1001 a 2000]
+ 150 [de 2001 a 3000]
+ 200 [de 3001 a 4000]
+ 250 [de 4001 a 5000]
+ 300 [de 5001 a 6000]
+ 300 [de 6001 a 7000] <- mismo porcentaje 'maximo' por 'otros' 1000 -?-
+ 42 [MAYOR a 6000] <- mismo porcentaje 'maximo' por la 'fraccion' -?-

3) de NO ser 'correcta' la 'apreciacion' anterior... el 'maximo' descuento posible debiera ser el de 6000 [es decir]...
-> 100+150+200+250+300 -> sin importar cantidades 'superiores' a 6000 -???-

4) prueba modificando [o 'ampliando'] la formula de la propuesta 2 a la siguiente [toma nota que es en una sola linea]:
=sumaproducto(1000*(a1>=({2\3\4\5\6}*1000))*{10\15\20\25\30}%)
+1000*entero(a1/1000-6)*30%
+residuo(a1,1000)*indice({30\25\20\15\10}%,coincidir(a1/1000,{100\5\4\3\2},-1))

-> [solo] considera que...
a) para la 'matriz ascendente'... -> (a1>=({2\3\4\5\6}*1000)
no habria 'problemas'... ya que toda cantidad 'superior' al maximo [6*1000] quedaria con el 'maximo' descuento de 30%
b) para 'encontrar' el residuo [superior a 6000], EN la 'matriz descendente' -> coincidir(a1/1000,{10\5\4\3\2},-1)
deberas encontrar el valor 'maximo' que pudiera ser 'requerido' en los importes 'esperados'
-> el primer elemento de la matriz, que estoy 'estimando' en 10 [*1000] <= OJO

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.
Respuesta Responder a este mensaje
#4 Héctor Miguel
18/03/2006 - 08:39 | Informe spam
hola ? [fe de erratas] :-(

la nueva propuesta tiene un 'fallo' en la segunda linea de la formula :-( [perdon... se me chispotio hacer mas pruebas] :D

-> cambia la segunda linea/parte de la formula...
de: -> +1000*entero(a1/1000-6)*30%
a: -> +(a1>6000)*1000*entero(a1/1000-6)*30%

o... [por si las dudas]... la nueva formulacion completa seria +/- como sigue [en una sola linea]...
=sumaproducto(1000*(a1>=({2\3\4\5\6}*1000))*{10\15\20\25\30}%)
+(a1>6000)*1000*entero(a1/1000-6)*30%
+residuo(a1,1000)*indice({30\25\20\15\10}%,coincidir(a1/1000,{100\5\4\3\2},-1))

saludos,
hector.
Respuesta Responder a este mensaje
#5 KL
18/03/2006 - 13:58 | Informe spam
Hola chicos,

Otra alternativa podria ser la siguiente:

Paso 1: Creamos una tabla como la siguiente y le ponemos un nombre, digamos Tbl

0 0 0%
1000 0 10%
2000 100 15%
3000 250 20%
4000 550 25%
5000 1150 30%

Paso 2: Introducimos la siguiente formula:

=(A1-BUSCARV(A1;Tbl;1))*BUSCARV(A1;Tbl;3)+BUSCARV(A1;Tbl;2)

Creo que las ventajas serian:
1) mas facil de modificar
2) menos operaciones (mayor rapidez)
3) mas facil de entender
4) mas corta la formula

Claro que tambien se podria hacer lo siguiente sin necesidad de crear la tabla fisicamente:

=(A1-BUSCARV(A1;{0\0\0;1000\0\0,1;2000\100\0,15;3000\250\0,2;4000\550\0,25;5000\1150\0,3};1))*BUSCARV(A1;{0\0\0;1000\0\0,1;2000\100\0,15;3000\250\0,2;4000\550\0,25;5000\1150\0,3};3)+BUSCARV(A1;{0\0\0;1000\0\0,1;2000\100\0,15;3000\250\0,2;4000\550\0,25;5000\1150\0,3};2)

Saludos,
KL



"Héctor Miguel" wrote in message news:uH%
hola ? [fe de erratas] :-(

la nueva propuesta tiene un 'fallo' en la segunda linea de la formula :-( [perdon... se me chispotio hacer mas pruebas] :D

-> cambia la segunda linea/parte de la formula...
de: -> +1000*entero(a1/1000-6)*30%
a: -> +(a1>6000)*1000*entero(a1/1000-6)*30%

o... [por si las dudas]... la nueva formulacion completa seria +/- como sigue [en una sola linea]...
=sumaproducto(1000*(a1>=({2\3\4\5\6}*1000))*{10\15\20\25\30}%)
+(a1>6000)*1000*entero(a1/1000-6)*30%
+residuo(a1,1000)*indice({30\25\20\15\10}%,coincidir(a1/1000,{100\5\4\3\2},-1))

saludos,
hector.


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida