Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
cmaloyb
Helper II
Helper II

Gráfico de líneas con varios meses y promedios

Hola

Soy bastante nuevo en Power BI y necesito ayuda para crear un gráfico de línea de tendencia/línea a partir de mis datos.

Mi primera tabla, Tabla de entrega mensual realiza un seguimiento de cuándo los alumnos de la A a la G entregan una actividad mensual. Los campos de esta tabla son ID único que se explica por sí mismo, Estudiante (de la A a la G), ID excitado y fecha en la que se entregó la asignación.

La segunda tabla, ActiveGrade, da una fecha (o null) para los estudiantes que han estado en el programa el tiempo suficiente para que su calificación comience a contar como crédito. Por ejemplo, Student C ha estado entregando su trabajo mensual desde que comenzaron el programa, pero viene 3/1/2019, la tarea comenzará a contar como crédito.

Después de colocarla en Power BI, he editado la consulta para que cada mes tenga su propio campo para contar si un alumno ha enviado su seguridad mensual. También he añadido un campo para cada mes para dar un valor para aquellos estudiantes que están activos. Los estudiantes sin ActiveGradeDates estaban activos antes del principio de los datos.

Fusioné la consulta ActiveGrade con el turn-in mensual junto con la agrupación y el pivote para lograr la consulta anterior.

PowerBiForum1.JPGTabla de entrega mensual Parte 1PowerBiForum2.JPGMesa de entrega mensual Parte 2

No puedo encontrar cómo tener los 12 meses en el eje X mientras que tiene un gráfico de una sola línea para conectar los 12 puntos diferentes del cálculo (de envíos en el mes) / (de los estudiantes activos en el mismo mes).

He probado muchos enfoques diferentes y aún no lo he descubierto.

P.D. Necesito que se consulte cómo es para otros propósitos gráficos en mi informe. ¡Perdón por el largo mensaje!

¡Gracias!

Connor

1 ACCEPTED SOLUTION

Hola @cmaloyb ,

Por favor, intente actualizar la fórmula de medida como se muestra a continuación:

NumberofsubA = VAR a=MAX('Table 1'[Turn-in Date (Month)])
VAR b=DIVIDE(CALCULATE(DISTINCTCOUNT('Table 1'[Student ID])),
COUNTBLANK('Table 2'[Program Start Date])+CALCULATE(COUNT('Table 2'[Student ID]),FILTER('Table 2',NOT(ISBLANK('Table 2'[Program Start Date]))&&'Table 2'[Program Start Date]<=a)),0)
return b

Aquí se actualizó la fórmula de calcular el número de estudiantes activos:

1. Calcular el número de fecha de inicio del programa que está en blanco

COUNTBLANK('Table 2'[Program Start Date])

2. Calcular el número de datos de inicio del programa que es menor que la fecha de envío de la asignación

