Qlik Community

Ask a Question

Groupe des Utilisateurs Francophones

Announcements
QlikWorld May 10-12, Online and Free! REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Domejer
Contributor II
Contributor II

Passer de colonnes en ligne

Bonjour,

je travaille sur une base de données contenant des établissements, leur effectif, la période de l'effectif et la catégorie de l'effectif.

La première colonne contient  l'identifiant des établissements.

La deuxième colonne contient la période où l'effectif a été mesuré, sous forme AAAA-MM.

La troisième colonne contient la valeur de l'effectif.

La quatrième contient la catégorie de l'effectif (SIG ou SIR).

Ainsi pour un établissement il y a plusieurs lignes, et 2 par année, une ligne par catégorie.

 

J'aurai besoin que le fichier devienne sous la forme:

première colonne: identifiant établissement

Deuxième colonne: Période

Troisième colonne: Effectif SIG

Quatrième colonne: Effectif SIR

et cerise sur le gateau

cinquième colonne: Effectif total (soit effectif SIG + effectif SIR)

Il y aurait donc toujours plusieurs lignes pour un même établissement mais plus qu'une seule ligne pour une période

Y a t'il un script pour cela?

 

Merci d'avance

 

Jérôme

 

en PJ, un fichier excel avec l'aspect de la base avant modification

 

6 Replies
Taoufiq_Zarra
Master II
Master II

Bonjour Jérôme,

Je t'invite d’abord à consulter le Set Analysis

datt.PNG

donc je vais ajouter un tableau simple avec comme dimension Etablissement et période

puis dans Expression, je vais ajouter 3 expression :

Effectif SIG :

 

=sum({<Catégorie={'SIG'}>} Effectif)

 

Effectif SIR :

 

=sum({<Catégorie={'SIR'}>} Effectif)

 

Effectif :

 

=sum( Effectif)

 

 

Cdt,

 

Regards,
Taoufiq ZARRA

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

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

Merci Taoufiq pour ta réponse supe rapide!!

j'avais effectivement pensé le faire dans le set analysis mais l'objet de mon post était de pouvoir le faire dans le script de chargement de données pour créer directement les colonnes dans le modèle de données.

Est-ce que c'est possible?

Taoufiq_Zarra
Master II
Master II

oui , il ya plusieurs possibilités.

essayes ce script :

LOAD Etablissement, 
     Période, 
     Effectif,
     if(Catégorie='SIG',Effectif) as Effectif_SIG,
     if(Catégorie='SIR',Effectif) as Effectif_SIR,
     Catégorie
FROM
[.\Lignes vers colonnes.xlsx]
(ooxml, embedded labels, table is Feuil1);

 

Résultat:

Capture.PNG

Regards,

 

Regards,
Taoufiq ZARRA

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

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

Encore merci!

Le problème est qu'il n'y a toujours plusieurs lignes par période, avec pour effectif déclaré SIG une ligne avec un effectif renseigné et une ligne vide, et l'inverse pour l'effectif déclaré SIR.

Sinon j'avais pensé faire deux" left join" en ne chargeant d'abord que les catégories SIR par un where, puis les SIG.

 
 
Taoufiq_Zarra
Master II
Master II

J'ai pas très bien compris le problème.

est ce que tu peux partager un output de ce que tu veux afficher (output) ?

Regards,
Taoufiq ZARRA

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

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

Finalement j'ai enchaîné plusieurs left join et j'arrive au format souhaité

Merci pour ton aide