Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Déterminer le nombre d'ajout et de suppression entre deux périodes

Bonjour à tous,

Et d'avance merci pour vos réponses.

J'ai un assortiment de produits sur le mois de juin et un autre assortiment pour le mois de juillet.

Je dois calculer l'écart entre ses deux assortiments, j'utilise la formule ci-dessous qui marche bien

Count({$< [YearMonth] = {'$(=(Max([YearMonth])))'}>} Produits)-Count( {$<[YearMonth] = {'$(=addmonths(Max([YearMonth]),-1))'}>}Produits)

Je dois ensuite déterminer le nombre de produit ajouté en juillet vs juin et le nombre de produits supprimer en juillet vs juin

En gros je dois arriver à ce résultat avec l'exemple ci-dessous

Écart assortiment Juillet vs juin : +21

dont 34 ajouts de produits

dont 13 suppressions

J'ai essayé d'utiliser les fonction p() et e() mais je n'arrive pas au résultat voulus

[Assortiment]:

Load * Inline

[

Mois, Produits

01/06/2017,1
01/06/2017,2
01/06/2017,3
01/06/2017,4
01/06/2017,5
01/06/2017,6
01/06/2017,7
01/06/2017,8
01/06/2017,9
01/06/2017,10
01/06/2017,11
01/06/2017,12
01/06/2017,13
01/06/2017,14
01/06/2017,15
01/06/2017,16
01/06/2017,17
01/06/2017,18
01/06/2017,19
01/06/2017,20
01/06/2017,21
01/06/2017,22
01/06/2017,23
01/06/2017,24
01/06/2017,25
01/06/2017,26
01/06/2017,27
01/06/2017,28
01/06/2017,29
01/06/2017,30
01/06/2017,31
01/06/2017,32
01/06/2017,33
01/06/2017,34
01/06/2017,35
01/06/2017,36
01/06/2017,37
01/06/2017,38
01/06/2017,39
01/06/2017,40
01/06/2017,41
01/06/2017,42
01/06/2017,43
01/06/2017,44
01/06/2017,45
01/06/2017,46
01/06/2017,47
01/06/2017,48
01/06/2017,49
01/06/2017,50
01/07/2017,1
01/07/2017,2
01/07/2017,3
01/07/2017,4
01/07/2017,5
01/07/2017,6
01/07/2017,7
01/07/2017,8
01/07/2017,10
01/07/2017,11
01/07/2017,12
01/07/2017,14
01/07/2017,15
01/07/2017,16
01/07/2017,17
01/07/2017,20
01/07/2017,21
01/07/2017,22
01/07/2017,24
01/07/2017,25
01/07/2017,28
01/07/2017,29
01/07/2017,30
01/07/2017,33
01/07/2017,34
01/07/2017,36
01/07/2017,37
01/07/2017,38
01/07/2017,40
01/07/2017,42
01/07/2017,43
01/07/2017,44
01/07/2017,45
01/07/2017,46
01/07/2017,47
01/07/2017,48
01/07/2017,50
01/07/2017,51
01/07/2017,52
01/07/2017,53
01/07/2017,54
01/07/2017,55
01/07/2017,56
01/07/2017,57
01/07/2017,58
01/07/2017,59
01/07/2017,60
01/07/2017,61
01/07/2017,62
01/07/2017,63
01/07/2017,64
01/07/2017,65
01/07/2017,66
01/07/2017,67
01/07/2017,68
01/07/2017,69
01/07/2017,70
01/07/2017,71
01/07/2017,72
01/07/2017,73
01/07/2017,74
01/07/2017,75
01/07/2017,76
01/07/2017,77
01/07/2017,78
01/07/2017,79
01/07/2017,80
01/07/2017,81
01/07/2017,82
01/07/2017,83
01/07/2017,84

]

Je reste dispo si besoin

Cordialement

1 Solution

Accepted Solutions
lcloatre
Partner - Creator III
Partner - Creator III

Si ça peut te faire gagner du temps :

ASSORTIMENT:

Load * Inline [

YearMonth, Produits

01/06/2017 , 1

01/06/2017 , 2

01/06/2017 , 3

01/06/2017 , 4

01/06/2017 , 5

01/06/2017 , 6

01/06/2017 , 7

01/06/2017 , 8

01/06/2017 , 9

01/06/2017 , 10

01/06/2017 , 11

01/06/2017 , 12

01/06/2017 , 13

01/06/2017 , 14

01/06/2017 , 15

01/06/2017 , 16

01/06/2017 , 17

01/06/2017 , 18

01/06/2017 , 19

01/06/2017 , 20

01/06/2017 , 21

01/06/2017 , 22

01/06/2017 , 23

01/06/2017 , 24

01/06/2017 , 25

01/06/2017 , 26

01/06/2017 , 27

01/06/2017 , 28

01/06/2017 , 29

01/06/2017 , 30

01/06/2017 , 31

01/06/2017 , 32

01/06/2017 , 33

01/06/2017 , 34

01/06/2017 , 35

01/06/2017 , 36

01/06/2017 , 37

01/06/2017 , 38

01/06/2017 , 39

01/06/2017 , 40

01/06/2017 , 41

01/06/2017 , 42

01/06/2017 , 43

01/06/2017 , 44

01/06/2017 , 45

01/06/2017 , 46

01/06/2017 , 47

01/06/2017 , 48

01/06/2017 , 49

01/06/2017 , 50

01/07/2017 , 1

01/07/2017 , 2

01/07/2017 , 3

01/07/2017 , 4

01/07/2017 , 5

01/07/2017 , 6

01/07/2017 , 7

01/07/2017 , 8

01/07/2017 , 10

01/07/2017 , 11

01/07/2017 , 12

01/07/2017 , 14

01/07/2017 , 15

01/07/2017 , 16

01/07/2017 , 17

01/07/2017 , 20

01/07/2017 , 21

01/07/2017 , 22

01/07/2017 , 24

01/07/2017 , 25

01/07/2017 , 28

01/07/2017 , 29

01/07/2017 , 30

01/07/2017 , 33

01/07/2017 , 34

01/07/2017 , 36

01/07/2017 , 37

01/07/2017 , 38

01/07/2017 , 40

01/07/2017 , 42

01/07/2017 , 43

01/07/2017 , 44

01/07/2017 , 45

01/07/2017 , 46

01/07/2017 , 47

01/07/2017 , 48

01/07/2017 , 50

01/07/2017 , 51

01/07/2017 , 52

01/07/2017 , 53

01/07/2017 , 54

01/07/2017 , 55

01/07/2017 , 56

01/07/2017 , 57

01/07/2017 , 58

01/07/2017 , 59

01/07/2017 , 60

01/07/2017 , 61

01/07/2017 , 62

01/07/2017 , 63

01/07/2017 , 64

01/07/2017 , 65

01/07/2017 , 66

01/07/2017 , 67

01/07/2017 , 68

01/07/2017 , 69

01/07/2017 , 70

01/07/2017 , 71

01/07/2017 , 72

01/07/2017 , 73

01/07/2017 , 74

01/07/2017 , 75

01/07/2017 , 76

01/07/2017 , 77

01/07/2017 , 78

01/07/2017 , 79

01/07/2017 , 80

01/07/2017 , 81

01/07/2017 , 82

01/07/2017 , 83

01/07/2017 , 84

];

ASSORTIMENT_MOIS:

NoConcatenate

LOAD Produits,

     'X' as 201706

Resident ASSORTIMENT

where YearMonth = '01/06/2017';

Join

LOAD Produits,

     'X' as 201707

Resident ASSORTIMENT

where YearMonth = '01/07/2017';

View solution in original post

9 Replies
lcloatre
Partner - Creator III
Partner - Creator III

Boris,

J'arrive à ce résultat :

Dimension : Produits