CALCULATE(COUNT('Table 2'[Student ID]),FILTER('Table 2',NOT(ISBLANK('Table 2'[Program Start Date]))&&'Table 2'[Program Start Date]<=a)

3. Agregue ambos para obtener el número de estudiantes activos

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

12 REPLIES 12
v-yiruan-msft
Community Support
Community Support

Hola @cmaloyb ,

Si entiendo correctamente, tiene dos tablas: Tabla 1 y Tabla 2. La Tabla 1 contiene el ID del estudiante y la fecha en que el estudiante envía la actividad, y la Tabla 2 contiene el estudiante y la fecha en que se inició el programa. Se ve como a continuación:

tt.JPG

Su resultado esperado es obtener un gráfico de líneas como la siguiente captura de pantalla con datos en el eje X y el porcentaje de número de alumnos activos y las actividades enviadas se muestran en el campo"Valores"?
line chart.JPG

Si el entendimiento anterior es correcto? Si no, por favor corríjame. ¿Y podría proporcionar algunos datos de muestra (excluir datos confidenciales) de estas 2 tablas con texto?

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hola @yingyinr, eso es correcto.

La Tabla 1 tendrá varios envíos de más de un estudiante, mientras que la Tabla 2 solo tendrá al estudiante y su respectiva fecha de inicio del programa una vez (relación de uno a varios). Proporcionaré algunos datos de ejemplo (no sensibles) de los cuadros 1 y 2.

Tabla 1:

Identificación únicaEstudianteIdentificación del estudianteFecha de entrega (mes)
T0001AS00011/3/2019
T0002BS00021/3/2019
T0003CS00031/2/2019
T0004DS00041/6/2019
T0005ES00051/23/2019
T0006FS00061/15/2019
T0007GS00071/9/2019
T0008AS00012/16/2019
T0009DS00042/14/2019
T0010ES00052/28/2019
T0011BS00022/1/2019
T0012GS00072/2/2019
T0013AS00013/1/2019
T0014BS00023/1/2019
T0015CS00033/2/2019
T0016FS00063/3/2019
T0017AS00014/1/2019
T0018BS00024/16/2019
T0019DS00044/20/2019
T0020ES00054/20/2019
T0021FS00064/21/2019
T0022GS00074/22/2019
T0023AS00015/1/2019
T0024BS00025/2/2019
T0025CS00035/3/2019
T0026DS00045/4/2019
T0027ES00055/5/2019
T0028FS00065/6/2019
T0029GS00075/7/2019
T0030BS00026/24/2019
T0031CS00036/28/2019
T0032ES00056/29/2019
T0033GS00076/30/2019
T0034AS00017/12/2019
T0035CS00037/22/2019
T0036GS00077/29/2019
T0037AS00018/12/2019
T0038BS00028/13/2019
T0039CS00038/14/2019
T0040DS00048/15/2019
T0041FS0006

8/16/2019

Se extiende a diciembre, pero no parecía necesario proporcionar envíos para todos los meses.

Tabla 2: (Los espacios en blanco representan fechas de inicio anteriores a 2019)

Identificación del estudianteFecha de inicio del programa
S0001
S0002
S00033/1/2019
S0004
S00054/1/2019
S0006
S000710/1/2019

En cuanto al gráfico de líneas, tiene absolutamente razón. Me gustaría mostrar cada mes en el eje X y en el campo"Valores"me gustaría tener el promedio de envíos por estudiantes activos sobre una base mensual.

Por ejemplo, en enero, me gustaría mostrar el valor: (7 Envíos)/(4 Estudiantes Activos) - 1,75 o 175%

Así que un valor para cada mes en un gráfico de línea continua.

Nota: Necesito la consulta como se muestra arriba para otros propósitos gráficos.

Gracias por su respuesta!

R/

Connor

Hola @cmaloyb ,

Puede crear una medida como se muestra a continuación:

NumberofsubA = VAR a=MAX('Table 1'[Turn-in Date (Month)]) 
VAR b=CALCULATE(DISTINCTCOUNT('Table 1'[Student ID]))/
CALCULATE(DISTINCTCOUNT('Table 2'[Student ID]),FILTER('Table 2',ISBLANK('Table 2'[Program Start Date])||(YEAR('Table 2'[Program Start Date])=YEAR(A)&&MONTH('Table 2'[Program Start Date])<=MONTH(a)))) 
return b

line chart.JPG

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

@yingyinr ,

Muchas gracias, eso parece funcionar. Encontré un problema a través de la extensión del ejemplo. Cuando el año termina (2019 en este caso) y los estudiantes comienzan a entregar sus tareas mensuales al año siguiente (2020), los estudiantes con fechas de inicio del programa en 2019 (S0003, S0005, S0007) ya no se cuentan como estudiantes activos.

¿Le importaría explicar lo que dax en la medida significa para ayudarme a resolver esto?

Connor

Hola @cmaloyb ,

¿De dónde provienen las fechas de axis en el gráfico de líneas? ¿Es de una tabla de calendario? O desde el campo Fecha de entrega (mes) en la Tabla 1?

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hola @yingyinr,

Las fechas del Eje proceden del campo Fecha de entrega (mes) de la Tabla 1.

R/

Connor

Hola @cmaloyb ,

Actualice la fórmula de medida como se indica a continuación:

NumberofsubA - VAR a-MAX('Tabla 1'[Fecha de entrega (mes)])
VAR b-CALCULATE(DISTINCTCOUNT('Tabla 1'[ID de estudiante]))/
CALCULATE(DISTINCTCOUNT('Table 2'[Student ID]),FILTER('Table 2',ISBLANK('Table 2'[Program Date]])- (AÑO('Tabla 2'[Fecha de<=inicio del programa]) <-YEAR(A)&&MONTH('Tabla 2'[Fecha de inicio del programa])<-MONTH(a)))))
retorno b

Y el significado de la fórmula de la siguiente manera:

1. Obtenga la fecha de entrega actual

VAR a=MAX('Table 1'[Turn-in Date (Month)])

2. Cuente el número de la presentación

CALCULATE(DISTINCTCOUNT('Table 1'[Student ID]))

3. Cuente el número de estudiantes activos

1) Obtener los registros que la fecha de inicio del programa está en blanco o menor que la fecha de entrega de asignación

FILTER('Table 2',ISBLANK('Table 2'[Program Start Date])|| (YEAR('Table 2'[Program Start Date])<=YEAR(A)&&MONTH('Table 2'[Program Start Date])<=MONTH(a)))

2) Recuento del número de estudiantes que cumplen con las condiciones anteriores

DISTINCTCOUNT('Table 2'[Student ID])

