Skip to main content
Announcements
Introducing Qlik Answers: A plug-and-play, Generative AI powered RAG solution. READ ALL ABOUT IT!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Realizar búsquedas para obtener datos con Set Analysis

Hola.

Esta es mi primera aportación a QlikCommunity, espero que sea provechosa para todos.

Os explico un problema que llevo varios días intentando resolver y no consigo darle solución.

Imaginemos que tenemos un origen de datos que en el fin es el resultado de los movimientos bancarios de varios periodos compuesto por los siguientes campos FECHA, CONCEPTO, IMPORTE, SALDO.

Si tomamos como referencia los movimientos plasmados en una libreta bancaria, quedaría de la siguiente manera y por este orden:

19/12/2013  Concepto 1  -122,18  1.209,01 €

19/12/2013 Concepto 2 -100         1.109,01 €

......

01/01/2013 Concepto n  -10    2.938,11€

01/01/2013 Concepto x  -50€  2.948,11€

La idea es que quiero mostrar en una caja de texto (e independientemente de la selección) el saldo que había a principios de año y a final de año(on su defecto la última fecha introducida en el origen de datos) usando Set Analysis.

¿Se os ocurre que expresión podemos utilizar para obtener este resultado y que sea independiente de la selección?

Un saludo

9 Replies
jolivares
Specialist
Specialist

Como ya tienes tu tabla creada y los datos organizados, puedes hacerlo de varias maneras, pero esta te puede servir:

FirstSortedValue(Saldo,Fecha)  // Te daria el saldo al incio del periodo que quieres

FirstSortedValue(Saldo,-Fecha)  // Te daria el saldo Final del periodo que quieres

Esta funcion soporta Set Analisys si es que lo requiere.  Pero creo que te puede servir para lo presentas ahora.

Not applicable
Author

Hola Javier,

El concepto de "principio de año" y "final de año" - son fechas especificas? O pueden cambiar?

Ejemplo, es el principio siempre 01/01/20XX ? y el final 12/31/20XX?

O, es el principio la primera transacción del año 20XX? y el final la ultima transacción?

Si siempre son las mismas fechas, un ejemplo simple seria:

=only({1<FECHA={$(#=YearStart(today())}},CONCEPTO={'Concepto n'}>} SALDO)

Eso te va a dar el valor de SALDO, para el CONCEPTO "Concepto n", que apareció el primer día de este año.

Es mas complicado si la transacción puede ser en una fecha diferente, o si pueden haber mas de una transacción en esa fecha.

No se si lo explique bien. Hay ciertos términos en español que no conozco muy bien.

-Rafael

Not applicable
Author

Hola Ralph.

Gracias por tu respuesta. Las fechas pueden ser cambiantes, es decir, el primer movimiento no tiene porque ser el 01/01/2013, puede ser perfectamente 03/01/2013. Al igual pasa con el último movimiento del año, no tiene porque ser el 31/12/2013.

Gracias por tu ayuda.

jolivares
Specialist
Specialist

Con esta funcion que te di puedes hacerlo sin importar cual sea la fecha.

Not applicable
Author

Hola Juan.

He probado esta función y como resultado me devuelve null.

Concretamente tengo esto FirstSortedValue(Disponible,Fecha)

Donde Disponible es el Saldo.

¿Sabes a que puede ser debido?

Not applicable
Author

Necesitas usar Set Analysis también.

Algo como esto:

=FirstSortedValue({1<YEAR={$(#=Year(today())}},CONCEPTO={'Concepto n'}>} SALDO, FECHA)

En ese ejemplo notas que hay un field (como se dice eso en español?) con el año solamente, se llama YEAR. Eso le dice a esa función que año te interesa - como esta escrito es "este" año, y concepto = 'Concepto n'

Anonymous
Not applicable
Author

Hola puedes crear dos variables donde calculas la primera fecha del año y la última fecha del año

Set vFechaInicial = peek('Fecha',0);

Set vFechaFinal = peek('Fecha',-1);

y en la expresion poner

SaldoInicial = Sum({1<Fecha = {$(vFechaInicial)}>}Saldo)

SaldoFinal = Sum({1<Fecha = {$(vFechaFinal)}>}Saldo)

jolivares
Specialist
Specialist

Mira este ejemplo...

Not applicable
Author

Gracias Juan.

Creo que esto es lo que necesitaba.

Para rizar un poco más el rizo, ¿podría introducir o limitar el año en el que deseo mostrar esta información?

Por ejemplo añadiendo Sum({$<Year=2012>} Importe)

Gracias