Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Contador en base a un maximo y mínimo de un campo

Parto de un fichero que contiene los siguientes campos (Adjunto fichero Excel) :

Tipo centroComarcaCod_CentroCentroId PacienteOrden FormFecha_RegistroCod_Registro_FormEstudioBloqueItemValor ItemTotal BloqueTotal Form

Un Id Paciente puede contener uno o varios formularios registrados, cuya enumeración y orden lo define el campo Orden Form.

Todos los formularios estan compuestos por las siguientes dimensiones:

Estudio (Nombre) --> Bloque (Contienen 4 bloques. A,B,C,D) --> Item (Contienen 12. [Aunque relamente no es relevante para el caso diré que hay 3 para A, 2 para B, 3 para C y 4 para D] )

Y cada Item tiene un Valor Item asociado.

En este fichero tendríamos 2 [Id Paciente] uno de ellos tiene 2 [Orden Form] y el otro tan solo uno.

=================================

Lo que intento extraer es:

- Un contador de pacientes

- Sobre pacientes que tengan asociado mas de un [Orden Form] --> Orden Form >1 o >=2 ( Lo que más rabia de )

- Que tengan algún [Valor Item] =2 (o >=2 según lo que quiera analizar, en este caso usaremos un valor fijo que después arreglaría para fuera tomado de una variable)

               . Entiendo que habría que aplicar una función P() sobre posibles [Id Paciente] que tengan asociadas estas dos condiciones

- Que se pueda calcular para el Primer o el Ultimo [Orden Form]

===================================

Parecía que la expresión

=Count({<[Id Paciente]=P({<[Orden Form]={">=2"},[Valor Item]={2}>}[Id Paciente])>}

DISTINCT

Aggr(FirstSortedValue([Id Paciente],-[Orden Form]),Item,Bloque,Estudio,Centro))

podía calcularlo pero aparentemente no distingue si la condición se da en el primer o último formulario

Aggr(FirstSortedValue([Id Paciente],[Orden Form]),Bloque,Estudio,Centro)


o


Aggr(FirstSortedValue([Id Paciente],-[Orden Form]),Bloque,Estudio,Centro)


Espero que podáis echarme un cable.


Estoy disponible para cualquier aclaración.

Saludos,

Lander

4 Replies
PabloOrtiz
Partner - Creator
Partner - Creator

Hola, ¿faltan unas comillas en {'2'}?

=Count({<[Id Paciente]=P({<[Orden Form]={">=2"},[Valor Item]={2}>}[Id Paciente])>}

DISTINCT

Aggr(FirstSortedValue([Id Paciente],-[Orden Form]),Item,Bloque,Estudio,Centro))

PabloOrtiz
Partner - Creator
Partner - Creator

Hola, creo que no es necesario usar el operador P

=Count({<[Orden Form]={'>=2'},[Valor Item]={'2'}>}

DISTINCT

Aggr(FirstSortedValue([Id Paciente],-[Orden Form]),Item,Bloque,Estudio,Centro))

Anonymous
Not applicable
Author

Muchas gracias por tu aportación Pablo.

Pero me temo que no es el problema pues una expresión del tipo:

=Count({<[Id Paciente]=P({<[Orden Form]={">=1"},[Valor Item]={'0'}>}[Id Paciente])>}

DISTINCT

Aggr(FirstSortedValue([Id Paciente],[Orden Form]),Item,Bloque,Estudio,Centro))


(Calculo sobre [Id Paciente] con cualquier número de [Orden Form] y [Valor Item]=0 en el primer [Orden Form] --> FirstSortedValue([Id Paciente],[Orden Form]))

debería dar como resultado 2 y el que muestra la tabla es un nulo.

Tal como indico en las propiedades de la expresión de cálculo es posible que esté en el camino equivocado...

La expresión es muy engañosa y requiere permutar valores para asegurar que resulta bien en cualquier condición.

Anonymous
Not applicable
Author

Hola Pablo,

Aplica la misma pega que en tu anterior aportación.

Muchas gracias!

Lander