Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Excel - Tableau croisé dynamique

Ben92290

XLDnaute Nouveau
Bonjour,

Sur ma feuille "octobre 23" se trouve un tableau qui répertorie tout le matériel distribués aux agents par semaine avec une dernière colonne "total mensuel".
Sur la feuille "STATS OCT 23", j'aimerai créer un tableau en croisé dynamique dans lequel je pourrai voir le matériel donné par service puis par agent.
Je dois mal m y prendre parce que je n'y arrive pas...
Merci de votre aide.
 

Pièces jointes

  • DOTATION 2023.xlsx
    43.6 KB · Affichages: 15

chris

XLDnaute Barbatruc
Bonjour à tous

Il faut faire l'inverse.
Là tu as un tableau immense difficile à lire où on se demande ce que tu fais si tu dois fournir le même type de matériel le même jour à deux personnes...

Tableau inexploitable par TCD et qu'il faut donc décroiser par PowerQuery avant.

Un tableau structuré avec les colonnes :
  • Date,
  • Désignation,
  • Taille,
  • Nom,
  • Service (alimenté par une formule basé sur un tables des personne avec le service associé),
  • Quantité
(En gros le tableau correspondant à ton 1er envoi)
permettrait d'avoir directement des stats par TCD et, si besoin, de reproduire le planning via PowerQuery en gérant les éventuels prêts multiples...
Un seul planning avec choix du mois à afficher ce qui allègerait nettement la classeur...
 

chris

XLDnaute Barbatruc
Sinon, deux TCD à partir d'une requête Power Query dans le fichier joint
On peut remplacer 3 étapes par une seule pour le mois (pas forcément nécessaire d'ailleurs pour des TCD) et il faut une fonction pour travailler en semaine ISO
VB:
let
    Source = Excel.CurrentWorkbook(){[Name="Tableau1"]}[Content],
    #"Type modifié" = Table.TransformColumnTypes(Source,{{"SERVICE", type text}, {"AGENT", type text}, {"DATE", type date}, {"DESIGNATION", type text}, {"TAILLE", type text}, {"QUANTITE", Int64.Type}}),
    #"Mois inséré" = Table.AddColumn(#"Type modifié", "Mois", each Date.Month([DATE]), Int64.Type),
    #"Fonction personnalisée appelée" = Table.AddColumn(#"Mois inséré", "Semaine", each SemaineISO([DATE]))
in
    #"Fonction personnalisée appelée"
 

Eric KERGRESSE

XLDnaute Occasionnel
ça fonctionne
VB:
(DateRef as date) =>
let
        Jeudi = Date.AddDays(DateRef, -Date.DayOfWeek(DateRef,1) + 3),
        UnJanvier = #date(Date.Year(Jeudi),1,1),
        EcartJours = Duration.Days(Duration.From(Jeudi - UnJanvier)),
        SemaineISO=  Number.RoundDown(EcartJours/7)+1
in
    SemaineISO
 

Ben92290

XLDnaute Nouveau
Effectivement mon fichier est un peu lourd...
Mon problème : ma feuille "octobre" totalise pour le mois (voir en fin de tableau) le nombre d'articles distribués et se répercute via des formules automatiques et selon les articles donnés dans les onglets "quincaillerie" "EPI" Outillage et "entretien".

En gros, chaque début semaine mon collègue imprime la feuille de la semaine en cours "semaines 1, 2,..."
Chaque fin de semaine, il copie les informations récoltées de la semaine dans le tableau.
Les onglets "quincaillerie" "EPI" Outillage et "entretien" me sert d'inventaire via des formules automatique et liaisons.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…