Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
hcabrera
Contributor III
Contributor III

Como suprimir registros con valores de expresiones = 0 ??

Buenas Tardes Amigos,

Tengo una tabla pivotante con 3 campos de expresiones distintas con set análisis mas o menos así:

Expr1: Saldo Inicial:

sum({<FechaDcto = {"<=$(=vFecSaldoInicial)"}, AñoDcto= >}TotalDocumento)

+ sum({<FechaPago = {"<=$(=vFecSaldoInicial)"}, FechaAnulaPago = {"0"} + {">$(=vFecSaldoInicial)"}>} TotalPago)

+ sum({<FechaAjuste = {"<=$(=vFecSaldoInicial)"},FechaAnulaAjuste = {"0"} + {">$(=vFecSaldoInicial)"}>}TotalAjuste)

Expr2 Ventas

=sum({<FechaDcto = {">=$(=vFechaCorteI)<=$(=vFechaCorteF)"}, AñoDcto=>}TotalDocumento)

Expr3 Saldo Final

=sum({<FechaDcto = {"<=$(=vFecSaldoFinal)"}, AñoDcto=>}TotalDocumento)

+ sum({<FechaPago = {"<=$(=vFecSaldoFinal)"}, FechaAnulaPago = {"0"} + {">$(=vFecSaldoFinal)"}>} TotalPago)

+ sum({<FechaAjuste = {"<=$(=vFecSaldoFinal)"},FechaAnulaAjuste = {"0"} + {">$(=vFecSaldoFinal)"}>}TotalAjuste)

Lo que necesito hacer es que todos los registros que tenga valor 0 en las 3 expresiones no se visualicen en la tabla pivotante.

Gracias por su ayuda,

Henry C.

1 Solution

Accepted Solutions
JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Henry...

A lo que dice Sacosta usa esta dimensión calculada


=if(Column(1)>=0 and Column(2)> 0 and Column(3)>=0,TIPO, Null() )


Seleccionando esa dimensión en la pestaña, marca la casilla Suprimir cuando el valor es nulo


Saludos

Joaquín

View solution in original post

8 Replies
jvitantonio
Luminary Alumni
Luminary Alumni

Hola Henry,

En las propiedades de la tabla, ve a la solapa "Presentacion" y hay una opticion que dice Suprimir Valores en cero o en ingles "Suppress Zero-Values". No estoy seguro como es la traduccion precisa en castellano.

Saludos

Juan

hcabrera
Contributor III
Contributor III
Author

Gracias por tu respuesta Juan,

lo he intentado ya, pero algo que debí aclarar al crear la discusión es que son más de 3 expresiones, la validación es únicamente cuando estas 3 expresiones tenga valor 0 no mostrar en la  tabla pivotante, así las otras expresiones a parte de las 3, tengan valores, se debería excluir de la tabla todo el registro.

saludos,

Henry C.

sacosta5
Contributor III
Contributor III

Hola Hery...

creo que podría servirte habilitar la siguiente condición en la dimensión:

=if(Column(1)>=0 and Column(2)> 0 and Column(3)>=0,TIPO)

Column(1),Column(2),Column(3): serían las 3 expresiones a analizar (fijate en que orden están si tenes otras expresiones).

TIPO: Sería la dimensión que estás utilizando.


Saludos

ecolomer
Master II
Master II

Podrías habilitar una variable que sea Null cuando los tres resultados sean cero y luego suprimir los valores Null.

O bien simplemente a través de una pregunta, de forma que si alguno de ello no es cero, presentes el valor y si todos son cero, nada (Null()).

jvitantonio
Luminary Alumni
Luminary Alumni

En ese caso tienes que evaluar cada expresion y si es 0 asignar null() a la misma. Esto lo puedes hacer en el script o en la tabla. Para hacerlo en la tabla, puedes intentar lo siguiente:

Expresion 1:

if(

sum({<FechaDcto = {"<=$(=vFecSaldoInicial)"}, AñoDcto= >}TotalDocumento)

+ sum({<FechaPago = {"<=$(=vFecSaldoInicial)"}, FechaAnulaPago = {"0"} + {">$(=vFecSaldoInicial)"}>} TotalPago)

+ sum({<FechaAjuste = {"<=$(=vFecSaldoInicial)"},FechaAnulaAjuste = {"0"} + {">$(=vFecSaldoInicial)"}>}TotalAjuste)

= 0 OR

sum({<FechaDcto = {">=$(=vFechaCorteI)<=$(=vFechaCorteF)"}, AñoDcto=>}TotalDocumento)

= 0

OR

sum({<FechaDcto = {"<=$(=vFecSaldoFinal)"}, AñoDcto=>}TotalDocumento)

+ sum({<FechaPago = {"<=$(=vFecSaldoFinal)"}, FechaAnulaPago = {"0"} + {">$(=vFecSaldoFinal)"}>} TotalPago)

+ sum({<FechaAjuste = {"<=$(=vFecSaldoFinal)"},FechaAnulaAjuste = {"0"} + {">$(=vFecSaldoFinal)"}>}TotalAjuste)

= 0

, NULL()  //THEN

// ELSE

sum({<FechaDcto = {"<=$(=vFecSaldoInicial)"}, AñoDcto= >}TotalDocumento)

+ sum({<FechaPago = {"<=$(=vFecSaldoInicial)"}, FechaAnulaPago = {"0"} + {">$(=vFecSaldoInicial)"}>} TotalPago)

+ sum({<FechaAjuste = {"<=$(=vFecSaldoInicial)"},FechaAnulaAjuste = {"0"} + {">$(=vFecSaldoInicial)"}>}TotalAjuste)

)

Con la expresion 2 harias lo mismo pero remplazaria la ultima parte del if (lo que esta en verde), con la segunda expresion, y lo mismo para la tercera.

Hay formas mas limpias de hacerlos, como asigar esto a variables para que no se vea tan mal las expresiones o calculandolo directamente en el script, pero esto deberia resolver tu problema.

Saludos

Juan

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Hola Henry...

A lo que dice Sacosta usa esta dimensión calculada


=if(Column(1)>=0 and Column(2)> 0 and Column(3)>=0,TIPO, Null() )


Seleccionando esa dimensión en la pestaña, marca la casilla Suprimir cuando el valor es nulo


Saludos

Joaquín

hcabrera
Contributor III
Contributor III
Author

Gracias a todos por su ayuda !!

Se resolvió con la dimensión calculada como lo indica Joaquin, pero también validando cada expresión como lo indicó Juan, hay que tomar mucho en cuenta los formatos de los cálculos resultantes puesto que retornaban valores 0 no exactos sino por ejemplo 0.00000000000456.

Saludos,

Henry C.

JoaquinLazaro
Partner - Specialist II
Partner - Specialist II

Perfecto Henry, de eso se trata.

Marca una respuesta como correcta para no dejar abierto el hilo