Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hola a todos
Estoy intentando replicar la lógica de negocios que asigna un estado a una categoría primaria. He usado una columna calculada esperando que se asigne un único valor al elemento primario, pero obtención varios valores y no estoy seguro de por qué. También muy abierto a la idea de que todo el enfoque se puede hacer mejor!
Este es el problema
Así que la versión muy simple de mis datos sin procesar se ve así:
Área | Ubicación | Pregunta de los padres | Pregunta | Clasificación |
Zona de administración 1 | Some Place | 2 | 2.1 | Sí |
Zona de administración 1 | Some Place | 2 | 2.2 | No |
Zona de administración 1 | Some Place | 2 | 2.3 | N/A |
Zona de administración 1 | Otro lugar | 2 | 2.1 | Sí |
Zona de administración 1 | Otro lugar | 2 | 2.2 | Sí |
Zona de administración 1 | Otro lugar | 2 | 2.3 | Sí |
Zona de administración 2 | Este lugar | 2 | 2.1 | No |
Zona de administración 2 | Este lugar | 2 | 2.2 | Sí |
Zona de administración 2 | Este lugar | 2 | 2.3 | Sí |
Una nota sobre las reglas detrás de la lógica de calificación de la pregunta de los padres:
Lo que tengo que hacer:
Necesito calcular un Sí % para cada pregunta de padre. Esto tendrá que ser capaz de ser aplicado a las tablas filtradas para la ubicación y el área. Así que "Muéstrame el Sí% en la Pregunta 2 de los Padres para Algún Lugar", y "Muéstrame el Sí% para el área de administración de la pregunta 2 de los padres." Y "Muéstrame el Sí% para todas las preguntas de los padres en el área de administración 1" y "Cuántas preguntas de los padres fueron Sí en el área de administración 1"
Mi problema:
He hecho una columna calculada que me da la clasificación de preguntas de los padres, pensando que me daría un solo valor para la clasificación de los padres.
Lo que espero:
Pregunta de los padres | Clasificación de los padres |
2 | Sí |
3 | Sí |
4 | No |
Y lo que estoy recibiendo:
Pregunta de los padres | Clasificación de los padres |
2 | Sí |
2 | No |
3 | Sí |
4 | No |
4 | No aplicable |
Esto es lo que he hecho
1 - Asigne un valor numérico a las clasificaciones de preguntas para que pueda dar a la calificación de los padres una suma:
19 Interruptor - SWITCH('2019 results'[Rating],"Not Applicable",0,"No",100,-1)
2 - Crear una medida que suma los valores 'Switch'.
Sum Switch á SUM('2019 results'[19 Switch])
3- Crear una columna que asigne una calificación al Padre basada en esa suma
Resultado del padre: IF([Sum Switch]-0,"Not Applicable",IF([Sum Switch]>0,"No",IF([Sum Switch]<0,"Yes","")) )
Área | Ubicación | Pregunta de los padres | Clasificación de los padres | Pregunta | Clasificación | 19 Interruptor |
Zona de administración 1 | Some Place | 2 | No | 2.1 | Sí | -1 |
Zona de administración 1 | Some Place | 2 | No | 2.2 | No | 100 |
Zona de administración 1 | Some Place | 2 | No | 2.3 | N/A | 0 |
Zona de administración 1 | Otro lugar | 2 | Sí | 2.1 | Sí | -1 |
Zona de administración 1 | Otro lugar | 2 | Sí | 2.2 | Sí | -1 |
Zona de administración 1 | Otro lugar | 2 | Sí | 2.3 | Sí | -1 |
Zona de administración 2 | Este lugar | 2 | No | 2.1 | No | 100 |
Zona de administración 2 | Este lugar | 2 | No | 2.2 | Sí | -1 |
Zona de administración 2 | Este lugar | 2 | No | 2.3 | Sí | -1 |
Hola @Hollis
No entiendo completamente tu regla.
Por favor, utilice mi ejemplo para explicar más.
Saludos
Maggie
Hola @Hollis
Compruebe si la sugerencia de amitchandak ayuda, si no, no dude en hacernos saber.
Saludos
Maggie
Hola @v-juanli-msft tienen alguna idea sobre cómo resolver este? Realmente espero no tener que hacerlo manualmente en Excel, pero estoy tan perplejo.
@Hollis ,
Crear nueva columna como
New column =
var _No = sumx(filter(Table,Table[Location] =earlier(Table[Location]) && Table[ Parent Question] =earlier(Table[Location])
&& Table[Rating] ="No"), Table[Rating])
var _Yes = sumx(filter(Table,Table[Location] =earlier(Table[Location]) && Table[ Parent Question] =earlier(Table[Location])
&& Table[Rating] ="Yes"), Table[Rating])
var _NA = sumx(filter(Table,Table[Location] =earlier(Table[Location]) && Table[ Parent Question] =earlier(Table[Location])
&& Table[Rating] ="N/A"), Table[Rating])
var _all = sumx(filter(Table,Table[Location] =earlier(Table[Location]) && Table[ Parent Question] =earlier(Table[Location])
), Table[Rating])
return
if(_No =_all , "NO", if(_NA=_all,"Not Applicable","Yes"))
¡Hola @amitchandak gracias por su ayuda para encontrar una solución! Tengo un par de preguntas
Error
Probé la función y recibí un error ' La función SUMX no puede funcionar con valores tipo de cadena' Busqué este error y una de las sugerencias fue comprobar dos veces todas las referencias de columna. Lo hice, pero el error no se resolvió. ¿Es porque estamos tratando de sumar cadenas? (es decir, "Sí", etc.)
Lógica empresarial
if(_No _all , "NO", if(_NA-_all,"No aplicable","Sí"))
Si estoy leyendo esto correctamente, el valor "No" debe asignarse al elemento primario si el valor de no es igual al número de todos los valores para el padre. Eso sólo es cierto para NA. Un solo no lanza un error hasta el padre, independientemente de cualquier otra respuesta proporcionada. Tal vez estoy malinterpretando lo que has hecho.
Finalmente
Variables
Parece que llamas a una variable Sí, pero no veo dónde la has usado. ¿Puedes explicarlo?
Gracias de nuevo!!