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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
lukeSDM
Helper V
Helper V

Calcular la diferencia entre diferentes filas con un asunto común

Hola a todos

Estoy buscando calcular la diferencia entre las calificaciones, entre los conjuntos de resultados para cada aspecto.

Así que para 'Jim' quiero calcular la diferencia entre su objetivo y en otoño, y luego objetivo y primavera y el intermedio (así que otoño a primavera) si es posible para las matemáticas y el inglés.

Realmente agradecería cualquier ayuda, ya que no estoy seguro de cómo abordar esta.

Así es como se ven los datos - ¿necesitaría pivotarlos o?

Como digo cualquier ayuda apreciada.

Hopw esto tiene sentido.

Muchas gracias,

Luke

EstudianteConjunto de resultadosAspectoValor de calificación
JimObjetivoCAG - Matemáticas3
JeffObjetivoCAG - Matemáticas4
JimOtoñoCAG - Matemáticas2
JeffOtoñoCAG - Matemáticas3
JimPrimaveraCAG - Matemáticas4
JeffPrimaveraCAG - Matemáticas4
JimObjetivoCAG - Español7
JeffObjetivoCAG - Español9
JimOtoñoCAG - Español4
JeffOtoñoCAG - Español6
JimPrimaveraCAG - Español7
JeffPrimaveraCAG - Español2
18 REPLIES 18
Syndicate_Admin
Administrator
Administrator

lukeSDM_0-1607366680334.png

Tengo que enviar una imagen de la mejor tabla de ejemplo ya que por alguna razón el error es con html está en la tabla, así que lo siento, pero no puedo ayudar a eso.

por favor encontrar la otra imagen que mencioné aswell

Image.jpeg

lukeSDM
Helper V
Helper V

Hola

He estado tratando de conseguir que su solución para trabajar y lo hace, hasta cierto punto, sin embargo, cuando miro los resultados que produce que están equivocados sin embargo al darle datos de ejemplo no incorporar otros factores en y creo que esto está causando un problema.

Por favor, permítanme dar algunos datos que reflejan mejor mi fuente de datos y ver si tiene sentido y usted podría conseguir que esto funcione (sólo voy a utilizar un estudiante como ejemplo e incluiré los pasos que ha explicado a mí. Adapté parte de la fórmula para trabajar con mis datos un poco mejor):

Los datos continúan en un patrón muy similar para todos los años con nombres diferentes y algunos otros cambios.

de los datos de ejemplo de la tabla se espera que la diferencia de la variable de otoño sea -1, ya que el cálculo haría 2 (grado real) - 3 (grado objetivo) para darles -1 para mostrar que están por debajo del objetivo.

sin embargo, después de seguir sus pasos, pero ajustarlos para tratar de ajustarse a mi datat mejor gte la respuesta de -3 que estoy confundido sobre cómo habría conseguido esta respuesta.

Cualquier ayuda es realmente apreciada, siento que está tan cerca de ser resuelto.

Muchas gracias de antemano,

Luke

(También he adjuntado una imagen de los datos para ayudar con la comprensión)

Gracias de nuevo.

lukeSDM
Helper V
Helper V

No puedo publicar mi respuesta completa y como hay problemas HTML puede ayudar de todos modos.

lukeSDM
Helper V
Helper V

Hola @BA_Pete ,

Estoy tratando de implementar esto en mi propio documento PBI, pero estoy confundido sobre cómo hacer esto, he seguido sus pasos para la parte powerquery y su llegar a los datos de ejemplo, pero ¿cómo hago que esto funcione para mis datos reales?

¿Tengo que copiar y pegar un poco de su código en mi editor avanzado de código fuente de datos?

Muchas gracias,

Luke

BA_Pete
Super User
Super User

Hola @lukeSDM ,

Este nuevo ejemplo de datos hace que sea un poco más complicado implementar ordenadamente. Un par de preguntas:

- ¿Es capaz de cambiar la fuente de datos en absoluto? Agregar columnas separadas para El año de grado, el término y el asunto haría las cosas más sencillas.

