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.
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.
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
Solved! Go to 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
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:
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"?
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
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 única | Estudiante | Identificación del estudiante | Fecha de entrega (mes) |
T0001 | A | S0001 | 1/3/2019 |
T0002 | B | S0002 | 1/3/2019 |
T0003 | C | S0003 | 1/2/2019 |
T0004 | D | S0004 | 1/6/2019 |
T0005 | E | S0005 | 1/23/2019 |
T0006 | F | S0006 | 1/15/2019 |
T0007 | G | S0007 | 1/9/2019 |
T0008 | A | S0001 | 2/16/2019 |
T0009 | D | S0004 | 2/14/2019 |
T0010 | E | S0005 | 2/28/2019 |
T0011 | B | S0002 | 2/1/2019 |
T0012 | G | S0007 | 2/2/2019 |
T0013 | A | S0001 | 3/1/2019 |
T0014 | B | S0002 | 3/1/2019 |
T0015 | C | S0003 | 3/2/2019 |
T0016 | F | S0006 | 3/3/2019 |
T0017 | A | S0001 | 4/1/2019 |
T0018 | B | S0002 | 4/16/2019 |
T0019 | D | S0004 | 4/20/2019 |
T0020 | E | S0005 | 4/20/2019 |
T0021 | F | S0006 | 4/21/2019 |
T0022 | G | S0007 | 4/22/2019 |
T0023 | A | S0001 | 5/1/2019 |
T0024 | B | S0002 | 5/2/2019 |
T0025 | C | S0003 | 5/3/2019 |
T0026 | D | S0004 | 5/4/2019 |
T0027 | E | S0005 | 5/5/2019 |
T0028 | F | S0006 | 5/6/2019 |
T0029 | G | S0007 | 5/7/2019 |
T0030 | B | S0002 | 6/24/2019 |
T0031 | C | S0003 | 6/28/2019 |
T0032 | E | S0005 | 6/29/2019 |
T0033 | G | S0007 | 6/30/2019 |
T0034 | A | S0001 | 7/12/2019 |
T0035 | C | S0003 | 7/22/2019 |
T0036 | G | S0007 | 7/29/2019 |
T0037 | A | S0001 | 8/12/2019 |
T0038 | B | S0002 | 8/13/2019 |
T0039 | C | S0003 | 8/14/2019 |
T0040 | D | S0004 | 8/15/2019 |
T0041 | F | S0006 | 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 estudiante | Fecha de inicio del programa |
S0001 | |
S0002 | |
S0003 | 3/1/2019 |
S0004 | |
S0005 | 4/1/2019 |
S0006 | |
S0007 | 10/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
Saludos
Rena
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
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
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 estudiante | Fecha de inicio del programa |
S0001 | |
S0002 | |
S0003 | 3/1/2019 |
S0004 | |
S0005 | 4/1/2019 |
S0006 | 1/2/2020 |
S0007 | 10/1/2019 |
Agregué más comunicaciones sobre el cuadro 1, así como para enero de 2020 para probar la medida.
T0061 | B | S0002 | 1/3/2020 |
T0062 | C | S0003 | 1/18/2020 |
T0063 | D | S0004 | 1/19/2020 |
T00064 | G | S0007 | 1/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
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
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 estudiante | Fecha de inicio del programa |
S0001 | |
S0002 | |
S0003 | 3/1/2019 |
S0004 | |
S0005 | 4/1/2019 |
S0006 | 1/2/2020 |
S0007 | 10/1/2019 |
Agregué más comunicaciones sobre el cuadro 1, así como para enero de 2020 para probar la medida.
T0061 | B | S0002 | 1/3/2020 |
T0062 | C | S0003 | 1/18/2020 |
T0063 | D | S0004 | 1/19/2020 |
T00064 | G | S0007 | 1/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
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |