Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
jorge_redondo
Contributor III
Contributor III

Ayuda con gráfico de tabla y valores fijos

Hola!

Estoy elaborando una gráfico de tabla que muestra la rentabilidad de unos centros de venta. Este sería un esbozo:

QV.jpg

Todos esos valores, ventas, coste de mercancía, stock... los obtiene de un fichero de transacciones donde se almacenan todas las operaciones de las tiendas ya sean ventas, traspasos internos, devoluciones, etc..

El problema lo tengo para asociar los gastos relativos a cada tienda. Esta cantidad es un valor fijo previamente calculado y ajeno al .qvw y que aún no sé muy bien dónde cargarlo, supongo que con INLINE., pero la tabla debería mostrarlo según las selecciones que se efectúen, bien por año, trimestre, mes... etc.

En definitiva, dispondría de una cifra de gasto fijo DIARIO por tienda y necesitaría ubicarlo en dicha tabla, tendría que hacerlo con una especie de calendario o algo parecido?

Gracias por vuestra ayuda!

1 Solution

Accepted Solutions
soniacoprosa
Creator
Creator

Hola Jorge,

Para traerte los datos de una Excel sólo tienes que hacer lo siguiente:

GastoMensual:

LOAD

Date(MesAño_operacion)as Fecha,

Right(Date(MesAño_operacion), 4) as Año,

Mid(Date(MesAño_operacion), 4, 2) as Mes,

Tienda as Cod_Tienda,

GastoMensual

FROM

C:\Users\sonia\Desktop\Test\Gastos_mes.xlsx

(ooxml, embedded labels, table is Hoja1);

Left Join(Ventas)

LOAD

Año,

Mes,

Cod-Tienda,

GastoMensual

Resident GastoMensual;

Drop Table GastoMensual;

Cambiando la ruta por otra en la que tu tengas la hoja Excel.

Con el Left Join, lo que consigues es añadir a tu tabla “Ventas”, que ya tienes cargada, los campos del Excel.

Como quieres que estén ligados a la selección he creado los campos “Año” y “Mes”.

Un saludo,

View solution in original post

13 Replies
soniacoprosa
Creator
Creator

Hola Jorge,

Podrías ponerlo en un Excel (columnas= Tienda y Cantidad) y después de traerte los datos a una tabla, mediante un Left Join añadirías ese campo "Cantidad" a la tabla que te interese.

Un saludo,

jolivares
Specialist
Specialist

Lo mejor seria hacer una tabla en excel y cargarlo desde ahi.

adriansalas
Contributor III
Contributor III

Carga la tabla con los campos Tienda y Gasto_Diario y en las tablas le aplicas la función:

Gasto_Total:

=Gasto_Diario*(Count({$}Fecha))

*El gasto diario lo multiplicas por los días que están seleccionados.  La función te calcula el número de días seleccionados, sin embargo por ejemplo: si seleccionaras la semana del 16 marzo al 22 de marzo y el día 21 no tienes la fecha dentro de tu calendario por ser día inhabil, pero aun así la Tienda tiene un Gasto, éste gasto no se vería reflejado, en este caso deberás generar un calendario maestro. Espero darme a entender con este ejemplo, así como también te pueda resultar útil.

Saludos

jorge_redondo
Contributor III
Contributor III
Author

Gracias Adrian!

He incluido en el script la tabla en cuestión:

LOAD * INLINE [Cod_Tienda, Gasto_diario

1001,664

1002,122

1003,234

1004,212

1005,217

1006,359

2001,0

2002,141

3000,373

4000,201

];

Ciertamente los tiros van por ahí. Sin embargo no consigo el resultado deseado.

He tenido que añadir la cláusula DISTINCT ya que me daba cifras desorbitadas.

=(Count( DISTINCT {$}Dia_operacion))*Gasto_diario

Pero ahora, lo único que consigo es que, como mucho me figure el gasto mensual de cada tienda. Aunque no tenga seleccionado nada más, obtengo:

qv.jpg

En esta situación, yo esperaba que me diera unos gastos, p.ej., en el caso de la tienda 1001, 664€ * 365d- * 5 años (y pico), pero sólo me da el acumulado mensual, y aunque seleccione, años, meses, etc.. las celdas de Gastos permanecen invariables.

Como orientación, las expresiones que utilizo en el resto de columnas son:

sum({$ <[E_S]={'V'},> } Importe/1.21)  // para las Ventas

sum({$ <[E_S]={'V'} > }Cantidad*Coste_Medio) // para el Coste

Column(2) - Column(1) // Bº Bruto

sum({$ <Cod_Tienda= > }Existencias*Precio_Medio) // para el Stock

Cuál es el fallo??

adriansalas
Contributor III
Contributor III

Hola, lo más probable es que el campo "Dia_Operación" contenga el numero del día del mes, o sea del día 1 al 31 de cada mes, y ha hacer el distinct, cuenta 31 valores distintos, por eso multiplica el costo diario por 31, siempre... no se si tengas algun campo de Fecha donde venga dia, mes y año, "DD/MM/YYYY" para que distinga realmente los días que estás consultando. si pudieras adjuntar el qvw, te podría ayudar mucho mejor.

Saludos

adriansalas
Contributor III
Contributor III

si tienes un set de datos desde el 01/01/2009 hasta la fecha serían 1911 días transcurridos multiplicados por 664 (para el caso de la tienda 1001) serían $1,268,904.00 de gasto, que es la cifra mas o menos a la que queremos llegar... correcto? así que si mas o menos le diste a esta cifra, no estaba tan descabellado..

jorge_redondo
Contributor III
Contributor III
Author

Gracias Adrian! ese era el problema, estaba liado con los campos y utilizaba el campo del cuadro de lista en lugar del de el fichero de transacciones. De cualquier modo, tendré que hacer un calendario porque sólo recuenta los días en que haya habido operaciones, que no son todos los del mes y, sin embargo, los gastos, son fijos.

adriansalas
Contributor III
Contributor III

te recomiendo este excelente ejemplo para crear un calendario maestro

Calendario Maestro para obtener todos los días transcurridos

sebastiandperei
Specialist
Specialist

Jorge, no es necesario un calendario.

Para contar los días "disponibles" de acuerdo a la selección, podés usar:

Max(Campo_fecha)-Min(Campo_fecha)

en lugar de (Count( DISTINCT {$}Campo_fecha)

Recordando que Campo_fecha no es el día del mes, sino la fecha entera.