Skip to main content
Announcements
NEW Customer Portal: Initial launch will improve how you submit Support Cases. FIND OUT MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Cirdecp007
Creator
Creator

Forcer le filtre date par rapport à une date de parution

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.

2 Solutions

Accepted Solutions
Dref278
Creator
Creator

Cette fonction devrait vous donner la valeur souhaitée :

SUM(IF(Date=DateParution, CA_Remise_Nouveaute,0))


Cdlt,

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

View solution in original post

Cirdecp007
Creator
Creator
Author

Merci, ça marche très bien avec SUM(IF(Date=date(Date_Parution+1), CA_Remise_Nouveaute,0))

View solution in original post

12 Replies
Sabrina_V
Partner - Creator II
Partner - Creator II

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))

Cirdecp007
Creator
Creator
Author

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)

Sabrina_V
Partner - Creator II
Partner - Creator II

Est-il possible dans le script que tu rajoutes cette info ?

Cirdecp007
Creator
Creator
Author

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 😅

Sabrina_V
Partner - Creator II
Partner - Creator II

il faudrait par exemple rajouter l'info de la date max parution +1 pour chaque article 

Cirdecp007
Creator
Creator
Author

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...

Dref278
Creator
Creator

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

Pour avoir une bonne réponse, il faut poser la bonne question (Chat GPT, 2023)
Cirdecp007
Creator
Creator
Author

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.

Dref278
Creator
Creator

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.

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