- Si no es así, ¿puede utilizar Power Query (es decir, está utilizando el modo de importación para sus datos)? Si utiliza el modo de importación y no puede agregar los campos a su origen según la pregunta anterior, puedo mostrarle cómo hacerlo en Power Query.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Hola @BA_Pete ,

No puedo cambiar el origen de datos desfortable, los datos de ejemplo que compartí se exportan desde un sistema de administración de información escolar directamente a un archivo csv y, a continuación, me conecto a este archivo csv dentro de Power Bi.

Así que sí, creo que puedo hacer bits en Power Query.

Espero su respuesta.

Muchas gracias por su ayuda, es muy apreciado.

Hola @lukeSDM ,

Disculpas por el retraso.

Cuanto más miro tu nuevo escenario, más confundido me pongo.

¿Puedes aclarar lo siguiente, por favor?

- ¿Es el aspecto de "Evaluación del profesorado" un objetivo o un valor real?

- Jim, por ejemplo, tiene tres valores KS4 FFT New Eng en el año 11, pero ninguno de ellos muestra a qué término (Primavera, Verano, Autmun) se aplican. ¿Cómo puedo distinguir qué objetivo comparar con qué real?

Gracias



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Hola @BA_Pete

Me gustaría comparar Jims "KS4 FFT New Eng" (que es un aspecto), conjunto de resultados "FFT Reported Grade" (que es el momento de cuando se logró la calificación) "resultado" con Jims "Teacher Assessmnet Eng New (Aspect) , "Year 11 Autumn" (conjunto de resultados) resultado.

Así que esencialmente quiero comparar la calificación de 2 aspectos diferentes con 2 conjunto de resultados.

Me doy por ahí que aclare las cosas.

Muchas gracias

Ok, pero Jim tiene tres grados KS4, sin forma de destiguándose entre ellos, excepto que tienen diferentes valores de grado. ¿Deben sumarse/promediarse?

BA_Pete_0-1607007913565.png



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Mis disculpas que es un error dentro de los datos que proporcioné, sólo debe haber un "Grado reportado FFT" que es el objetivo.

Espero que esto aclare las cosas.

Muchas gracias @BA_Pete

¡Eso tiene más sentido!

He hecho esto en dos partes para simplificar las medidas.

1) Dividir dimensiones en Power Query.

En Power Query, vaya a Nuevo origen>Consulta en blanco y, a continuación, en Editor avanzado, pegue mi código sobre el código predeterminado. A continuación, puede seguir los pasos que tomé para completar esto.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("tZNNDoIwEIWv0nTNApALsBCjRhfSjSEsGhmERSuZlnh9i5j4QxWBsJ3p99502pckdFMK6tAjcCSeR6KIkQNUF9SQkRXyDExzGwf3xh6uZCnPpuLT1BmM7rgulKktLHBY61pIwgCbKgN+KgBJqBQoJUDqFm5kvrj3CpjBH3jX350dfx3fswjEFZbGYUaB5wUCG14LYc5P8O8T+O2/lhqwFNMX+bdQ50Ehz8f8Zn8U3cbI4uzOy35k8J2etrPhKUhv", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [name = _t, #"Result set" = _t, Aspect = _t, Grade = _t]),
    chgSourceTypes = Table.TransformColumnTypes(Source,{{"name", type text}, {"Result set", type text}, {"Aspect", type text}, {"Grade", Int64.Type}}),
    dupeResultSet = Table.DuplicateColumn(chgSourceTypes, "Result set", "Result set - Copy"),
    splitResultSetDupe = Table.SplitColumn(dupeResultSet, "Result set - Copy", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"gradeYear", "gradePeriod"}),
    trimGradePeriod = Table.TransformColumns(splitResultSetDupe,{{"gradePeriod", Text.Trim, type text}}),
    addGradeType = Table.AddColumn(trimGradePeriod, "gradeType", each if Text.Contains([Aspect], "Assessment") then "Target" else "Actual", type text),
    addSubject = Table.AddColumn(addGradeType, "Subject", each if Text.Contains([Aspect], "Eng") then "English" else if Text.Contains([Aspect], "Maths") then "Maths" else "No subject", type text)
in
    addSubject

2) Crear medidas de varianza como antes.

