Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
XavierDel
Contributor
Contributor

Création d’une liste croissante

Bonjour à tous,

J’ai besoin de votre lumière pour résoudre ma problématique svp :

Voici ce que j’ai en base :

Prio :

Load

Loc, //Loc1

Prod, // A01N9, A09NE8, AZE091, AZE904, AEZRT03, AZERT9, AEZ0JG

ID, // 25896

Num_client // 89503

From Base;

Demande : J’aimerai classifier par ordre croissant la liste de produit acheté par ID.

Ex : Pour le champ ID : 25896, j’aimerai obtenir une liste numérique de 1 à 7 qui réalisera en gros la correspondance entre produit et ID. Cela m’indiquera combien de produit sont dans ID et me les classifiera par nombre entier. 

Ex du résultat : 1 = A01N9, 2= A09NE8, 3= AZE091, 4 =AZE904, 5=AEZRT03, 6=AZERT9, 7=AEZ0JG.

En vous remerciant d’avance pour votre aide, bonne journée.

XD

1 Solution

Accepted Solutions
Taoufiq_Zarra

Bonjour,

plusieur façon de faire, je te propose une avec Load Script, pourquoi en load pour que dans le futur si le client demande de changer le code par exemple tu n'a pas à refaire l'ensemble des formules

alors le code en load est :

Data:

LOAD LOC, 
     Prod, 
     ID, 
     Client, 
     Date(Date_dbt) as Date_dbt, 
     Date(Date_detail) as Date_detail, 
     Date(Date_fin) as Date_fin , 
     Liste
FROM
[.\Sample.xlsx]
(ooxml, embedded labels, table is Feuil1);

resultat:
noconcatenate

load Client,
if(Prod='A02BC05',1,0) as flag_produit
resident Data;

inner join

load 
if(count(Prod)>=7,1,0) as flag_nbr,
Client

resident Data
group by Client
;

left join load * resident Data;

drop table Data;

 

donc tu as deux flags:

flag_produit: est égal à 1 si le client  a acheter le produit ' A02BC05'

flog_nbr: si le client à acheter plus de 7 produit.

avec ça tu peux utiliser le set analysis pour sortir l'ensemble de tes visualisations:

par exemple : le nombre de client avec le produit A02BC05 et plus de 7 produit :

=count( {<flag_produit={1},flag_nbr={1}>}  distinct Client)

etc

le tableau simple :

Capture.JPG

 

NB: tu peux optimiser le code de chargement si besoin

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉

View solution in original post

6 Replies
Taoufiq_Zarra

Bonjour,

si j'ai bien compris pour chaque ID, tu veux assosier une valeur 1.2.3.... => ID

dans ce cas je te propose d'ajouter cette ligne dans le script load :

AutoNumber(RecNo(), ID) as Liste,

j'ai crée ici un exemple de data, j'ai ajouter un autre ID juste pour voir les résultats, le script devient :

 

Data:

LOAD AutoNumber(RecNo(), ID) as Liste,* INLINE [
     Loc, Prod,ID, Num_Client
     Loc1, A01N9, 25896, 89503
     Loc1, A009NE8, 25896, 89503
     Loc1, AZE091, 25896, 89503
     Loc1, AZE904, 25896, 89503
     Loc1, AEZRT03, 25896, 89503
     Loc1, AZER9, 25896, 89503
     Loc1, AEZ0JG, 25896, 89503
     Loc1, AEZRT03, 25895, 89503
     Loc1, AZER9, 25895, 89503
     Loc1, AEZ0JG, 25895, 89503
];

 

et les résultats en tableau :

 

Capture.JPG

je ne sais pas si ce que tu cherches ou pas

 

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
XavierDel
Contributor
Contributor
Author

Merci pour ta réponse rapide, pas tout à fait ce que je veux.

J'aurai du te partager directement le fichier excel : le voici en pièce jointe.

Mon souhait est d'obtenir une liste croissante par rapport aux produits consommés, cette 'liste' me permettrai de marquer les produits sortis 'j'ai omis également la notion de date' mais clairement ce n'est pas important pour moi de classifier cela par date.

Pour info : mon but final n'est pas celui la : c'est de classifier tous les ID qui ont plus de 6 produits.

Selon mes connaissances je ne peux pas avancer sans ce point à moins que je me trompe...

En te remerciant

 

 

Taoufiq_Zarra

pour le fichier envoyé, quel est le le résultat souhaité ?

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
XavierDel
Contributor
Contributor
Author

Bonjour,

En gros le résultat attendu dépend de ces critères :

- Filtrer tous les clients qui ont consommés  >=7 produits

- Parmi ces 7 produits ils doivent obligatoirement avoir acheté des codes produits appartenant à une liste qui récapitule les codes produits. Parmi les codes produits on me demande de remonter ce code = A02BC05

Dans notre ex on a un client qui a acheté ce produit A02BC05 donc note client 24370 doit remonter étant donné qu'il a consommé >=7 produits.

En te remerciant pour ton aide.

XD

 

Taoufiq_Zarra

Bonjour,

plusieur façon de faire, je te propose une avec Load Script, pourquoi en load pour que dans le futur si le client demande de changer le code par exemple tu n'a pas à refaire l'ensemble des formules

alors le code en load est :

Data:

LOAD LOC, 
     Prod, 
     ID, 
     Client, 
     Date(Date_dbt) as Date_dbt, 
     Date(Date_detail) as Date_detail, 
     Date(Date_fin) as Date_fin , 
     Liste
FROM
[.\Sample.xlsx]
(ooxml, embedded labels, table is Feuil1);

resultat:
noconcatenate

load Client,
if(Prod='A02BC05',1,0) as flag_produit
resident Data;

inner join

load 
if(count(Prod)>=7,1,0) as flag_nbr,
Client

resident Data
group by Client
;

left join load * resident Data;

drop table Data;

 

donc tu as deux flags:

flag_produit: est égal à 1 si le client  a acheter le produit ' A02BC05'

flog_nbr: si le client à acheter plus de 7 produit.

avec ça tu peux utiliser le set analysis pour sortir l'ensemble de tes visualisations:

par exemple : le nombre de client avec le produit A02BC05 et plus de 7 produit :

=count( {<flag_produit={1},flag_nbr={1}>}  distinct Client)

etc

le tableau simple :

Capture.JPG

 

NB: tu peux optimiser le code de chargement si besoin

 

Regards,
Taoufiq ZARRA

"Please LIKE posts and "Accept as Solution" if the provided solution is helpful "

(you can mark up to 3 "solutions") 😉
XavierDel
Contributor
Contributor
Author

Taoufik

J'ai essayé ton code en ajoutant cela ça marche :

AutoNumber(RecNo(), ID&'-'&LOC) as Flag_Liste_Presc_CSC // me réalise une liste de 1 à x produits consommés

En te remerciant je vais testé également ton code, merci encore pour ton aide !

Excellente journée !