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
Anonymous
Not applicable

Asignación de un único valor a un elemento primario mediante una columna calculada

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

  • Tengo datos sin procesar para las respuestas a las preguntas de encuestas de varias ubicaciones (es decir, la misma pregunta se responderá varias veces en el conjunto de datos). Las preguntas tienen un número de pregunta y un número padre. Por ejemplo, 2.1. 2 es el padre, 1 es el número de pregunta.
  • Hay tres posibles respuestas para cada pregunta. Estos son, 'Sí', 'No' y 'No Aplicable'.
  • Las preguntas se califican individualmente, pero la calificación debe acumularse hasta el Padre. Efectivamente, a los datos les falta una calificación para el padre. He intentado hacer esto con una columna calculada, pero estoy obteniendo resultados inesperados.

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

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

Zona de administración 1

Otro lugar

2

2.2

Zona de administración 1

Otro lugar

2

2.3

Zona de administración 2

Este lugar

2

2.1

No

Zona de administración 2

Este lugar

2

2.2

Zona de administración 2

Este lugar

2

2.3

Una nota sobre las reglas detrás de la lógica de calificación de la pregunta de los padres:

  • SI las preguntas son todas "Sí", o una combinación de "Sí" y "No aplicable", la calificación de la pregunta de los padres es "Sí".
  • SI incluso una pregunta está calificada como un "No", la calificación de la pregunta de los padres es "No".
  • SI todas las preguntas son "No aplicables", la pregunta principal recibe un "No aplicable".

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

3

4

No

Y lo que estoy recibiendo:

Pregunta de los padres

Clasificación de los padres

2

2

No

3

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

-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

2.1

-1

Zona de administración 1

Otro lugar

2

2.2

-1

Zona de administración 1

Otro lugar

2

2.3

-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

-1

Zona de administración 2

Este lugar

2

No

2.3

-1

5 REPLIES 5
v-juanli-msft
Community Support
Community Support

Hola @Hollis

No entiendo completamente tu regla.

Por favor, utilice mi ejemplo para explicar más.

Capture3.JPG

Saludos

Maggie

v-juanli-msft
Community Support
Community Support

Hola @Hollis

Compruebe si la sugerencia de amitchandak ayuda, si no, no dude en hacernos saber.

Saludos

Maggie

Anonymous
Not applicable

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.

amitchandak
Super User
Super User

@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"))
Anonymous
Not applicable

¡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!!

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