Skip to main content
Woohoo! Qlik Community has won “Best in Class Community” in the 2024 Khoros Kudos awards!
Announcements
Nov. 20th, Qlik Insider - Lakehouses: Driving the Future of Data & AI - PICK A SESSION
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Sobre la función Above

Uso Above para hacer un acumulado de facturación de un mes

Así

Dia    // Facturacion // Acumulada

1  //  Fac  1 // Acumunlada 1

2  // Fac 2  // Above(Acumulada) +Fac2

En principio bien.

El problema es que solo puedo llamar a la expresión de forma literal 'Acumulada' , si en la etiqueta de la expresión tengo algo como 'Acumulada ' & year(vFecha_trabajo), la función Above deja de funcionar, o no se qué poner de argumento para que funcione.

Y otra cosa, no se porqué con Tabla simple no funciona bien, suma, pero lo hace mal. Necesito que sea una tabla pivotante para que funcione bien. El inconveniente principal es que en la pivotante no puedo ocultar columnas de expresiones intermedias que necesito.

saludos

3 Replies
jolivares
Specialist
Specialist

Lo que sucede es que estas usando funciones para determinar el nombre de la columna.  Los puedes hacer usando una variable que contenga el nombre.  Otra forma es una variable que contenga la expresion que estas usando, lo que es una mejor practica, y la usas para ambos casos.

Con el tema de que no esta sumando correctamente, es posible que necesites hacer una Aggr con lo que quieres.

De todas formas lo mejor seria que publiques un qvw para poder ayudarte mejor.

Not applicable
Author

No se si hoy podré probarlo o podré preparar un ejemplo si no me sale bien, pero en principio me defino una variable

Variable1= 'Acumulada ' & year(vFecha_trabajo)

Nombre de la columna =Variable1

y

Above(Variable1) +Fac2

así?

Intentaré probarlo hoy, gracias

etendero
Partner - Creator
Partner - Creator

Hola Vinyals,

En principio, en las tablas simples no hace falta que utilices Above para acumular, puesto que en la pestaña de "Expresiones" tienes un grupo de opciones "Acumulación" que te lo hace automáticamente.

En las tablas pivotantes si tendrías que montarlo con Above, porque este grupo de opciones está deshabilitado.

En este caso, la fórmula que yo utilizaría para acumular sería: RangeSum(Importe, Above(TOTAL Acumulado))

Donde Importe es otra expresión/columna donde está la formula que se quiere acumular (si no la tienes, sustitúyela por dicha formula) y Acumulado, la columna que muestra el acumulado. RangeSum es importante para que muestre la primera fila correctamente.

Si utilizas etiquetas dinámicas en las expresiones, puedes sustituir el nombre de la columna por Column(n), donde 'n' es el número de la columna actual (de acumulado), teniendo en cuenta que si cambias la posición de esta expresión, tendrás que cambiar también este número.

También puedes referenciar tu etiqueta dinámica como: $(='[Acumulada ' & year(vFecha_trabajo) & ']')

Ten cuidado con estas funciones inter-registro y las tablas pivotantes, puesto que si pivotas las dimensiones, las expandes o contraes, puede que no te muestren el resultado que esperas.

Un saludo y espero haberte solucionado el problema.