_varianceSpring = 
VAR grade =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradeType] = "Actual"
)
VAR target =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradePeriod] = "Spring Term"
)
RETURN
grade - target
_varianceSummer = 
VAR grade =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradeType] = "Actual"
)
VAR target =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradePeriod] = "Summer Term"
)
RETURN
grade - target
_varianceAutumn = 
VAR grade =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradeType] = "Actual"
)
VAR target =
CALCULATE(
    MAX(lukeSDMTable2[Grade]),
    lukeSDMTable2[gradePeriod] = "Autumn Term"
)
RETURN
grade - target

A continuación, puede aplicar sus dimensiones/medidas a una matriz como esta:

BA_Pete_0-1607011104285.png

Lo principal a tener en cuenta es que para mantener las medidas lo más dinámicas posible, he añadido una dimensión adicional a la matriz, es decir, [gradeYear]. Podría sacar esto de la matriz y agregarlo como una segmentación de datos si lo prefiere, pero tendrá que aplicarse como un filtro en algún lugar, ya que no está codificado de forma rígida en las medidas.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




@BA_Pete

Esto se ve muy bien, voy a darle una oportunidad y hacerle saber mi resultado.

Gracias por toda su ayuda hasta ahora.

lukeSDM
Helper V
Helper V

Hola @BA_Pete no entiendo muy bien su explination, lo siento no soy muy experimentado en este.

¿Podrías darme ejemplos de lo que me has pedido que haga?

He adjuntado un ejemplo de mis datos para ayudarle a comprender mejor.

Así que me gustaría comparar [Aspecto] "KS4 FFT New Eng" [Conjunto de resultados] Año 11 Grado reportado FFT" [Grado] con [Aspecto] "Eng New de evaluación del profesor" [Conjunto de resultados] "Year 11 Autumn Term" [Grado].

Espero que esto tenga sentido y espero su respuesta.

Gracias por toda su ayuda hasta ahora.

NombreConjunto de resultadosAspecto Grado
JimAño 11 FFT Grado ReportadoKS4 FFT Nueva Eng2
JimAño 11 FFT Grado ReportadoKS4 FFT Nuevas Matemáticas2
JimAño 11 FFT Grado ReportadoKS4 FFT Nuevas Matemáticas3
JimAño 11 FFT Grado ReportadoKS4 FFT Nueva Eng4
JimAño 11 FFT Grado ReportadoKS4 FFT Nueva Eng3
JimAño 11 FFT Grado ReportadoKS4 FFT Nuevas Matemáticas2
JimAño 11 Plazo de OtoñoMatemáticas de Evaluación del Profesorado Nuevo2
JimAño 11 Plazo de OtoñoEvaluación del Profesorado Eng Nuevo3
JimAño 10 Plazo de OtoñoEvaluación del Profesorado Eng Nuevo3
JimAño 10 Plazo de OtoñoMatemáticas de Evaluación del Profesorado Nuevo1
JimAño 10 Plazo de PrimaveraMatemáticas de Evaluación del Profesorado Nuevo1
JimAño 10 Plazo de PrimaveraEvaluación del Profesorado Eng Nuevo4
JimAño 10 Plazo de VeranoMatemáticas de Evaluación del Profesorado Nuevo1
JimAño 10 Plazo de VeranoEvaluación del Profesorado Eng Nuevo4
JimAño 10 Plazo provisional de otoñoMatemáticas de Evaluación del Profesorado Nuevo1
JimAño 10 Plazo provisional de otoñoEvaluación del Profesorado Eng Nuevo3
JeffAño 11 FFT Grado ReportadoKS4 FFT Nuevas Matemáticas2
JeffAño 11 FFT Grado ReportadoKS4 FFT Nueva Eng3
JeffGrado reportado por el año 10 FFTKS4 FFT Nueva Eng3
JeffGrado reportado por el año 10 FFTKS4 FFT Nuevas Matemáticas3
JeffAño 10 Plazo de OtoñoEvaluación del Profesorado Eng Nuevo3
JeffAño 10 Plazo de OtoñoMatemáticas de Evaluación del Profesorado Nuevo1

