Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Buenas tardes comunidad necesito calcular un porcentaje
La expresión sería la siguiente pero me da números infinitos.
Sum( If( $(Range_MAX_var) = $(Mora_CV30), $(Range_MAX_var), 0 ))-
Sum({<"=12*Year(Today())+Month(Today())-12*Year([cl.Fecha de Originación])-Month([cl.Fecha de Originación])"={'1'}>} If( $(Range_MAX_var) = $(Mora_CV30), $(Range_MAX_var), 0 ))-
Sum({<"=12*Year(Today())+Month(Today())-12*Year([cl.Fecha de Originación])-Month([cl.Fecha de Originación])"={'2'}>} If( $(Range_MAX_var) = $(Mora_CV30), $(Range_MAX_var), 0 ))
/
Sum ({<[cl.Capital]>} [cl.Capital]) -
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={1}>} [cl.Capital]) -
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={2}>} [cl.Capital])
Gracias de antemano.
Hola @ShirSandoval
Esta respuesta la escribire por parte, poque esta interface ha rechazado la respuesta en varias ocaciones !!! asi que la picare en retazos !!!! LOL
Vamos a compartir con la comunidad la solucion a los probemas y retos que esta solucion contiene, colocare un resumen de las acciones tomadas para resolver lo retos:
T-2 Dinamico:
En los primeros modelos nosotros hard-coded (?) los meses '1' y '2', por lo cual cuando se seleccionaba una fecha del reporte diferente al ultimo mes presente en los datos, los resultados aparecian no eran precisos!
Trate de calcular los totales de los ultimos dos meses utilizando el campo de Fecha de Reporte, pero los resultados no reconciliaban, existian transacciones de un mes que no aparecian, por la forma en que el SET anaysis dividia los datos! asi que la opcion de seleccionar los ultimos dos meses, utilizando el sub-campo MonthsAgo de la Fecha de Reporte se presento mas atractiva, y menos confusa, aparte que habia funcionado anteriormente, solo que los utilizamos de una forma muy generica.
La forma de que T-2 sea dinamico es por medio de la function: GetFieldSelections( <field-name> ); en el caso de este reporte, queremos saber que ha sido seleccionado del campo: [Fecha_Reporte.autoCalendar.YearMonth] asi que agregue una nueva variable:
GetFechaReport
Expresion:
=GetFieldSelections([Fecha_Reporte.autoCalendar.YearMonth])
Notas:
Luego esta variable se utiliza, para calcular, dinamicamente, el mes mas reciente en base a la fecha del reported seleccionado.
.... continuara en otro "Reply" ...
@ShirSandoval ... continuacion ...
Variable: Earliest_MonAgo
Expresion:
=Min({<"=Dual(Year([Fecha_Reporte])&'-'&Month([Fecha_Reporte]),MonthStart([Fecha_Reporte]))"={"$(GetFechaReport)"}>} [cl.Fecha de Originación.autoCalendar.MonthsAgo])
Notas:
Variable: Earliest_MonAgo-1
Expression
=$(Earliest_MonAgo) + 1
Notas:
... continuara ...
@ShirSandoval ... continuacion ...
Esta interface rechazo casi toda la respuesta anterior, fui eliminando parrafos, hasta que al final lo acepto
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'1','2'}>} [cl.Capital])
Se convierte en:
Sum ({<[Capital a Vencer],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'$(Earliest_MonAgo)', '$(Earliest_MonAgo-1)'}>} [cl.Capital])
Si te fijas, solo cambiamos el 1 por $(Earliest_MonAgo) y 2 con $(Earliest_MonAgo-1)
{<[Capital a Vencer],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'$(Earliest_MonAgo)', '$(Earliest_MonAgo-1)'}>}
y es la que utilizaremos en todas las expresiones en donde estemo excluyendo esos dos meses, dinamicamente!
.... continuara ...
Hi @ShirSandoval no habia terminado de subir toda las infomacion sobre este problema, esta es la continuacion.
Hola Shirlys 🙂
Sum ({<[cl.Capital]>} [cl.Capital]) -
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={1}>} [cl.Capital]) -
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={2}>} [cl.Capital])
No es la que genera Qlik, a mi me genero la siguiente expresion para 2 MonthsAgo
Sum({<"=12*Year(Today())+Month(Today())-12*Year([cl.Fecha de Originación])-Month([cl.Fecha de Originación])"={'2'}>} [cl.Capital])
Mientras que la expresion del mes anterior seria:
Sum({<"=12*Year(Today())+Month(Today())-12*Year([cl.Fecha de Originación])-Month([cl.Fecha de Originación])"={'1'}>} [cl.Capital])
Ahora bien, para obtener el gran total del mes anterior y hace dos meses puedes utilizar una sola expresion, que combina las dos anteriores:
Sum({<"=12*Year(Today())+Month(Today())-12*Year([cl.Fecha de Originación])-Month([cl.Fecha de Originación])"={'1', '2'}>} [cl.Capital])
El SET expresion es generado por Qlik automaticamente, no he tratado de interpretarla, solo que produce el valor experado.
Te recomiendo utilizar la expresion combinada (la ultima que inclui)
Saludos,
Arnaldo buen dia Gracias por tu respuesta.
Hola @ShirSandoval
Esta respuesta la escribire por parte, poque esta interface ha rechazado la respuesta en varias ocaciones !!! asi que la picare en retazos !!!! LOL
Vamos a compartir con la comunidad la solucion a los probemas y retos que esta solucion contiene, colocare un resumen de las acciones tomadas para resolver lo retos:
T-2 Dinamico:
En los primeros modelos nosotros hard-coded (?) los meses '1' y '2', por lo cual cuando se seleccionaba una fecha del reporte diferente al ultimo mes presente en los datos, los resultados aparecian no eran precisos!
Trate de calcular los totales de los ultimos dos meses utilizando el campo de Fecha de Reporte, pero los resultados no reconciliaban, existian transacciones de un mes que no aparecian, por la forma en que el SET anaysis dividia los datos! asi que la opcion de seleccionar los ultimos dos meses, utilizando el sub-campo MonthsAgo de la Fecha de Reporte se presento mas atractiva, y menos confusa, aparte que habia funcionado anteriormente, solo que los utilizamos de una forma muy generica.
La forma de que T-2 sea dinamico es por medio de la function: GetFieldSelections( <field-name> ); en el caso de este reporte, queremos saber que ha sido seleccionado del campo: [Fecha_Reporte.autoCalendar.YearMonth] asi que agregue una nueva variable:
GetFechaReport
Expresion:
=GetFieldSelections([Fecha_Reporte.autoCalendar.YearMonth])
Notas:
Luego esta variable se utiliza, para calcular, dinamicamente, el mes mas reciente en base a la fecha del reported seleccionado.
.... continuara en otro "Reply" ...
@ShirSandoval ... continuacion ...
Variable: Earliest_MonAgo
Expresion:
=Min({<"=Dual(Year([Fecha_Reporte])&'-'&Month([Fecha_Reporte]),MonthStart([Fecha_Reporte]))"={"$(GetFechaReport)"}>} [cl.Fecha de Originación.autoCalendar.MonthsAgo])
Notas:
Variable: Earliest_MonAgo-1
Expression
=$(Earliest_MonAgo) + 1
Notas:
... continuara ...
@ShirSandoval ... continuacion ...
Esta interface rechazo casi toda la respuesta anterior, fui eliminando parrafos, hasta que al final lo acepto
Sum ({<[cl.Capital],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'1','2'}>} [cl.Capital])
Se convierte en:
Sum ({<[Capital a Vencer],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'$(Earliest_MonAgo)', '$(Earliest_MonAgo-1)'}>} [cl.Capital])
Si te fijas, solo cambiamos el 1 por $(Earliest_MonAgo) y 2 con $(Earliest_MonAgo-1)
{<[Capital a Vencer],[cl.Fecha de Originación.autoCalendar.MonthsAgo]={'$(Earliest_MonAgo)', '$(Earliest_MonAgo-1)'}>}
y es la que utilizaremos en todas las expresiones en donde estemo excluyendo esos dos meses, dinamicamente!
.... continuara ...
Cuando utilizo el formatio de codigo </> para publicar una seccion de codigo, el mensaje es rechazado !!!
... continuare ...
Todo funcionó perfectamente, con todos estos cambios que hiciste. Como siempre mil gracias! eres un genio. Gracias por tu tiempo y dedicación para ayudar.
Hi @ShirSandoval no habia terminado de subir toda las infomacion sobre este problema, esta es la continuacion.