Expression (dans l'ordre) :

Juin 2017 : =Count({<YearMonth={'01/06/2017'} >}   Produits)

Juillet 2017 : =Count({<YearMonth={'01/07/2017'} >}   Produits)

Suppression : =If(Column(2)-Column(1)<0,1, 0)

Ajout : =If(Column(2)-Column(1)>0,1,0)

Capture5.JPG

Anonymous
Not applicable
Author

Bonjour Laurent et merci pour ta réponse,

Pense tu qu'il est possible de retrouver les ajouts et les suppression avec un set ?

Car j'ai juste besoin d'afficher la nombre d'ajout et de suppression dans un kpi ou objet texte

Merci d'avance

lcloatre
Partner - Creator III
Partner - Creator III

Je pense que c'est possible mais il faudrait créer une table à l'image de mon tableau pour identifier les produits par periode.

Puis, comparer les 2 périodes pour calculer les ajouts et les suppressions.

Anonymous
Not applicable
Author

Merci encore une fois pour ta réponse je vais faire la création de cette table dans le script pour la réutiliser dans un set

lcloatre
Partner - Creator III
Partner - Creator III

Si ça peut te faire gagner du temps :

ASSORTIMENT:

Load * Inline [

YearMonth, Produits

01/06/2017 , 1

01/06/2017 , 2

01/06/2017 , 3

01/06/2017 , 4

01/06/2017 , 5

01/06/2017 , 6

01/06/2017 , 7

01/06/2017 , 8

01/06/2017 , 9

01/06/2017 , 10

01/06/2017 , 11

01/06/2017 , 12

01/06/2017 , 13

01/06/2017 , 14

01/06/2017 , 15

01/06/2017 , 16

01/06/2017 , 17

01/06/2017 , 18

01/06/2017 , 19

01/06/2017 , 20

01/06/2017 , 21

01/06/2017 , 22

01/06/2017 , 23

01/06/2017 , 24

01/06/2017 , 25

01/06/2017 , 26

01/06/2017 , 27

01/06/2017 , 28

01/06/2017 , 29

01/06/2017 , 30

01/06/2017 , 31

01/06/2017 , 32

01/06/2017 , 33

01/06/2017 , 34

01/06/2017 , 35

01/06/2017 , 36

01/06/2017 , 37

01/06/2017 , 38

01/06/2017 , 39

01/06/2017 , 40

01/06/2017 , 41

01/06/2017 , 42

01/06/2017 , 43

01/06/2017 , 44

01/06/2017 , 45

01/06/2017 , 46

01/06/2017 , 47

01/06/2017 , 48

01/06/2017 , 49

01/06/2017 , 50

01/07/2017 , 1

01/07/2017 , 2

01/07/2017 , 3

01/07/2017 , 4

01/07/2017 , 5

01/07/2017 , 6

01/07/2017 , 7

01/07/2017 , 8

01/07/2017 , 10

01/07/2017 , 11

01/07/2017 , 12

01/07/2017 , 14

01/07/2017 , 15

01/07/2017 , 16

01/07/2017 , 17

01/07/2017 , 20

01/07/2017 , 21

01/07/2017 , 22

01/07/2017 , 24

01/07/2017 , 25

01/07/2017 , 28

01/07/2017 , 29

01/07/2017 , 30

01/07/2017 , 33

01/07/2017 , 34

01/07/2017 , 36

01/07/2017 , 37

01/07/2017 , 38

01/07/2017 , 40

01/07/2017 , 42

01/07/2017 , 43

01/07/2017 , 44

01/07/2017 , 45

01/07/2017 , 46

01/07/2017 , 47

01/07/2017 , 48

01/07/2017 , 50

01/07/2017 , 51

01/07/2017 , 52

01/07/2017 , 53

01/07/2017 , 54

01/07/2017 , 55

01/07/2017 , 56

01/07/2017 , 57

01/07/2017 , 58

01/07/2017 , 59

01/07/2017 , 60

01/07/2017 , 61

01/07/2017 , 62

01/07/2017 , 63

01/07/2017 , 64

01/07/2017 , 65

01/07/2017 , 66

01/07/2017 , 67

01/07/2017 , 68

01/07/2017 , 69

01/07/2017 , 70

01/07/2017 , 71

01/07/2017 , 72

01/07/2017 , 73

01/07/2017 , 74

01/07/2017 , 75

01/07/2017 , 76

01/07/2017 , 77

01/07/2017 , 78

01/07/2017 , 79

01/07/2017 , 80

01/07/2017 , 81

01/07/2017 , 82

01/07/2017 , 83

01/07/2017 , 84

];

ASSORTIMENT_MOIS:

NoConcatenate

LOAD Produits,

     'X' as 201706

Resident ASSORTIMENT

where YearMonth = '01/06/2017';

Join

LOAD Produits,

     'X' as 201707

Resident ASSORTIMENT

where YearMonth = '01/07/2017';

Anonymous
Not applicable
Author

Laurent, un collègue et moi même avons réussi la création de la table en auto et ça marche parfaitement.

Au cas ou certains utilisateurs seraient intéressés ci-joint le script 

[Assortiment]:

Load

     Mois,

     Produits

From [xxx.QVD];

Set vJoin = '';

For each vMois in FieldValueList ('Mois')

     $(vJoin)

     [Assortiment_Mois]:

     Load

          Produits

          'X'     As [$(vMois)]

     Resident [Assortiment]

     Where Mois = '$(vMois)'

     Set vJoin = 'Join';

Next vMois

lcloatre
Partner - Creator III
Partner - Creator III

Boris,

J'avais effectivement mis des valeurs en dure pour te montrer le chemin à suivre.

Bien vu pour l'automatisation !

christophebrault
Specialist
Specialist

Bonjour,

Pour le faire en set analysis tu peux utiliser les focntion P() ou E() dans les sets analysis.

Un document pour commencer et en cherhant un peu plus tu trouveras d'autres exemples sur la communauté. Pas le temps de l'illustrer tout de suite pour ton cas désolé ...

Operator in Set Analysis

Inscrivez vous à ma Newletter Qlik
DoNotMissQlik- Connect with me on Linkedin
sfatoux72
Partner - Specialist
Partner - Specialist

Je pense que la solution que tu attendais était celle-ci.

C'est possible avec des set analysis en partant du jeu de données initial:

  • Écart assortiment :
    • =count({$<Mois={'01/07/2017'}>} Produits) - count({$<Mois={'01/06/2017'}>} Produits)
  • Ajout :
    • =count({$<Mois={'01/07/2017'}, Produits=E({$<Mois={'01/06/2017'}>})>} Produits
  • Suppressions :
    • =count({$<Mois={'01/06/2017'}, Produits=E({$<Mois={'01/07/2017'}>})>} Produits