Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Tengo esta tabla simple (que por política de la empresa debo proteger la identidad de los clientes) donde :
CanalVs: son grupos
Rubros : son subgrupos
Clientes
Prom. Trim. Ant.: son las ventas del trimestre anterior promediadas
Base Trim. Ant.: sirve para comparación, se obtiene del [Prom. Trim. Ant.]/[Clientes que Compraron] * 0.5
$ Actual: ventas actuales
Indicador led: es verde cuando Base Trim. Ant. es menor (<) que $ Actual, siempre y cuando ninguno de ellos sea 0 (cero). Caso contrario será rojo.
Cumplen: debe contar los verdes
% Objetivo: [Cumplen] / [70% Client. del Canal], es decir, la cantidad de clientes que tienen indicador verde, dividido el 70% de la cantidad total de los clientes del CanalVs.
Mi problema es que no puedo contar correctamente los indicadores verdes, mas allá que si utilizo Propiedades de gráfico>Expresiones>Modo Total>Suma me muestra el resultado correcto, de nada me sirve porque después necesito una expresión para obtener [% Objetivo] .
Estoy utilizando sin éxito para [Cumplen]:
Sum (Aggr(
If( Sum(Ventas) <
((Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-3)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-2)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-1)}>}Ventas))/ 3)/
count(TOTAL <CanalVs> {$<Mes={[>=$(=only(Mes)-3)]}>}DISTINCT Clientes) * 0.5
, 0,1), Clientes))
Hola.
El aggr en una tabla simple lo debes utilizar de acuerdo a las dimensiones que tiene tu tabla y siguiendo su mismo orden.
Asumiedo que tu promedio ya esta calculado.
Expresiones:
Promedio:
Sum(Promedio)
Venta:
Sum(Venta)
Indicador:
sum(Aggr(if(sum(Venta)<sum(Promedio),0,1),Grupo,Producto,Cliente)
Agg:
Aggr(if(sum(Venta)<sum(Promedio),0,1),Cliente)
Agg2:
Aggr(if(sum(Venta)<sum(Promedio),sum(Venta),sum(Promedio)),Cliente)
- La expresion "Agg" tiene la misma logica que estas aplicando a tu expresion para contar la cantidad de tu indicador led. Si te das cuenta el calculo es errado, eso es por que los "Aggr" crea un tabla logica agrupada y solo estas agrupando por cliente.
- La expresion "Agg2" en vez de 0 y 1, se esta colocando sum(ventas) y sum(promedio), para que veas la cantidad que agrupa segun cliente.
La suma del promedio agrupado por cliente A es 1400 y venta es 1200, segun la expresion (ventas<promedio) si es verdadero me va dar 1200 y si es falso 1400, este resultado se va poner en la ultima linea del campo cliente A.
La suma del promedio agrupado por cliente B es 400y venta es 600, segun la expresion (ventas<promedio) si es verdadero me va dar 600 y si es falso 400, este resultado se va poner en la ultima linea del campo cliente B.
-La expresion "Indicador" va agrupar segun la secuencia que tienes en tu tabla simple obteniendo los resultados segun la logica y esto permitira totalizarlo.
Nota:
Trata de agregarle dimensiones a tu agrupacion que indicas segun tu expresion.
Sum (Aggr(
If( Sum(Ventas) <
((Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-3)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-2)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-1)}>}Ventas))/ 3)/
count(TOTAL <CanalVs> {$<Mes={[>=$(=only(Mes)-3)]}>}DISTINCT Clientes) * 0.5
, 0,1), CanalVs,Cod,Rubros,Clientes)).
Espero te sirva.
Atte.
Luis.
Hola.
El aggr en una tabla simple lo debes utilizar de acuerdo a las dimensiones que tiene tu tabla y siguiendo su mismo orden.
Asumiedo que tu promedio ya esta calculado.
Expresiones:
Promedio:
Sum(Promedio)
Venta:
Sum(Venta)
Indicador:
sum(Aggr(if(sum(Venta)<sum(Promedio),0,1),Grupo,Producto,Cliente)
Agg:
Aggr(if(sum(Venta)<sum(Promedio),0,1),Cliente)
Agg2:
Aggr(if(sum(Venta)<sum(Promedio),sum(Venta),sum(Promedio)),Cliente)
- La expresion "Agg" tiene la misma logica que estas aplicando a tu expresion para contar la cantidad de tu indicador led. Si te das cuenta el calculo es errado, eso es por que los "Aggr" crea un tabla logica agrupada y solo estas agrupando por cliente.
- La expresion "Agg2" en vez de 0 y 1, se esta colocando sum(ventas) y sum(promedio), para que veas la cantidad que agrupa segun cliente.
La suma del promedio agrupado por cliente A es 1400 y venta es 1200, segun la expresion (ventas<promedio) si es verdadero me va dar 1200 y si es falso 1400, este resultado se va poner en la ultima linea del campo cliente A.
La suma del promedio agrupado por cliente B es 400y venta es 600, segun la expresion (ventas<promedio) si es verdadero me va dar 600 y si es falso 400, este resultado se va poner en la ultima linea del campo cliente B.
-La expresion "Indicador" va agrupar segun la secuencia que tienes en tu tabla simple obteniendo los resultados segun la logica y esto permitira totalizarlo.
Nota:
Trata de agregarle dimensiones a tu agrupacion que indicas segun tu expresion.
Sum (Aggr(
If( Sum(Ventas) <
((Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-3)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-2)}>}Ventas) +
Sum(Total <CanalVs> {$<Mes={$(=Only(Mes)-1)}>}Ventas))/ 3)/
count(TOTAL <CanalVs> {$<Mes={[>=$(=only(Mes)-3)]}>}DISTINCT Clientes) * 0.5
, 0,1), CanalVs,Cod,Rubros,Clientes)).
Espero te sirva.
Atte.
Luis.
Luis, un verdadero amigo. Muchas gracias por tu tiempo y paciencia para explicarle a un principiante.
Muy bien explicado! Muchas gracias de nuevo. Saludos