Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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
Peut-être 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)
Ou :
sum({<Cpte={'1'},DateSolde=$(=max(DateSolde))>}MontantSolde) + sum({<Cpte={'2'},DateSolde=$(=max(DateSolde))>}MontantSolde) + sum({<Cpte={'3'},DateSolde=$(=max(DateSolde))>}MontantSolde)
Ou :
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)
Ou :
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)
Ou :
sum({<Cpte={'1'},DateSolde={"$(=max(DateSolde))"}>}MontantSolde) + sum({<Cpte={'2'},DateSolde={"$(=max(DateSolde))"}>}MontantSolde) + sum({<Cpte={'3'},DateSolde={"$(=max(DateSolde))"}>}MontantSolde)
Ou :
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)
Je pense que la synthaxe n'est pas loin de fonctionner. Quel est le résultat de $(=max({<Cpte={'1'}>}DateSolde)) par exemple ? Peut-être faut-il encore ajouter une fonction date() pour changer le format et l'adapter à celui attendu par DateSolde...
Oui, c'est ce que j'ai dit dans mon post.
Ce qui me questionne, c'est que Qlik est connu pour son moteur associatif, hors, là on souhaite associer des données (Date et solde) qui ne le sont pas forcément dans le modèle.
Une autre solution pourrait être de générer les données manquantes dans le script de chargement. Cela doit pouvoir se faire avec une jointure. Par contre, cela va générer de la volumétrie dans votre application.
Cdlt,
Bonjour,
J'ai réussi à générer les données manquantes dans le script mais avec une condition pour que le calcul soit juste : il doit y avoir un relevé chaque jour. J'aimerais m'affranchir de cette condition. Je vous joins le qvf. Le calcul est bon pour les comptes 1 et 2 mais pas pour le 3 (il y a des trous). Avez-vous une idée pour remplir les trous ?
Dites moi si je ne suis pas clair dans mes explications.
Bonjour,
Personne pour m'aider ?
Bonjour,
Ce n'est pas très logique que ça marche pour le 1 et le 2 mais pas pour le 3.
Je suppose qu'il y a une erreur de syntaxe sur la ligne concernant le 3.
Peux-tu nous afficher la formule que tu as écrite ?
Bonjour,
Voici le code :
Je comprends mieux.
Le code est fait dans le script de démarrage alors que je proposais des formules dans l'application (plus simple selon moi).
Je ne maitrise pas suffisamment le script de démarrage pour aider mais ce que je peux dire c'est que la formule, je pense, ne marche sur aucune des 3 lignes.
Plus précisément, j'ai remarqué que la formule ne faisait que répéter la somme finale mais ne renseignait pas les valeurs entre 2 dates.
En effet, pour les comptes 1 et 2, les dates sont consécutives donc on ne voit pas le problème mais je suis à peu près sûr que si une date (par exemple 03/09/2023 du compte 1) est modifiée en une autre (par exemple 04/09/2023 toujours pour le compte 1), il y aura un trou aussi (en 03/09/2023 dans notre exemple).
Bonjour,
Personne pour m'aider ?