0
(0)

Un exemple de formule "complexe" pour pivoter des données malgré des manques.

La connaissance des tableaux dynamiques est nécessaire (Voir Formules de tableaux dynamiques, une nouvelle logique de conception).

D'où l'on part ou où on va.

Tableau de départ

Limité à 6 mois pour simplifier l'exemple.

Excel Pivoter des données Tableau de départ

Tableau final

Une formule unique génère ce tableau.

Excel Pivoter des données Résultat

Difficulté : Les années ne sont pas répétées.

On pourrait facilement compléter les années (voir plus bas Astuce pour remplir facilement les années manquantes dans le tableau de départ) mais on va se débrouiller sans.

Analyse du problème

On va décomposer le résultat attendu en plusieurs étapes.

  1. Générer la table dynamique des Années (filtrer les années non vides).
  2. Générer la table dynamique des Mois (supprimer les doublons).
  3. Générer la table dynamique des Valeurs (créer la table à la bonne dimension en fonction de la liste des Mois et Année et on la remplit).
  4. Assembler les 3 tables.

Pour structurer et simplifier on va passer par le Gestionnaire de noms pour mémoriser une partie des formules.

La table dynamique des Années

On crée le nom ListeAnnee (Rappel : ruban Formules > Définir un nom).

ListeAnnee> =FILTRE(Tableau1[Année];Tableau1[Année]<>"")

Voir La fonction de calcul FILTRE d'Excel.

On filtre les années en supprimant les valeurs vides.

La table dynamique des Mois

On crée le nom ListeMois.

ListeMois> =UNIQUE(Tableau1[Mois])

On supprime les doublons de la liste des mois.

La table dynamique des Valeurs

Pour dimensionner la table de Valeurs, on a besoin du nombre de Mois (NbMois) et d'Années (NbAnnees).

NbMois>   =NBVAL(ListeMois)
NbAnnees> =NBVAL(ListeAnnee)

Pour créer la liste de valeurs on va utiliser la fonction MAKEARRAY et la remplir avec la fonction INDEX.

TableValeurs> =MAKEARRAY(NbMois;NbAnnees;LAMBDA(l;c;INDEX(Tableau1[Valeur];l+(c-1)*NbMois)))

Pour informations :

  • MAKEARRAY va remplir la table ligne par ligne en incrémentant les 2 arguments de la fonction LAMBDA (ici l et c) de 1 à la valeur indiqué (ici NbMois et NbAnnées).
  • l+(c-1)*NbMois permet de chercher les valeurs dans cette ordre 1, 7, 13 puis 2, 8, 14...

On assemble le tout

=ASSEMB.V(
          ASSEMB.H("Mois\Année";TRANSPOSE(ListeAnnee));
          ASSEMB.H(ListeMois;TableValeurs))

Voir Fonctions ASSEMB.V/ASSEMB.H.

  • On assemble les étiquettes de colonne ("Mois\Année" et ListeAnnee pivoté en colonne).
Excel Pivoter des données Assemblage des Tables
  • On assemble les étiquettes de lignes (ListeMois) et les valeurs (TableValeurs).
Excel Pivoter des données Assemblage des Tables
  • On assemble enfin ces 2 tables.
Excel Pivoter des données Résultat

Astuce pour remplir facilement les années manquantes dans le tableau de départ

J'en profite pour montrer cette astuce.

  1. Sélectionner la plage (ici A2 à A19).
  2. Ruban Accueil > Sélectionner les cellules (groupe Edition) > Cellules vides.
Excel Pivoter des données Astuce de recopie
Excel Pivoter des données Astuce de recopie
  1. Saisir = B2 et valider par CTRL + ENTRER.
  2. On écrase les formules par un copier/coller valeurs de la plage (ici A2 : A19) sur place.

Merci pour votre attention bienveillante.

Article intéressant ?

Cliquez sur une étoile pour noter cet article !

Note moyenne 0 / 5. Nombre de votes : 0

Aucun vote pour l'instant ! Soyez le premier à noter ce post.

Nous sommes désolés que cet article ne vous ait pas été utile !

Améliorons cet article !

Dites nous comment nous pouvons améliorer cet article ?

Publications similaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *