XL 2016 Tableau croisé Dynamique pour calcul heures heures

TRANKILL

XLDnaute Nouveau
Bonjour,
Je cherche à faire des stats sur une feuille d'heure en fonction des clients et des taches.
Je n'arrive pas créer un TDC qui me donnerait par exemple:
Le nb d'heures par client sur l'année
Le nb d'heures par client sur janvier
Le nb d'heures par tache sur janvier
Le nb d'heure par client et par tache sur janvier

Ca ne me semble pas difficile mais je ne trouve pas la solution.
Pourriez-vous m'aidez svp?
2019-12-14_11h12_23.png
 

Pièces jointes

  • test.xlsx
    44 KB · Affichages: 39

chris

XLDnaute Barbatruc
RE

Ci-joint le fichier :
  • une requête croisant le tableau des chantiers (mis sous forme de tableau avec formatage correct des colonnes) et les temps passés est affichée sur l'onglet synthèse.
    En entreprise on n'utilise pas le TTC donc ton calcul de bénéfice parait bizarre mais je l'ai reproduit tel quel...
  • une requête alimentant le TCD
Edit : mon message d'hier semble être resté coincé, je le poste
 

Pièces jointes

  • Valentine_Salariés- Heures2.xls.xlsx
    217.2 KB · Affichages: 30

valentinejade

XLDnaute Nouveau
Bonjour,

Merci beaucoup pour ta réponse! C'est exactement ce que je cherchais à faire!
Ça me solutionne bien mon problème, en effet, il faut que je modifie et que je parte du total H.T. bien entendu, je n'ai pas bien fait le tableau au départ.
Merci pour ton aide, je vais essayer de modifier tout ca!
Si tu as le temps de m'expliquer les démarches pour que je comprenne un peu ce que tu as fait exactement, je suis preneuse!
Merci encore pour tout.
A très bientôt!
 

chris

XLDnaute Barbatruc
RE

Définition de la plage nommée Data pour récupérer la plage utile de l'onglet 2020- à imprimer

Onglet LISTE CHANTIER : limitation de la plage aux colonnes A:I, suppression des lignes vides et mise sous formes de tableau nommé Chantiers

A partir d'une cellule du tableau Chantiers : Données, A partir d'un tableau, ce qui ouvre PowerQuery
  • Modifier le typage de données (Onglet Accueil, Type de Données) car Date et montants non correctement typés puis renommage de la requête en Chantiers0
  • Requête Data :
    1. Accueil, Nouvelle Source, Autres Sources, Requête vide : dans la barre de formule, taper
      = Excel.CurrentWorkbook(){[Name="Data"]}[Content]
    2. supprimer l'étape Type modifié à droite dans la listes des étapes
    3. supprimer les colonnes Column1 à Column3, Column5 à Column10
    4. Accueil, Supprimer les lignes du haut : 2 lignes
    5. typer Column4 en date
    6. filtrer Column11 pour ne pas prendre null
    7. renommer la requête Data
  • Requête Titres :
    • Refaire les étapes 1 et 2 de Data puis
    • Accueil, Conserver les lignes, plage de ligne : 1ère ligne : 2 et 1 ligne
    • Column4 remplacer null par Date
    • Renommer la requête Titres
  • Requête Noms :
    • Refaire les étapes 1 et 2 de Data puis
    • Accueil, Conserver les 1ères lignes : 1 ligne
    • supprimer les colonnes Column1 à Column3, Column5 à Column10
    • sélectionner Column4, Transformer, Dépivoter puis dans la barre de formule remplacer Valeur par Nom
    • supprimer les colonnes Column4 et Attribut
    • Ajouter une colonne, Colonne d'Index, A partir de 1
    • Renommer la requête Noms
  • Requête TempsPassés :
    • Clic droit à gauche sous les noms de requêtes, Nouvelle requête, Combiner, Ajouter des requêtes : Titres et Data
    • Transformer, Utiliser la 1ère ligne pour les en-têtes
    • Renommer cette étape Source2 puis cliquer sur le Fx de la barre de formule et taper
      =Table.ReplaceValue(Source2,null,0,Replacer.ReplaceValue,Table.ColumnNames(Source2))
      et renommer cette étape Etat0
    • sélectionner les colonnes Date et Chantier, clic droit, Dépivoter les autres colonnes
    • sélectionner la colonne Attribut et filtrer : filtre textuel, ne commence pas par Restau
    • sélectionner la colonne Attribut, Transformer, Fractionner la colonne : séparateur _
    • supprimer la colonne Attribut.2
    • Ajouter une colonne, Colonne d'Index, A partir de 1, puis, dans la barre de formule, remplacer le dernier 1 par 0.5
    • Ajouter une colonne, colonne personnalisée, Nom : ID, Formule :
      =Number.Mod(Number.IntegerDivide([Index],1)-1,(Table.ColumnCount(Etat0)-1)/3)+1
    • supprimer la colonne Index
    • sélectionner la colonne Attribut.1, Transformer, Pivoter : Valeur et Ne pas agréger
    • typer la colonne Temp en durée
    • Renommer la requête TempsPassés
    • Accueil, Fusionner les requêtes, sélectionner Noms en seconde requête, sélectionner ID dans TempsPassés et Index dans Noms, Jointure Interne
    • cliquer sur la double flèche près du titre Noms, décocher tout sauf Nom
    • Accueil, Fusionner les requêtes, sélectionner Chantiers0 en seconde requête, sélectionner Chantier dans TempsPassés et Chantier(s) dans Chantiers0, Jointure Interne
    • cliquer sur la double flèche près du titre Chantiers0, décocher tout sauf COMMUNE et DESIGNATION (DPT si souhaité)
  • Requête DécompteHeures:
    • Accueil, Nouvelle Source, Autres Sources, Requête vide : dans la barre de formule, taper
      = TempsPassés
    • Sélectionner la colonne Chantier, Transformer, Regrouper par : Chantier,
      Nom : Décompte Heures, Opération Somme, Colonne Temp
    • Renommer la requête DécompteHeures
  • Requête Chantiers:
    • Accueil, Nouvelle Source, Autres Sources, Requête vide : dans la barre de formule, taper
      = Chantiers0
    • renommer la requête Chantiers
    • Accueil, Fusionner les requêtes, sélectionner DécompteHeures en seconde requête, sélectionner Chantier(s) dans Chantiers et Chantier dans DécompteHeures, Jointure externe gauche
    • cliquer sur la double flèche près du titre DécompteHeures et décocher tout sauf Décompte Heures
    • Ajouter une colonne, colonne personnalisée, Nom : Temps Restant, Formule :
      = if Number.From([#"Budget d'heure"]-[Décompte Heures])<0 then 0 else [#"Budget d'heure"]-[Décompte Heures]
    • Ajouter une colonne, colonne personnalisée, Nom : Dépassement, Formule :
      =if Number.From([#"Budget d'heure"]-[Décompte Heures])<0 then -([#"Budget d'heure"]-[Décompte Heures]) else 0
    • Ajouter une colonne, colonne personnalisée, Nom : Production, Formule :
      = 70*[Décompte Heures]
    • typer les 3 colonnes ajoutées en Durée pour Temps Restant et Dépassement et en Devise pour Production

  • Sortir par Fermer et charger dans, Connexion seulement
  • Créer le TCD avec comme source TempsPassés
  • Afficher le volet des requêtes, clic droit sur Chantiers, charger dans Table, nouvelle feuille
 

valentinejade

XLDnaute Nouveau
Re,
Merci beaucoup pour tes explications et surtout pour tout ce travail (et ton temps), je vais voir si j'arrive à reproduire tout ça!
C'est en tout cas exactement ce qui va m'aider à tout analyser!
Au top tes explications.
J'ai appris à pêcher (enfin si j'arrive à reproduire ton travail)!
Bon dimanche!
 

Discussions similaires

Réponses
5
Affichages
541

Statistiques des forums

Discussions
312 345
Messages
2 087 456
Membres
103 546
dernier inscrit
mohamed tano