Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 !
maybe (with sorted data, dimension year-month)
sum(ventes) / Above(sum(effectif))
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
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.
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
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...
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
Merci beaucoup !