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
v-huizhn-msft
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"
Haga clic en «Aplicar» en la página de inicio, obtendrá el resultado esperado de la siguiente manera.
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.