Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Hola, yo tengo un campo fecha y quiero hacer la suma de las ventas de los últimos 7 días, pero sin tener en cuenta la selección que se haga. No puedo usar la función today() porque los datos no siempre están actualizados a tiempo real,
por ejemplo si la máxima fecha es 2015-03-28, me tendría que sumar hasta el día 22
La siguiente expresión, se supone que da lo que busco pero sobre la selección que se hace
sum({<fecha={">$(=max(date(fecha-7)) <= $(=max(date(fecha)))"}>} cantidad)
Pense en quitarle los $, pero no funciona. ¿Alguna sugerencia?
Un saludo
Hola,
1-. En el campo Fecha tendrías que poner por ejemplo:
LET vDateMax = Floor(Today()-1)
Esto te va a devolver un valor numérico por eso luego uso el Date.
2-. Si si perdona Recuperacion es Cantidad en tu caso.
let vDateMax = Floor(today() - 1);
A ver porque me estoy volviendo un poco loco, si yo pongo la siguiente expresión
Sum({1<Fecha={">=$(=Date($(vDateMax)-7))"}, ID= $::ID >} Cantidad)
me suma las cantidades en los que haya datos para ese ID, todas, no los últimos 7 días. Pero resulta que el nombre de mi campo es fecha, en minúscula y si yo pongo fecha en minúscula, el resultdo que me da es 0.
Así que yo no se ya que esta haciendo esto.... :S
Creo que los 2 nos estamos volviendo un poco locos:
Vamos a ver, En la pregunta inicial no me hablabas del ID así que iremos paso a paso:
1-. La expresion: Sum({1<Fecha={">=$(=Date($(vDateMax)-7))"} >} Cantidad) te funciona? te da lo que querías?
2-. De ser ok pasamos al punto 3 si no te funciona no se que puede ser. Revisa la variable.
3-. Si lo que quieres es que sume con el ID ya lo haces bien:
Sum({1<Fecha={">=$(=Date($(vDateMax)-7))"}, ID= $::ID >} Cantidad)
4-. Si te da problemas con la fecha no lo entiendo porque a mi esta expresion me funciona perfectamente. Si te da 0 es que tienes algun campo fecha que no lo está tratando como tal y para ello tendrás que usar el Date para pasarlo a texto
5-. Si no te funciona nada de lo que te he dicho a lo mejor alguien mas quiere participar o si quieres subes el proyecto y le doy un vistazo.
Saludos,
y otra posibilidad es:
Sum({$<Fecha={">=$(=Date($(vDateMax)-7))"},Año=,Mes=,Día=,Semana=,PeriodoID=,Trimestre=,TrimestreID=,Periodo=>} Cantidad)
En esta no tendrá en cuenta las selecciones que hagas de Año, Mes, Dia, Trimestre, TrimestreID, Periodo pero si que tendría en cuenta las de ID o Cliente o lo que tenga tu proyecto.
Jordi, te tengo buenas noticias, ya casi funciona jajaja Te comento lo que pasaba, tenia que ver con el formato de la fecha, mi formato de fecha cuando creo el calendario maestro es el siguiente DD/MM/YYYY
La expresión que adapte de tu mensaje anterior es la siguiente:
sum({$<fecha = {">=$(=Date($(vDateMax)-7,'DD/MM/YYYY'))"},mes=,dia=,año=>} Cantidad)
La variable la creo a partir del dia anterior al dia today
let vDateMax = Floor(today() - 1);
La cuestión es que, los datos en ocasiones llevan retraso de algunos días, entonces me preguntaba como podia inicializar la variable vDateMax, a partir de la máxima fecha que yo tenga en mis datos, que no tiene porque ser la máxima fecha en el calendario maestro. Seria inicializarla combinando max(fecha) donde cantidad sea distinto de 0
Un saludo
Buenas Jonay,
tienes la opción de crear un disparador que se ejecute al abrir el documento:
Configuraciones --> Propiedades de documento --> Disparadores
En la primera sección Procedimientos de Evento de Documento --> Al abrir --> Añadir acción:
Tipo de acción --> Externo --> Establecer variable
y defines la variable vDateMax con el valor:
=Max({1<Cantidad -= {0}>}Fecha)
Cada vez que abras el documento asignará el valor a la variable en función de los datos cargados.
Si lo prefieres puedes crear un disparador original para que se ejecute cada vez que se haga una recarga (en caso que lo recargues manualmente).
Espero que te resulte útil.
Un saludo
Me alegro que ya casi lo tengas,
Como dice Alex es una buena manera.
Pruébalo y cierra el tema.
Saludos,
Buenas Alex,
Me parece una buena opción y que en el caso de funcionar solventa mi problema. La cuestión es que me esta dando un error de sintaxis. Al abrir la ventana que comentas, pongo los datos
variable --> vDateMax
valor --> = Max({1<Cantidad = -{0}>} fecha) me dice que la expresión esta ok, pero me resalta en rojo desde la última }, por lo tanto no es correcta. Puse lo del -{0}, que se supone que me excluye el que tenga valor 0, lo de -={0} tampoco me funciona, me da igualmente error de sintaxis
Un saludo
Jonay,
la expresión es correcta, yo he testeado la expresión antes de responderte y funciona perfectamente. Te adjunto ficheros muestra.
Revisa:
- que hayas creado previamente la variable en el panel de variables y que el nombre coincide
- que los campos que has puesto coinciden exactamente con los que tienes en la estructura de datos
- que el campo Cantidad es numérico
Te tendría que funcionar perfectamente.
Un saludo
no dijiste que Fecha lo tenias en minusculas? que el tema no vaya por allí....