Además, encontrará los detalles de las funciones utilizadas en la fórmula en las siguientes documentacións:

https://docs.microsoft.com/en-us/dax/distinctcount-function-dax

https://docs.microsoft.com/en-us/dax/filter-function-dax

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

Hola @yingyinr,

Así que agregué una fecha de inicio del programa en la Tabla 2 para probar la medida, sin embargo, todavía no incluye las fechas que se aprobaron en el año anterior.

Nuevo Cuadro 2:

Identificación del estudianteFecha de inicio del programa
S0001
S0002
S00033/1/2019
S0004
S00054/1/2019
S00061/2/2020
S0007

10/1/2019

Agregué más comunicaciones sobre el cuadro 1, así como para enero de 2020 para probar la medida.

T0061BS00021/3/2020
T0062CS00031/18/2020
T0063DS00041/19/2020
T00064GS00071/20/2020

Con la medida NumberofsubA puesta en un gráfico de líneas por mes, enero de 2020 tiene NumberofsubA 1.00

Dadas las 4 comunicaciones de enero de 2020 con las 3 fechas de inicio del programa en blanco y la fecha de inicio del programa 1 de enero de 2020 (4 fechas de inicio del programa), esto sería: 4 envíos/4 fechas de inicio del programa 1.00.

Todavía nos faltan esas 3 fechas de inicio del programa del año anterior en 2019 (S0003, S0005 y S0007).

He intentado modificar la medida dada, sin embargo, por lo general me queda un error o un cálculo que está muy lejos de ser correcto.

¿Alguna idea?

Me gustaría darle las gracias por su ayuda hasta ahora! ¡Ha sido un aprendizaje maravilloso!

R/

Connor

Hola @cmaloyb ,

Por favor, intente actualizar la fórmula de medida como se muestra a continuación:

NumberofsubA = VAR a=MAX('Table 1'[Turn-in Date (Month)])
VAR b=DIVIDE(CALCULATE(DISTINCTCOUNT('Table 1'[Student ID])),
COUNTBLANK('Table 2'[Program Start Date])+CALCULATE(COUNT('Table 2'[Student ID]),FILTER('Table 2',NOT(ISBLANK('Table 2'[Program Start Date]))&&'Table 2'[Program Start Date]<=a)),0)
return b

Aquí se actualizó la fórmula de calcular el número de estudiantes activos:

1. Calcular el número de fecha de inicio del programa que está en blanco

COUNTBLANK('Table 2'[Program Start Date])

2. Calcular el número de datos de inicio del programa que es menor que la fecha de envío de la asignación

CALCULATE(COUNT('Table 2'[Student ID]),FILTER('Table 2',NOT(ISBLANK('Table 2'[Program Start Date]))&&'Table 2'[Program Start Date]<=a)

3. Agregue ambos para obtener el número de estudiantes activos

Saludos

Rena

Community Support Team _ Rena
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

@yingyinr ,

Me he encontrado con un cambio de requisito en el que aquellos que estaban enviando sus asignaciones mensuales no contarán en el numerador hasta que se cumpla la fecha de inicio del programa.

¿Cómo incluyo este filtro en el numerador? Intenté usar el método de filtrado utilizado en el denominador, sin embargo, no devuelve los resultados correctos.

R/

Connor

@yingyinr que parece funcionar!

¡Muchas gracias por su ayuda!

R/

Connor

Hola @yingyinr,

Así que agregué una fecha de inicio del programa en la Tabla 2 para probar la medida, sin embargo, todavía no incluye las fechas que se aprobaron en el año anterior.

Nuevo Cuadro 2:

Identificación del estudianteFecha de inicio del programa
S0001
S0002
S00033/1/2019
S0004
S00054/1/2019
S00061/2/2020
S0007

10/1/2019

Agregué más comunicaciones sobre el cuadro 1, así como para enero de 2020 para probar la medida.

T0061BS00021/3/2020
T0062CS00031/18/2020
T0063DS00041/19/2020
T00064GS00071/20/2020

Con la medida NumberofsubA puesta en un gráfico de líneas por mes, enero de 2020 tiene NumberofsubA 1.00

Dadas las 4 comunicaciones de enero de 2020 con las 3 fechas de inicio del programa en blanco y la fecha de inicio del programa 1 de enero de 2020 (4 fechas de inicio del programa), esto sería: 4 envíos/4 fechas de inicio del programa 1.00.

Todavía nos faltan esas 3 fechas de inicio del programa del año anterior en 2019 (S0003, S0005 y S0007).

He intentado modificar la medida dada, sin embargo, por lo general me queda un error o un cálculo que está muy lejos de ser correcto.

¿Alguna idea?

Me gustaría darle las gracias por su ayuda hasta ahora! ¡Ha sido un aprendizaje maravilloso!

R/

Connor

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.