¿Cómo convertir puntuaciones numéricas en calificaciones en letras en Power BI Desktop?

Un usuario Pregunto ✅

Eugeneleefl

Tengo un conjunto de puntuaciones numéricas de una prueba (por ejemplo, 10, 30,5, 90,6, etc.) y deseo agregar una nueva columna en el editor de consultas que cambie estos números a calificaciones en letras. La regla de conversión es la siguiente:

A: 70 a 100

B: 60 a 69

C: 50 a 59

😧 40 hasta 49

E: 39 y menos

¿Existe una forma eficiente de hacer esto? Tengo varias filas para convertir. ¡Gracias!

MFelix

Hola @eugeneleefl,

Intente agregar una columna con la siguiente fórmula:

Grades Letters =
SWITCH (
    TRUE (),
    Table[Grade] <= 100
        && Table[Grade] >= 70, "A",
    Table[Grade] <= 69
        && Table[Grade] >= 60, "B",
    Table[Grade] <= 59
        && Table[Grade] >= 50, "C",
    Table[Grade] <= 49
        && Table[Grade] >= 40, "D",
    "E"
)

Saludos,

MFelix

Hola @eugeneleefl,

Creo una tabla de muestra y obtengo el resultado esperado. En el Editor de consultas, haga clic en «columna personalizada» debajo de «Agregar columna», obtendrá la siguiente navegación, escriba la declaración en el cuadro.

=if[number]<=39 then "E" else if [number]<=49 then "D" else if[number]<=59 then "C" else if [number]<=69 then "B" else "A"

1.PNG

Haga clic en «Aplicar» en la página de inicio, obtendrá el resultado esperado de la siguiente manera.

2.PNG

Aquí está mi declaración de Power Query.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjJWitWJVjIxBVOmBhDKAkyZQShziJwFhGdpqRQbCwA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [number = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"number", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if[number]<=39 then "E" else if [number]<=49 then "D" else if[number]<=59 then "C" else if [number]<=69 then "B" else "A")
in
    #"Added Custom"

Atentamente,
Angelia

MarcelBeug

En respuesta a v-huizhn-msft

A partir de los datos de su ejemplo, parece que tiene valores decimales. Por lo tanto, valores como 39.5 no tienen una categoría coincidente, de acuerdo con sus definiciones.

Probablemente debería reemplazar <= 39 por <40, etcétera.

Editar: esta sería mi solución de Power Query:

let
    Source = Table1,
    #"Added Custom" = Table.AddColumn(Source, "Grade", each Text.At("EDCBA",List.Max({0,List.Min({4,Number.RoundDown([Score]/10,0)-3})})), type text)
in
    #"Added Custom"

MFelix

Hola @eugeneleefl,

Intente agregar una columna con la siguiente fórmula:

Grades Letters =
SWITCH (
    TRUE (),
    Table[Grade] <= 100
        && Table[Grade] >= 70, "A",
    Table[Grade] <= 69
        && Table[Grade] >= 60, "B",
    Table[Grade] <= 59
        && Table[Grade] >= 50, "C",
    Table[Grade] <= 49
        && Table[Grade] >= 40, "D",
    "E"
)

Saludos,

MFelix

Eugeneleefl

En respuesta a MFelix

Estimado MFelix y v-huizhn-msft

Gracias por tu solución. Solo una complicación más: tengo más de 100 columnas que necesito convertir. ¿Hay alguna forma de hacer esto más fácilmente en DAX o en Power Query?

MarcelBeug

En respuesta a Eugeneleefl

Si aún se agradecen mis contribuciones, podría pensar en una solución de Power Query.

Mi pregunta sería si desea nuevas columnas o simplemente cambiar las columnas existentes.

Eugeneleefl

En respuesta a MarcelBeug

Hola MarcelBeug

Estoy ansioso por saber cómo cambiar las columnas existentes, ya que las publicaciones anteriores ya mencionaron cómo insertar nuevas.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *