Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Write Table now available in Qlik Cloud Analytics: Read Blog
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Extraer valores de un campo en base al valor de otro campo

Hola,

Necesito sacar uun cuadro que muestre para cada uno de los objetivos (DescNOC) la puntuación (ValoraNOC) que ha obtenido en la evaluación trimestral (Fila) de modo que yo pueda evaluar en esa misma tabla si se ha tenido mejora en el objetivo o no, este es un ejemplo de la tabla de datos origen:

Centro

Capitulo

Tipo Asistencia

Fila

DescNOC

ValoraNOC

HH0701

2012H0255

UD1

6

(FI) mantener la alineación de pelvis

2

HH0701

2012H0255

UD1

7

(FI) mantener la alineación de pelvis

2

HH0701

2012H0255

UD1

8

(FI) mantener la alineación de pelvis

2

HH0701

2012H0255

UD1

9

(FI) mantener la alineación de pelvis

1

HH0701

2012H0255

UD1

6

(FI) mantener la extensibilidad de los grupos musculares de MMII

1

HH0701

2012H0255

UD1

7

(FI) mantener la extensibilidad de los grupos musculares de MMII

1

HH0701

2012H0255

UD1

8

(FI) mantener la extensibilidad de los grupos musculares de MMII

1

HH0701

2012H0255

UD1

9

(FI) mantener la extensibilidad de los grupos musculares de MMII

1

Para ello, calculo los valores Mínimo y Máximo que pueden tomar los valores Fila para cada objetivo y en base a eso, ya debería poder sacar la valoración de cada evaluación (con Mínimo, Mínimo +1, Mínimo+2...),

La cuestión es que aunque saco los valores Mínimo y Máximo sin problema, luego no puedo obtener la valoración  asociada a esos valores, sólo lo hace bien en el caso de que Mínimo y Máximo sean iguales

¿Cómo podría hacerlo para que funcione bien?

He probado mil cosas, ahora estoy en el punto en que los cálculos son los siguientes:

Mínimo: aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC) -- OK

Máximo: aggr(max(EvolObjetivos.Fila), EvolObjetivos.DescNOC) -- OK

Eval1: if (EvolObjetivos.Fila = Column(1), EvolObjetivos.ValoraNOC) NO OK

Eval2: if (EvolObjetivos.Fila = Column(1)+1, EvolObjetivos.ValoraNOC) NO OK

Eval3: if (EvolObjetivos.Fila = Column(1)+2, EvolObjetivos.ValoraNOC) NO OK

Eval4:  if (EvolObjetivos.Fila = Column(2), EvolObjetivos.ValoraNOC) NO OK

Seguro que es algo muy simple, pero no doy con ello...

Muchas gracias!!

1 Solution

Accepted Solutions
sorrakis01
Specialist
Specialist

Hola Elena,

MIra este ejemplo, he modificado el script..... Mira si es un poco lo que quieres. No acabo de entender lo del valor numérico pero creo que es por culpa del cálcula con la dimensión que solo debe encontrar 1 valor.

Ya nos cuentas.


Saludos,

View solution in original post

19 Replies
sorrakis01
Specialist
Specialist

Hola Elena,


Que valores tienen Column(1) y Column(2)?

Te lo digo porque a lo mejor el problema es que espera texto....

Prueba poner Text(Column(1)) o al reves Num(Column(1))

Saludos,

Not applicable
Author

Hola, este es el cuadro al que he conseguido llegar, como verás Column(1) referencia a la columna Mínimo y Column(2) a la columa Maximo (que sacan valores correctos)

sorrakis01
Specialist
Specialist

Hola,

Habilidades relacionadas te sale un 2 sabes pq?

Puedes subir un ejemplo de los datos?

Saludos,

Not applicable
Author

Hola, ese es el único caso en que lo hace bien, como verás el objetivo tiene una única fila con valor 9, por lo tanto el máximo y el mínimo es el mismo, ese 2 viene de la columna "valora NOC". Adjunto una excel con datos ejemplo.

Muchas gracias

sorrakis01
Specialist
Specialist

Si añades la dimensión Fila enm la Pivot te lo hace bien?

Not applicable
Author

Sí, eso lo hace bien, lo que no he conseguido de ninguna manera es referenciar en una fórmula a los valores Mínimo y Máximo, por cierto si en lugar de referenciarlos, pongo directamente el valor de ellos en la fórmula (un 6 o un 7), sí que lo hace bien...

sorrakis01
Specialist
Specialist

No sabe interpretar que hay mas de una fila.


Si quieres luego le doy una vuelta o espera a que alguien mas lo mire.

Saludos,

Not applicable
Author

Ok, gracias

ramoncova06
Partner - Specialist III
Partner - Specialist III

que pasa si en lugar de meter el numero de la columna usas el nombre ?

Eval1: if (EvolObjetivos.Fila = Mínimo, EvolObjetivos.ValoraNOC)

Eval2: if (EvolObjetivos.Fila = Mínimo+1, EvolObjetivos.ValoraNOC)

Eval3: if (EvolObjetivos.Fila = Mínimo+2, EvolObjetivos.ValoraNOC)

Eval4:  if (EvolObjetivos.Fila = Máximo, EvolObjetivos.ValoraNOC)

y que pasa si metes el if a la expression ?

Eval1: if (EvolObjetivos.Fila = aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC), EvolObjetivos.ValoraNOC)

Eval2: if (EvolObjetivos.Fila = aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC)+1, EvolObjetivos.ValoraNOC)

Eval3: if (EvolObjetivos.Fila = aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC)+2, EvolObjetivos.ValoraNOC)

Eval4:  if (EvolObjetivos.Fila = aggr(min(EvolObjetivos.Fila), EvolObjetivos.DescNOC), EvolObjetivos.ValoraNOC)