Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bonjour à tous,
Je cherche à filtrer mes mesures en fonction de la date de parution de mon article.
Je veux donc que la date calendaire de facturation soit forcée sur la date de parution de chaque article + un jour soit le lendemain de la parution.
J'ai réussi à afficher le bon résultat lorsque je sélectionne un seul article grâce à la formule suivante :
sum({<Date={'$(=date(Date_Parution+1))'}, Source={'Facturation'}>}CA_Remise_Nouveaute)
En revanche, si je sélectionne plusieurs articles, $(=date(Date_Parution+1)) ne me renvoie pas la date de l'article sur la ligne mais un tiret (-) ce qui donne un CA à zéro sur toutes les lignes.
Auriez-vous une idée svp ?
Pour information, Date et Date_Parution sont des champs et CA_Remise_Nouveaute une mesure.
J'utilise également le code de l'article sous le champ ISBN s'il faut y faire référence quelque part dans ma formule.
Je vous remercie par avance de votre aide.
Cette fonction devrait vous donner la valeur souhaitée :
SUM(IF(Date=DateParution, CA_Remise_Nouveaute,0))
Cdlt,
Merci, ça marche très bien avec SUM(IF(Date=date(Date_Parution+1), CA_Remise_Nouveaute,0))
Bonjour,
Je me demande si tu ne devrais pas utiliser un AGGR de ce type :
SumAggr(sum({<Date={'$(=date(Date_Parution+1))'}, Source={'Facturation'}>}CA_Remise_Nouveaute),article))
Merci pour cette idée mais je n'ai pas réussi à aller au bout.
J'ai utilisé sum({<Date={'$(=date(max(aggr(sum(Date_Parution+1),ISBN))))'}, Source={'Facturation'}>}CA_Remise_Nouveaute) plutôt que sum(aggr(sum({<Date={'$(=date(Date_Parution+1))'}, Source={'Facturation'}>}CA_Remise_Nouveaute),ISBN)) car le problème est du côté de Date={'$(=date(Date_Parution+1))'} mais cela ne convient pas.
J'ai bien la somme des dates avec Date={'$(=date(sum(aggr(sum(Date_Parution+1),ISBN))))'} et la date maximum avec Date={'$(=date(max(aggr(sum(Date_Parution+1),ISBN))))'} qui s'applique à tous les articles mais qui ne donne pas la Date_Parution + 1 de chaque article.
Sauf erreur, je ne peux pas chercher l'ISBN de l'article dans aggr(sum(Date_Parution+1),ISBN) mais seulement la somme, valeur max, mini, etc de sum(Date_Parution+1)
Est-il possible dans le script que tu rajoutes cette info ?
Je peux ajouter des éléments via le gestionnaire de données et le chargement de données de l'application mais je ne sait pas trop quoi y mettre 😅
il faudrait par exemple rajouter l'info de la date max parution +1 pour chaque article
Le problème serait le même puisque la formule n'accepte pas de filtrer sur une date qui est variable.
En effet, j'ai donné Date_Parution + 1 en exemple mais avec Date_Parution qui est déjà un champ, cela ne fonctionne pas mieux.
Il faudrait ajouter des colonnes de mesure dans la table de données en prenant la donnée CA_Remise_Nouveaute filtré sur la Date (de facturation) = Date_Parution de chaque ISBN et malheureusement je ne sais pas comment le faire sachant que je dois ajouté plusieurs périodes et plusieurs mesures différentes.
Pour le moment, je préfère rester sur ma formule qui marche avec un seul article sélectionné mais que je peux facilement déployer avec des périodes et des mesures différentes en espérant pouvoir trouver une astuce.
Ce qui est étrange, c'est que la référence seule Date_Parution dans une colonne de mon tableau renvoie bien une date différente par ISBN mais je n'ai pas trouvé comment mettre simplement Date = Date_Parution ce qui me semble étonnant.
Peut-être faut-il transformer le champ Date_Parution en mesure pour que cela fonctionne...
Bonjour,
Avez vous essayer de faire l'agrégation sur la date de parution+1 (en faisant le calcul de cette date dans le script comme le proposait Sabrina) ?
Cdlt
Bonjour,
Comme je le disais dans mon message précédent, ce n'est pas la date de parution qui pose problème car j'ai bien une date de parution unique par article dans les tables de données champ ISBN (pour l'article) et Date_Parution.
J'ai également un champ Date qui, lui, est sur toutes les lignes de facturation.
Ce que je veux, c'est aller chercher la ligne de facturation ISBN/Date qui correspond à ISBN/Date_Parution (ou Date_Parution + 1 ou la période d'un mois après la parution, ...). Si je rajoute un champ Date_Parution2 égal à Date_Parution + 1 dans mes données, je ne pourrais toujours pas filtrer Date = Date_Parution2 puisque ça ne marche pas avec Date = Date_Parution.
La problématique pour moi, c'est que Qlik ne filtre pas sur l'ISBN lorsqu'il y en a plusieurs. Il faudrait donc faire une recherche de la ligne avec l'ISBN dans aggr(Date_Parution+1,ISBN) plutôt que de faire une fonction sum(), max() ou autre mais je ne crois pas que ça soit possible.
Vous le dites vous même, il n'y a qu'une date de parution par article. Faire une aggrégation par article (aggr (Date_Parution+1,ISBN) ne vous sera donc d'aucune utilité.
Pour bien comprendre, pourriez vous vous décrire les tables concernées et expliquer ce que vous voulez faire fonctionnellement.
Quand je lis votre dernier message je comprends qu'il y a une table des articles, avec une date de parution, et une table de facturation avec une date, mais sans le code article et que vous essayez de trouver la ligne de facturation de chaque article en considérant que date de facturation = Date de parution+1.
Par contre, si je lis le premier, je comprends tout autre chose.
Il sera plus facile de vous aider en ayant des éléments de contexte (Modèle de données, besoin) plutôt que de dépatouiller une formule sans savoir comment sont liés (ou pas ) les champs concernés par cette formule.