Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Afficher les données du mois précédents dans un tableau ?

Bonjour,

Je souhaiterai afficher dans un tableau simple, les effectifs du mois précédents.

Donc dans la colonne de février, afficher les effectifs de janvier.

-------------------

Je souhaiterai ensuite calculer les ventes du mois M / les effectifs du mois M-1.

Exemple :

janvier : effectif = 50, ventes = 120

février : effectif = 65, ventes = 200

Dans mon tableau, colonne de février, le calcul devra donc etre :

ventes de février / effectif de janvier = 200 / 50.

Merci pour vos aides !

Labels (1)
7 Replies
maxgro
MVP
MVP

maybe (with sorted data, dimension year-month)

sum(ventes) / Above(sum(effectif))

Not applicable
Author

Une méthode simple : créer une colonne supplémentaire dans votre ensemble de données "effectif" référençant la période de vente.

Exemple :

VENTE:
LOAD * INLINE [
    PERIODE_VENTE, MONTANT
    201401, 100
    201402, 120
    201403, 150
    201404, 200
];

EFFECTIF:
LOAD * INLINE [
    PERIODE_EFFECTIF, NB_PERSONNE, PERIODE_VENTE
    201401, 10, 201402
    201402, 11, 201403
    201403, 12, 201404
    201404, 15, 201405
];

Créer un tableau avec

- PERIODE_VENTE en dimension

- SUM(MONTANT) et SUM(NB_PERSONNE) en expression

Not applicable
Author

Mon souci c'est que j'ai en plus du tableau, une liste de sélection ou je choisi mon année de référence.

Dans mon tableau, je met en dimension le mois et en expression les effectifs et les ventes du mois.

C'est uniquement dans la 3eme expression que je veux faire mon calcul sur vente M-1 / effectif M

avec M le mois.

Not applicable
Author

Dans ce cas, vous pouvez faire quelque chose du genre :

VENTE:
LOAD * INLINE [
    ANNEE_VENTE, MOIS_VENTE, MONTANT
    2014, 01, 100
    2014, 02, 120
    2014, 03, 150
    2014, 04, 200
];

EFFECTIF:
LOAD * INLINE [
    ANNEE_EFFECTIF, MOIS_EFFECTIF, NB_PERSONNE, ANNEE_VENTE, MOIS_VENTE
    2014, 01, 10, 2014, 02
    2014, 02, 11, 2014, 03
    2014, 03, 12, 2014, 04
    2014, 04, 15, 2014, 05
];

Créer une liste de sélection sur ANNEE_VENTE

Créer un tableau avec :

- MOIS_VENTE en dimension

- SUM(MONTANT) en expression 1

- SUM(NB_PERSONNE) en expression 2

- SUM(MONTANT)/SUM(NB_PERSONNE) en expression 3

Not applicable
Author

Désolée mais je suis débutante sur l'outil...

On est forcément obligé de passer par une "table" qui fait le lien entre année effectif, année vente, ... ?

J'ai énormément de données (plus de 1000 salariés !)

On ne peut pas calculer directement dans une expression ?

J'ai essayé avec only(année)-1 mais cela fonctionne uniquement dans une zone de texte et pas dans un tableau...

Not applicable
Author

L'instruction only fonctionne aussi dans un tableau mais ne me paraît pas adaptée à votre problème.

Pour répondre à votre question : Non on n'est pas obligé de passer par une table mais c'est une solution qui a le mérite d'être simple.

La méthode de Massimo Grossi est correcte mais elle nécessite d'ordonner les données correctement dans le tableau.

Une autre solution consiste à utiliser une fonction dans le script :
VENTE:
LOAD * INLINE [
    ANNEE_VENTE, MOIS_VENTE, MONTANT
    2014, 01, 100
    2014, 02, 120
    2014, 03, 150
    2014, 04, 200
];

EFFECTIF:
LOAD * INLINE [
    PERIODE_EFFECTIF, NB_PERSONNE
    201401, 10
    201402, 11
    201403, 12
    201404, 15
];
   
SET GetPrecPeriod = If($1=1,($2-1)*100+12, $2*100+ ($1-1));

Créer un tableau avec :

- dimension 1 = MOIS_VENTE

- dimension 2 = If($(GetPrecPeriod(MOIS_VENTE, ANNEE_VENTE))=PERIODE_EFFECTIF, 1, Null())

- cocher la case "Supprimer si la valeur est nulle" pour la dimension 2

- masquer la dimension 2 (dans l'onglet présentation)

- SUM(MONTANT) en expression 1

- SUM(NB_PERSONNE) en expression 2

- SUM(MONTANT)/SUM(NB_PERSONNE) en expression 3

Cordialement

Not applicable
Author

Merci beaucoup !