Skip to main content
Announcements
Introducing a new Enhanced File Management feature in Qlik Cloud! GET THE DETAILS!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

HOW TO UPDATE THE VALUE OF A FACT IF USING (COMO ACTUALIZAR EL VALOR DE UN DATO USANDO IF)

Good afternoon,

I have a question regarding how to give value to data in specific,

I have a qvd I generated monthly balances by account number database system, what I want is to make a report where I visualize data allow some specific accounts.

the problem is that one of the accounts has sub accounts that are added to the account you want to display.

example

CTA 0001 122,000 within this value added there the two accounts 0001.01 (20,000) and 0001.02 (32,000), the value I need to see is the actual 0001 it would be 70,000

I have the idea that it should be with an if

where if tsp = 0001, I subtract to 001 the value of 0001.01 and 0001.02 and show me that value in 0001 and the CTA but show me the value generated qvd me where I keep the accumulated balance monthly.

the problem is not how to raise the idea that I have.

if you help me be the agredeseria wholeheartedly.

Thank you!!

Translated with Google Translate - Qlik Community Administrative Team

Buenas tardes,

tengo una consulta con respecto a como dar valor a un dato en especifico,

tengo un qvd que me genera los saldos mensuales por numero de cuenta de la base de datos del sistema, lo que deseo es realizar un reporte donde me permita visualizar los datos de algunas cuentas especificas.

el problema es que una de las cuentas cuenta con sub cuentas que se suman a la cuenta que deseo visualizar.

Ejemplo

cta 0001   122,000 dentro de este valor hay sumado dos cuentas la 0001.01 (20,000) y la 0001.02 (32,000), el valor que necesito ver es el real de la 0001 que seria 70,000

tengo la idea que debería de ser con un if

donde si cta= 0001, me reste a 001 el valor de la 0001.01 y la 0001.02 y que me muestre ese valor en la cta 0001 y sino que me muestre el valor que me genera el qvd donde guardo el saldo mensual acumulado.

el problema es que no se como plantear la idea que tengo.

si me ayudan se los agredeseria con todo el corazón.

Gracias!!

7 Replies
MarcoWedel

please post some sample data and the expected result.

thanks

regards

Marco

isorinrusu
Partner - Creator III
Partner - Creator III

Gloria, si conoces las cuentas que no quieres mostrar, lo puedes hacer con un if como dices, aunque puede que haya soluciones mejores (no nos has dado suficientes datos).

Supongamos que muestras un gráfico de barras donde tu dimensión es Cuenta y la expresión es sum(Valor). En este caso puedes usar la siguiente expresión en vez de sum(Valor):

if(

only(Cuenta)='0001',sum(Valor) - sum({< Cuenta={'0001.01','0001.02'} >} Valor),

sum(Valor)

)

Espero que te haya servido.

Saludos,

Sorin.

Not applicable
Author

ok, I have a QVD to me that stores data total bill each month, meaning that I sum the credits and debits me subtracts the previous balance.

[Saldo MeS Anual]:

LOAD PERCOD,

  Text(CTCOD) As [Cuenta],

  CTCOD,

  CTDES1 AS Descripcion,

  CTDEAC As [Deudor Acreedor],

  SMSALI As [Saldo Inicial],

  MOCOD,

    SMSALI + (SMDE01-SMHA01) AS ENERO,

    SMSALI + (SMDE01-SMHA01)+(SMDE02-SMHA02) AS FEBRERO

Resident SALDOMESANUAL;

STORE [Saldo MeS Anual] INTO SALDOMESANUAL.QVD (qvd);

DROP Table SALDOMESANUAL;

and my report is:

Directory;

MESCARTERA:

LOAD PERCOD  AS AÑOC,

     [Cuenta] AS CUENTAC,

     CTCOD  AS CTAC,

     Descripcion  AS DESC,

     [Saldo Inicial]  AS SALINICIALC ,

     MOCOD   AS MONEDAC,

     ENERO   AS ENEROC,

     FEBRERO AS FEBREROC,

     FROM

SALDOMESANUAL.QVD (qvd)

WHERE (CTCOD='101' OR CTCOD='101.01' OR CTCOD='101.02' OR CTCOD='401'

OR CTCOD='401.05' OR CTCOD='101.17');

but the account table 101 in the BD sum me subaccounts that are under it so I need recontruir your balance, subtracting 101.01 and 101.02 and that the accounts which are not listed as 0 me

How can I do that?

thank you very much for your time and help!

Not applicable
Author

Hola Sorin,

muchas gracias por la información, la probare ahora mismo.

bueno lo que deseo mostrar es una tabla asi

     

CUENTAAÑOMONEDANOMBRESALDO ANTERIORENEROFEBRERO
101.012015DFTCAJA DISPONIBLEL 68,000.00L 57,000.00L 48,800.00
101.012015DFTCAJA CHICA DEPTO DE COMPRASL 18,000.00L 25,000.00L 7,200.00
101.022015DFTCAJA CHICA DEPTO DE VENTASL 30,000.00L 12,000.00L 18,600.00
101.172015DFTCAJA DISPONIBLE EN BANCOL 230,000.00L 128,000.00L 273,000.00
4012015DFTVENTASL 105,000.00L 197,400.00L 285,100.00
401.052015DFTVENTAS DE CONTADOL 105,000.00L 197,400.00L 285,100.00
5012015DFTCHEQUES EN DEVOLUCIONL. 0L.0L.0

     

Pero sin incluir las cuentas que no tengan movimiento en ningún mes.

para los saldos mensuales estoy utilizando un QVD que me suma al saldo inicial los créditos y resta los débitos según el tipo de cuenta, dando así el saldo del mes.

Gracias!!

isorinrusu
Partner - Creator III
Partner - Creator III

Hola Gloria,

¿Esto es una pregunta diferente a la primera verdad? ¿La primera está entonces resuelta?

Te contesto:

Para no mostrar las cuentas que no tienen movimientos basta con activar la opción "Suprimir Valores Cero" en la pestaña de Presentación.

Aquí doy por supuesto que una cuenta sin "movimiento" se refiere a una cuenta que no tiene saldo.

¿Es esto lo que buscas?

Not applicable
Author

Hola Sorin,

no, es la misma pregunta, intente con lo que me sugeriste pero no realiza cambio alguno, no se si es porque los datos son tomados de un qvd que me almacena los saldos mensuales de cada cuenta.

igual con la parte de suprimir valores cero, ese lo tengo activado y siempre salen las cuentas con valores cero

gracias por tu ayuda!

isorinrusu
Partner - Creator III
Partner - Creator III

Gloria, ¿qué formato tienen tus números? Veo que todos tienen una "L" delante. ¿Eso está puesto en el formato del número, o es una cadena de texto?

Parece ser una cadena de texto, ya que está alineado a la izquierda.

Debes quitar esa L en el script por ejemplo de la siguiente manera:

subfield(VALOR,' ',2) as VALOR

Sin embargo, veo que para enero y febrero el formato es "L.0". Ahí deberías volver a cargar la tabla y esta vez coger el valor así:

subfield(VALOR,'.',2) as VALOR


Si es una cadena de texto, el valor nunca será 0, ya que es un string no vacío. ¿Me lo puedes confirmar?