Jenmm
Hola a todos,
He estado creando paneles con Qlik y recientemente tuve la oportunidad de cambiarme a Power BI.
Actualmente estoy creando un tablero que mostrará datos de 12 meses para el año en curso.
Nuestro conjunto de datos actual solo se limita a 3 meses (marzo). Ante esto, quise copiar los datos de la fecha máxima (marzo) al resto del mes (abril a diciembre). En Qlik, lo que solemos hacer es simplemente crear una expresión en el gráfico en la que, si las fechas son mayores que MAX, las igualamos a los datos de fecha MAX.
*Rendimiento esperado*
Período de información | Grupo | Contar |
201801 | Grupo 1 | 12 |
201801 | Grupo 2 | 9 |
201801 | Grupo3 | 12 |
201802 | Grupo 1 | 21 |
201802 | Grupo 2 | 23 |
201802 | Grupo3 | 25 |
201803 | Grupo 1 | 33 |
201803 | Grupo 2 | 34 |
201803 | Grupo3 | 32 |
201804 | Grupo 1 | 33 |
201804 | Grupo 2 | 34 |
201804 | Grupo3 | 32 |
201805 | Grupo 1 | 33 |
201805 | Grupo 2 | 34 |
201805 | Grupo3 | 32 |
201806 | Grupo 1 | 33 |
201806 | Grupo 2 | 34 |
201806 | Grupo3 | 32 |
201807 | Grupo 1 | 33 |
201807 | Grupo 2 | 34 |
201807 | Grupo3 | 32 |
201808 | Grupo 1 | 33 |
201808 | Grupo 2 | 34 |
201808 | Grupo3 | 32 |
201809 | Grupo 1 | 33 |
201809 | Grupo 2 | 34 |
201809 | Grupo3 | 32 |
201810 | Grupo 1 | 33 |
201810 | Grupo 2 | 34 |
201810 | Grupo3 | 32 |
201811 | Grupo 1 | 33 |
201811 | Grupo 2 | 34 |
201811 | Grupo3 | 32 |
201812 | Grupo 1 | 33 |
201812 | Grupo 2 | 34 |
201812 | Grupo3 | 32 |
*Solo el 201801, 201802 y 201803 son los datos que tenemos.
Pude crear una tabla que consta de diferentes columnas que representan los diferentes meses (12 meses) usando la declaración IF y creando una variable para la fecha MAX. Sin embargo, dado que la fecha se divide en diferentes columnas, no puedo usarla para las otras imágenes (es decir, gráficos) ya que se lee como un valor diferente.
Samp_Actuals = var vMaxDate = MAX([Reporting_Period]) RETURN SUMMARIZE([Group_ID] ,"201801", IF(vMaxDate < 201801,CALCULATE(COUNT([Member_ID]),[Reporting_Period] = vMaxDate),CALCULATE(COUNT([Member_ID]),[Reporting_Period] = 201801)) ,"201802", IF(vMaxDate < 201802,CALCULATE(COUNT([Member_ID]),[Reporting_Period] = vMaxDate),CALCULATE(COUNT([Member_ID]), [Reporting_Period] = 201802))... and so on.....
¡Cualquier ayuda es muy apreciada!
NOTA: La tabla era una agregación de un determinado ID de grupo de otra tabla. El período de informe está en forma de número entero, ya que se extrajo de la base de datos.
Zubair_Muhammad
Hola @jenmm
Pruebe esta tabla calculada
desde la pestaña de modelado>>Nueva tabla
Table = VAR starting = MIN ( Table1[Reporting_Period] ) VAR MissingRows = CROSSJOIN ( GENERATESERIES ( Starting, Starting + 11 ), ALL ( Table1[Group] ) ) RETURN ADDCOLUMNS ( MissingRows, "Count", VAR mycalc1 = CALCULATE ( SUM ( Table1[Count] ), FILTER ( Table1, Table1[Group] = EARLIER ( [Group] ) && Table1[Reporting_Period] = EARLIER ( [Value] ) ) ) VAR mycalc2 = CALCULATE ( MAX ( Table1[Count] ), Table1[Group] = EARLIER ( Table1[Group] ) ) RETURN IF ( ISBLANK ( mycalc1 ), mycalc2, mycalc1 ) )
Zubair_Muhammad
En respuesta a Zubair_Muhammad
@jenmm
Por favor, vea el archivo adjunto
Zubair_Muhammad
Hola @jenmm
Pruebe esta tabla calculada
desde la pestaña de modelado>>Nueva tabla
Table = VAR starting = MIN ( Table1[Reporting_Period] ) VAR MissingRows = CROSSJOIN ( GENERATESERIES ( Starting, Starting + 11 ), ALL ( Table1[Group] ) ) RETURN ADDCOLUMNS ( MissingRows, "Count", VAR mycalc1 = CALCULATE ( SUM ( Table1[Count] ), FILTER ( Table1, Table1[Group] = EARLIER ( [Group] ) && Table1[Reporting_Period] = EARLIER ( [Value] ) ) ) VAR mycalc2 = CALCULATE ( MAX ( Table1[Count] ), Table1[Group] = EARLIER ( Table1[Group] ) ) RETURN IF ( ISBLANK ( mycalc1 ), mycalc2, mycalc1 ) )
Jenmm
En respuesta a Zubair_Muhammad
¡Guau! ¡Funcionó! ¡Muchas gracias! ¡Agradezco mucho la ayuda, @Zubair_Muhammad!
Zubair_Muhammad
En respuesta a Zubair_Muhammad
@jenmm
Por favor, vea el archivo adjunto