Skip to main content
Announcements
NEW: Seamless Public Data Sharing with Qlik's New Anonymous Access Capability: TELL ME MORE!
cancel
Showing results for 
Search instead for 
Did you mean: 
Bckaps
Contributor II
Contributor II

Calcul solde bancaire cumulé

Bonjour à tous,

Je souhaite faire un suivi de solde de trois comptes bancaires.
Voici les données :
Cpte       DateSolde        MontantSolde
1              1/sept/23         5000
1              2/sept/23           5200
1              03/sept/23           5100
2              01/sept/23           2000
2              02/sept/23           2100
3              01/sept/23           1000

Quand il n'y a pas d'opération sur le compte, il n'y a pas de données. Le dernier solde reste en vigueur. 
Ainsi, au 05/sept/20223 par exemple, j'ai bien sur l'ensemble de mes comptes 5100 + 2100 + 1000 = 8 200 €.
Ma problématique : comment je peux calculer ce solde global à une date donnée par une variable (dans notre exemple le 05/09/2023).

Merci d'avance pour votre aide.

Le résultat attendu serait 5100 + 2100 + 1000 = 8 200

17 Replies
Cirdecp007
Creator
Creator

Bonjour,

Tu peux essayer quelque chose comme ça :

sum({<Cpte={'1'},DateSolde=max({<Cpte={'1'}>}DateSolde)>}MontantSolde) + sum({<Cpte={'2'},DateSolde=max({<Cpte={'2'}>}DateSolde)>}MontantSolde) + sum({<Cpte={'3'},DateSolde=max({<Cpte={'3'}>}DateSolde)>}MontantSolde)

Je pense même que ça peut suffir :

sum({<Cpte={'1'},DateSolde=max(DateSolde)>}MontantSolde) + sum({<Cpte={'2'},DateSolde=max(DateSolde)>}MontantSolde) + sum({<Cpte={'3'},DateSolde=max(DateSolde)>}MontantSolde)

Normalement ta date dans la variable vDate devrait filtrer directement DateSolde si c'est comme les variables de dates que j'utilise.

Si ce n'est pas le cas il faut faire :

sum({<Cpte={'1'},DateSolde=max({<Cpte={'1'},DateSolde={"<=$(vDate)"}>}DateSolde)>}MontantSolde) + sum({<Cpte={'2'},DateSolde=max({<Cpte={'2'},DateSolde={"<=$(vDate)"}>}DateSolde)>}MontantSolde) + sum({<Cpte={'3'},DateSolde=max({<Cpte={'3'},DateSolde={"<=$(vDate)"}>}DateSolde)>}MontantSolde)

Bckaps
Contributor II
Contributor II
Author

Merci pour ta réponse.

Cela ne fonctionne pas

Bckaps
Contributor II
Contributor II
Author

L'idée du résultat : 

Bckaps_0-1695819539685.png

 

Cirdecp007
Creator
Creator

Peut-être est-ce dû au format de date dans la variable par rapport à celui des dates DateSolde qui ne sont pas identiques.

Est-ce que tu obtiens une erreur "-" ou une valeur qui n'est pas la bonne ?

Bckaps
Contributor II
Contributor II
Author

Je te joins le fichier ça sera plus simple.

Bckaps
Contributor II
Contributor II
Author

Bonjour,

Personne pour une solution ?

Dref278
Creator II
Creator II

C'est pas ce qu'il y a de plus propre, et peut être que quelqu'un aura une solution plus aboutie, avec , sans doute, une formule basée sur des agrégations  et le mot clé TOTAL. Néanmoins, celle-ci fonctionne :

SUM(IF(DateSolde=aggr(NODISTINCT Date(Max(DateSolde)),Cpte),MontantSolde, 0))

Dref278_1-1696320642221.png

Elle vous donne le solde Courant.

 

Si vous souhaitez pouvoir choisir la date de visualisation (Par exemple voir les solde au 02/09/2023),  vous pouvez utiliser cette formule :

SUM(IF(DateSolde=aggr(NODISTINCT Date(Max({<DateSolde={"<=$(vDate)"}>}DateSolde)),Cpte),MontantSolde, 0))

 

Celle-ci sera dépendante de la valeur de la variable vDate.

 

Par contre, pour avoir le rendu de votre tableau et avoir le solde à toutes les dates,  je sèche un peu pour l'instant.

J'éditerai le post si je trouve quelque chose.

Cdlt,

 

 

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)
Bckaps
Contributor II
Contributor II
Author

C'est quoi Dim ?

Bckaps
Contributor II
Contributor II
Author

Bonjour,

Ta solution ne fonctionne pas dans le cadre dans calcul de solde journalier (voir tableau résultat ci-dessus)