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: 
raferdom
Contributor III
Contributor III

Duda formulación que ignora algunas selecciones de campos

Buenas Tardes,

Recurro a ustedes con la siguiente duda.

Tengo un caso donde hay clientes que pertenecen a un canal, una región y una subregión además de otros campos que son formas en las que se puede agrupar información. Se necesita realizar el cálculo de un gasto por kilo según la combinación canal-región-subregión.

Para sacar dicho calculo lo primero que se necesita saber es la cantidad de kilos vendidos en la combinación canal-region-subregion. En la siguiente imagen se ve el valor adecuado para la combinación mencionada:

1.jpg

Ahora seleccionamos el canal Tradicional y la subregion Antioquia-choco

2.jpg

Luego procedemos a visualizar la información por cliente (los clientes que se muestran pertenecen al mismo Canal, Region y Subregion), acá se necesita que el valor que aparezca en Venta Kg sea el mismo para todos los registros (551,225.38) ya que el calculo del gasto debe tener en cuenta los kilos vendidos en total para dicha combinación.

3.jpg

La fórmula que se esta aplicando para Ventas Kg es la siguiente:

sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO'}, Año=P(), Mes=P(), Periodo=P(), Canal=P(), Region=P(), SubRegion=P(),#id_TerceroSucursal=P()>} [Ventas Kg])

Donde lo que se pretende hacer es no tener en cuenta las selecciones de campos a excepción de: #id_TipoMovimiento que debe ser igual a ‘V’ para que muestre solo las ventas, [Linea de Negocio] para que solo muestre lo referente a ventas de ‘POLLO’ y que tenga en cuenta lo que se seleccione en los campos Año, Mes, Periodo, Canal, Region, SubRegion.

Me gustaría que me dieran una mano para ver en que puedo estar fallando en la formulación o como replanteo este analisis.

Agradezco de antemano la atención y colaboración que me puedan prestar.

Saludos,

Raúl

1 Solution

Accepted Solutions
rubenmarin

Se me había olvidado lo del grupo cíclico, se puede poner dinámico usando GetCurrentField():

Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO PROCESADO'}

  , Año=P(Año), Mes=P(Mes), Periodo=P(Periodo)

  , Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>}

Aggr(Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO PROCESADO'}

  , Año=P(Año), Mes=P(Mes), Periodo=P(Periodo)

  , Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>}

TOTAL <Canal,Region,SubRegion> [Ventas Kg]), [$(=GetCurrentField(GC_Clientes))], Canal,Region,SubRegion))

View solution in original post

12 Replies
rubenmarin

Hola Raul, podrías probar con:

sum( {1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO'}, Año=P(Año), Mes=P(Mes), Periodo=P(Periodo), Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>} [Ventas Kg])

raferdom
Contributor III
Contributor III
Author

Hola Ruben, Gracias por sacar tiempo para dar respuesta.

Te cuento que sigue arrojando el mismo resultado al momento de cambiar a cliente, no es capaz de sacar los 551,225.38 referentes a la combinación canal-region-subregion.

Saludos,

hector_munoz
Specialist
Specialist

Hola Raúl,

Prueba:

Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO'}, Año=P(Año), Mes=P(Mes), Periodo=P(Periodo), Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>} TOTAL <Canal,Region,SubRegion> [Ventas Kg])

Saludos,
H

luiskeyrus
Partner - Contributor III
Partner - Contributor III

ésta va a ser 😃

raferdom
Contributor III
Contributor III
Author

Buenos días,

Primero que todo te agradezco la atención prestada y tu colaboración.

Te cuento que aplique la formula que sugieres y mientras tenga los campos visibles el resultado es correcto, pero al momento que en una tabla pivote contraigo la dimensión y dejo solo el cliente  con el canal, me entrega la suma del canal y no me respeta la condición de Canal-Region-SubRegion.

Mira las imágenes:

Cuando esta por Canal - Region - SubRegion

1.jpg

Cuando se agrega el campo Cliente, como se puede ver en la imagen los clientes que pertenecen al canal Tradicional, Region Noroccidente y SubRegion Antioquia-Choco tienen el mismo valor de 551,225.38 y así es como debería comportarse siempre.

2.jpg

Al momento de contraer las dimensiones y dejar solo el canal, el sistema totaliza todo el canal Tradicional y no respeta lo que el cliente tiene internamente como Region -SubRegion. Por ejemplo los 2 primeros clientes deberian tener el valor 551,225.38 y el tercer cliente el valor de 617,741.66 (como se muestra en la imagen 2).

3.jpg

Agradezco nuevamente la atención y quedo atento a cualquier comentario.

Saludos,

Raúl

rubenmarin

Hola Raul, puedes probar añadiendo la primera dimensión al TOTAL. Al ser un grupo cíclico puedes ponerla usando $(), entre corchetes por si el nombre del campo contiene espacios:

Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO'}, Año=P(Año), Mes=P(Mes), Periodo=P(Periodo), Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>} TOTAL <[$(=GetCurrentField(NombreGrupo))], Canal,Region,SubRegion> [Ventas Kg])


Edit: Bueno, puede que así no te coja el total bien, si subes un ejemplo podría probarlo.

raferdom
Contributor III
Contributor III
Author

Hola, ejecute la modificación que me indicaste pero los valores varían, se van al nivel de cliente. La primer columna de formulas es con la modificación que me indicaste y la ultima es con la anterior.

5.jpg

Voy a tratar de subir un ejemplo de los datos.

Saludos,

raferdom
Contributor III
Contributor III
Author

Adjunto ejemplo con el cuadro que les muestro en las imágenes. Para  ver si me pueden colaborar.

Saludos,

rubenmarin

No es elegante pero así parece que funciona:

Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO PROCESADO'}

  , Año=P(Año), Mes=P(Mes), Periodo=P(Periodo)

  , Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>}

Aggr(Sum({1<#id_TipoMovimiento = {'V'}, [Linea de Negocio]={'POLLO PROCESADO'}

  , Año=P(Año), Mes=P(Mes), Periodo=P(Periodo)

  , Canal=P(Canal), Region=P(Region), SubRegion=P(SubRegion),#id_TerceroSucursal=P(#id_TerceroSucursal)>}

TOTAL <Canal,Region,SubRegion> [Ventas Kg]), Cliente, Canal,Region,SubRegion))