Esto es actualmente cómo tengo mis datos en Power Bi que no es bueno :

Screenshot 2020-12-01 at 13.20.54.png

(Puede ignorar el Aspecto de Actitud ya que Su solución anterior funcionará para esto)

Gracias de nuevo.

lukeSDM
Helper V
Helper V

Hola @BA_Pete quiero tener un matix que tiene una columna para la diferencia para cada tema.

Por ejemplo:

EstudianteInglés: Diferencia objetivo-otoñoEspañol : Diferencia de Otoño a PrimaveraEspañol : Objetivo - Diferencia de primaveraMatemáticas: Diferencia objetivo-otoñoMatemáticas: Objetivo - Diferencia de primavera
Jim+1-1+2+5-4
Jeff+2+4000

Me woulf entonces me gusta utilizar el formtting condicional en los valores por lo que su verde si hay progreso positivo, ámbar si permanece el mismo y rojo si hay progreso negativo.

Espero que esto tenga sentido y muchas gracias por su ayuda!

@lukeSDM ,

Gracias por la actualización.

Configure estas medidas:

_varianceAutumnSpring = 
VAR autumn =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Autumn"
)
VAR spring =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Spring"
)
RETURN
spring - autumn
_varianceTargetAutumn = 
VAR autumn =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Autumn"
)
VAR target =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Target"
)
RETURN
autumn - target
_varianceTargetSpring = 
VAR spring =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Spring"
)
VAR target =
CALCULATE(
    MAX(lukeSDMTable[Grade value]),
    lukeSDMTable[Result Set] = "Target"
)
RETURN
spring - target

A continuación, puede agregarlos a un objeto visual de matriz con sus dimensiones como esta:

BA_Pete_0-1606472232689.png

Para obtener la siguiente salida basada en los datos de ejemplo proporcionados:

BA_Pete_1-1606472284443.png



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Gracias por esto tengo otra pregunta.

¿Hay alguna manera de hacer que esto funcione si los aspectos tenían nombres diferentes?

EstudianteConjunto de resultadosAspectoValor de calificación
JimObjetivoMatemáticas objetivo3
JeffObjetivoMatemáticas objetivo4
JimOtoñoCAG - Matemáticas2
JeffOtoñoCAG - Matemáticas3
JimPrimaveraCAG - Matemáticas4
JeffPrimaveraCAG - Matemáticas4
JimObjetivoObjetivo Inglés7
JeffObjetivoObjetivo Inglés9
JimOtoñoCAG - Español4
JeffOtoñoCAG - Español6
JimPrimaveraCAG - Español7
JeffPrimaveraCAG - Español2

Me gustaría que funcionara exactamente como usted ha descrito antes, pero quiero comparar "Target Maths" con "CAG - Maths".

¿Conoces una manera de hacer esto @BA_Pete .

Muchas gracias por su ayuda hasta ahora.

Hola @lukeSDM ,

Es posible, pero requeriría codificar de forma rígida todas las diferentes combinaciones de [CAG - Asunto] vs [Objetivo - Asunto]. Básicamente utilizaría la misma estructura de medida que antes, pero sustituyendo las combinaciones en las secciones de variable (VAR).

Si se trata de un problema de origen de datos, es decir, toda la información de destino/CAG se encuentra en el campo [Aspecto] del origen y en realidad no tiene un campo [Resultado], le recomendaría usar la función Dividir columna en Power Query en el campo [Aspecto] para crear su propio campo [Resultado] y, a continuación, seguir el método original.



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




BA_Pete
Super User
Super User

Hola @lukeSDM ,

¿Podría proporcionar un ejemplo básico de lo que desea que su resultado final sea por favor?

¿Qué tipo de visualizaciones vas a utilizar, siempre será primavera y otoño o invierno y verano y verano también, las estaciones /términos siempre se comparan con un solo valor objetivo o puedes tener objetivos estacionales, puedes usar Power Query, estás usando Direct Query?



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors