Jump to content
maclow

calcular porcentaje según ingreso acumulado Filemaker

Recommended Posts

¿Cómo podría calcular con Filemaker 9 la comisión de un comercial en cada venta en función del total acumulado a lo largo del mes por él mismo.

Por ejemplo:

La comisión de cada venta es del 30% hasta que el total acumulado sea 6000€.

De 6000 hasta 12000€ será del 35%

Y a partir de 12000€ el 40%

Share this post


Link to post
Share on other sites

Con la función case, mira en la ayuda o en Google, encontrarás multitud de ejemplos, funciona igual que if pero permite múltiples sentencias.

 

Si tienes alguna duda más vuelve a preguntar.

Share this post


Link to post
Share on other sites

Muchas gracias Menom,

 

así lo estaba haciendo, pero fallaba en el orden de lectura de los datos dentro de la función.

Share this post


Link to post
Share on other sites

Y lo has solucionado o sigue fallando?, si te falla envíame el fichero y lo miro directamente sobre lo que tienes hecho.

Share this post


Link to post
Share on other sites

Menom, muchas gracias por tu ofrecimiento.

 

Me funciona perfectamente, el cálculo con case.

 

Ahora la duda la tengo en cómo hacer que calcule los ingresos acumulados, cada mes desde cero.

 

En cuanto a lo de enviarte el archivo, encantado.

Edited by maclow

Share this post


Link to post
Share on other sites

Siguiendo con el porcentaje a aplicar, veo un pequeño error de cálculo:

 

Con la función case me calcula para el siguiente apunte el porcentaje a aplicar según los ingresos mensuales (30% si es menor que 6000, 35% entre 6001 y 12000, y 40% mayor de 12000)

Pero vamos a suponer que en el último apunte lleva unos ingresos acumulados de 5500 y hace una venta de 2000.

No aplicará el 35% hasta el siguiente apunte donde habrá acumulado 7500.

Luego habrá 1500 € (7500-6000) que le aplicará el 30% y le corresponde el 35%

 

Espero haberme explicado bien.

Share this post


Link to post
Share on other sites

Hola Maclow,

 

Imaginando más o menos como tienes hecha la función, dices que te tiene en cuenta los importes a partir del siguiente apunte, pero creo que debería tener un campo acumulado por fechas que te sumara en todo momento el acumulado de un rango de fechas, ya sea por mes, quincena o como quieras personalizarlo.

 

Un saludo,

Menom

Share this post


Link to post
Share on other sites

Hola a todos, después de nuestras merecidas vacaciones, seguimos por donde nos quedamos.

 

Vamos a ver, estoy intentando hacer el siguiente cálculo:

Si los ingresos acumulados son menores o iguales a 6000, la comisión será del 30%,

Si los ingresos acumulados son mayores de 6000 y menores o iguales a 12000 la comisión será de 1800 (30% de los primeros 6000) más el 35% del resto

Si los ingresos acumulados son mayores de 12000, la comisión será de 1800 (30% de los primeros 6000) + 2100 (el 35% de los siguientes 6000) + más el 40% del resto

 

función Case:

 

Case ( prueba1 ; resultado1 ; prueba2 ; resultado2 ; resultado por defecto )

 

prueba1: Si la producción acumulada (acumuladoProduccion) es menor o igual que 6000, calcula el 30%

prueba2: Si no cumple prueba1 y es menor o igual que 1200, calcula el 35% y le suma 1800 (30% de los primeros 6000)

resultado por defecto: Si no cumple prueba 1 ni prueba2 y es mayor que 12000, calcula el 40% y le suma 3900 (30% de los primeros 6000 + 35% de los segundos 6000)

 

Case (

acumuladoProduccion ≤ 6000 ; (,3) * acumuladoProduccion ;

acumuladoProduccion ≤ 1200 ; ((,35) * (acumuladoProduccion-6000))+ 1800 ;

((,4) * (acumuladoProducción-12000)) + 3900

)

 

Estoy probando y sólo funciona cuando cumple la primera condición (≤ 6000) pero si por ejemplo le pongo como valor de acumuladoProduccion, 7000

debería dar como resultado el 30% de 6000 (1800) + el 35% de 1000 (350) = 2150, pero me da 1900

 

¿Alguién sabe decirme qué hago mal?

 

Edito:

 

Estoy comprobando que me ignora el 2º supuesto (acumuladoProduccion ≤ 1200 ; ((,35) * (acumuladoProduccion-6000))+ 1800) y me está aplicando el resultado por defecto pero no entiendo qué hago mal.

Edited by maclow

Share this post


Link to post
Share on other sites

Hola,

 

El orden del case tendría que ser inverso, porque ahora se cumplirían todos los casos para un valor inferior a 6000, y aplica el caso por defecto:

En el caso de los 7000 se cumple el segundo y el por defecto, y imprime el último resultado.

 

(,4) * (acumuladoProduccion - 12000) + 3900

0,4 * -5000 + 3900 = 1900

 

Case (

acumuladoProduccion > 12000 ; (,4) * (acumuladoProduccion -12000) + 3900 ;

acumuladoProduccion > 6000 y acumuladoProduccion <= 12000 ; ((,35) * (acumuladoProduccion-6000))+ 1800 ;

acumuladoProduccion <= 6000; ((,3) * (acumuladoProducción))

)

 

No se programar con Filemaker, pero la segunda condición han de ser 2: mayor que 6000 y menor/igual que 12000

 

saludos!

Edited by quim_

Share this post


Link to post
Share on other sites

Muchas gracias Quim_,

tengo entendido que en la función Case cada condición implica que no cumple las anteriores. No obstante lo voy a probar.

Share this post


Link to post
Share on other sites

Case (

acumuladoProduccion ≤ 6000 ; (,3) * acumuladoProduccion ;

acumuladoProduccion ≤ 1200 ; ((,35) * (acumuladoProduccion-6000))+ 1800 ;

((,4) * (acumuladoProducción-12000)) + 3900

)

 

Estoy probando y sólo funciona cuando cumple la primera condición (≤ 6000) pero si por ejemplo le pongo como valor de acumuladoProduccion, 7000

debería dar como resultado el 30% de 6000 (1800) + el 35% de 1000 (350) = 2150, pero me da 1900

 

¿Alguién sabe decirme qué hago mal?

 

Edito:

 

Estoy comprobando que me ignora el 2º supuesto (acumuladoProduccion ≤ 1200 ; ((,35) * (acumuladoProduccion-6000))+ 1800) y me está aplicando el resultado por defecto pero no entiendo qué hago mal.

 

En el segundo caso estás poniendo mil doscientos (1200) en vez de docemil (12000).

 

 

 

Share this post


Link to post
Share on other sites

Muchas gracias Xtampida,

entraba en el foro para poner que ya me funcionaba, cuando he leído tu mensaje.

Ése era el error :blush: aunque no lo había localizado, lo he reescrito todo y se había solucionado pero no sabía qué había puesto mal.

A veces las cosas más tontas nos complican la vida.

Share this post


Link to post
Share on other sites

Es el típico error por el que pasas la vista mil veces y no lo ves. Y encima cuando preguntas en un foro la mayoría de la gente piensa que te has equivocado al escribirlo ahí, no en el compilador, y tampoco lo tiene en cuenta. Yo me he pensado un rato si contestarte o no laugh.gif.

Edited by Xtampida

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.