Transposer les données d'un tableau

0

Bonjour

Dans le cadre d'une gestion de planning, je voudrais pouvoir obtenir automatiquement à l'aide d'un tableau, un 2e tableur recensant les mêmes données mais dans un sens inversé !

https://www.cjoint.com/c/JAgqQFTrO7H

Dans le premier tableau, les jours sont en ordonnée et les prénoms en abscisse. Les horaires sont dans le corps du tableau.

A partir de ce tableau, je souhaiterais obtenir un nouveau tableau avec les horaires en ordonnée et les jours en abscisse. Les prénom apparaissent alors dans le corps du tableau.

Cerise sur le gâteau : il faudrait que les cases vides soient rouges pour laisser apparaître un oubli !  

NB: les horaires et prénoms sont fixes.

un grand merci d'avance



    Posté le 6 janvier 2020, 17:43
    par morgane
    Répondre
    0

    Bonjour/bonsoir... (il y a une heure dans la nuit où je ne sais jamais quel mot choisir...)

    Voilà ton fichier un peu modifié https://www.cjoint.com/c/JAhduH38WBA avec quelques commentaires ci-dessous.

    Validation des saisies

    Avant de commencer la moindre formule, pour être certain qu'une faute de frappe ne viendra pas fausser nos calculs, j'ai utilisé la fonction de Validation des données en mettant partout... 

    8h - 15h (par exemple)

    ...sans espace entre le chiffre et la lettre H et avec un tiret entouré d'espaces au milieu comme séparatif. C'est indispensable pour éviter les problèmes. Du coup, la saisie est simplifiée puisqu'on a une liste déroulante dans chaque cellule.

    J'ai mis cette liste dans la plage Q3:Q8 mais à la limite, on pouvait utiliser la plage A15:A20

    Formule par colonne

    On doit certainement réussir avec une formule unique pour faire l'ensemble du tableau mais il me semble que la mettre au point passera plus de temps que de faire une formule par colonne légèrement modifiée à chaque fois. Bien entendu, avec 3 fois... 10 fois... 20 fois plus de colonnes, mon choix s'inverserait.

    Donc en B15, je tape la formule

    =INDEX($B$3:$G$3;1;EQUIV($A15;$B$4:$G$4;0))

    La fonction EQUIV va regarder la valeur contenue dans $A15 (rappel, quand je copie cette formule vers le bas ou vers la droite, le A reste toujours le A mais le 15 se transforme en 16 17 18 etc) et cherche dans la plage $B$4 à $G$4 l'exacte correspondance.

    Si la formule ne trouve pas, elle renvoie la valeur #NA et si elle trouve, elle renvoie la position dans la plage $B$4:$G$4

    En l’occurrence, la valeur 8h - 15h se trouve dans la première colonne de la plage $B$4:$G$4

    Je recherche donc dans la plage $B$3:$G$3 qui contient les nom à la ligne 1 et à la colonne que l'on vient de trouver grâce à EQUIV

    Le résultat est STEPHANIE, le contenu de B3

    Je copie cette formule de B15 à B20

    En B17 j'ai un vide qui me donne comme résultat #NA mais on va le gérer plus tard.

    Pour la colonne suivante, la colonne C, je copie la formule que j'adapte légèrement

    =INDEX($B$3:$G$3;1;EQUIV($A15;$B$5:$G$5;0))

    Dans la fonction EQUIV au lieu de regarder en ligne 4 je regarde dans la ligne 5

    Et ainsi de suite pour le reste du tableau

    En colonne D je regarde la ligne 6

    =INDEX($B$3:$G$3;1;EQUIV($A15;$B$6:$G$6;0))

    En colonne E je regarde la ligne 7

    =INDEX($B$3:$G$3;1;EQUIV($A15;$B$7:$G$7;0))

    En colonne F je regarde la ligne 8

    =INDEX($B$3:$G$3;1;EQUIV($A15;$B$8:$G$8;0))

    Gestion des #NA

    La cerise sur le gâteau comme énoncé dans la question.

    J'aurais pu faire une formule plus complexe en ajoutant quelque chose du genre 

    =SI(NON(ESTNA(bla bla bla...

    ...mais je l'ai joué à la méthode feignasse étant donné qu'on doit colorer ces cellules avec un fond rouge, je fais une mise en forme conditionnelle avec du texte rouge sur fond rouge et le message d'erreur est invisible. Attention, si on imprime avec l'option noir et blanc, #NA apparaît à l'impression.

    Je sélectionne la plage $B$15:$F$20 et j'ajoute une règle avec l'option Utiliser une formule pour déterminer pour quelles cellules le format sera appliqué

    La formule est

    =ESTNA(B15)

    Attention à bien supprimer les $ qu'Excel met par défaut et comme format, je mets le texte et le fond rouges.

    Mes cerises sur le gâteau

    Ce n'est pas un clafoutis mais j'ai ajouté quelques petites cerises.

    • Couleur automatique jaune pâle dans le tableau 1 partout où il y a la valeur RPLCT 7J
    • Couleur automatique gris clair dans le tableau 1 dans toutes les cellules vides
    • La saisie de la date de début en G1 permet de remplir les titres des deux tableaux en une seule saisie (je ne rentre pas dans le détail ici, ce n'est pas l'objet de la question)

    En espérant que la réponse n'était pas trop longue.

    Bon courage.

    MicXL Posté le 7 janvier 2020, 05:39
    par MicXL
    0

    Bonjour MicXL

    je vous remercie énormément pour cette réponse complète et instructive (sans parler du clafoutis !)

    Je m'atèle de suite à tenter de le déployer :

    - sur toute l'année 2020 

    - avec toute l'équipe soit une vingtaine de personne

    - avec les 14 horaires différents 

    Je sens que je vais passer une bonne journée !


    Bien à vous


    Morgane 

    Posté le 9 janvier 2020, 12:00
    par morgane

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :