Réorganisation des cellules d'un tableau vers un autre
Bonjour à tous,
Débutant avec excel, je découvre la puissance du logiciel. J'ai vainement tenté de trouver des pistes à la solution de mon problème mais je perds rapidement dans l'immensité des informations. Aussi, je tiens à m'excuser d'avance si la solution m'était passée sous les yeux sans que je m'en apercoive ou que le sujet avait déjà été traité mille fois. Je vous avoue être quelque peu désemparé et ne pas savoir dans quelle direction chercher.
Voici ma question :
(Avec cette copie d'écran et le fichier Excel joint, je vous propose une vue simplifiée de ma question)
A partir d'un tableau (AVANT), je souhaiterais réorganiser automatiquement les cellules de celui-ci dans un second tableau (APRES) qui serait affiché sur une autre feuille.
Sur la copie d'écran ci-dessous., j'ai volontairement affiché les deux tableaux sur la même feuille pour que vous ayez une vue d'ensemble de l'avant et de l'après.
A moins que la solution soit si enfantine que 3 minutes suffisaient à l'un d'entre vous pour m'indiquer la solution directement dans le fichier excel joint avec ce message, je vous seriez extrêmement reconnaissant de m'indiquer quelques pistes afin que je puisse regarder dans la bonne direction, découvrir et étudier les bonnes formules et éviter de me focaliser vers une mauvaise logique de travail.
Un tout grand merci d'avance à ceux qui prendront la peine de m'aider.
Benoît
Bonjour à tous,
Voici, une solution en partant de ton impression d'écran. A toi de l'adapter en fonction de ton tableau et des feuilles.
=INDEX($A$4:$A$7;EQUIV(B$10;$B$4:$B$7;0);1)A plus.
Braters a écrit :Bonjour à tous,
Voici, une solution en partant de ton impression d'écran. A toi de l'adapter en fonction de ton tableau et des feuilles.
=INDEX($A$4:$A$7;EQUIV(B$10;$B$4:$B$7;0);1)A plus.
Merci beaucoup pour cette première piste !
Cependant, mon niveau ne me permet pas encore de comprendre comment adapter cette piste dans mon second tableau.
Une heure que j'essaie mais sans résultat.
Sans vouloir abuser de votre temps, un petit coup de pouce supplémentaire serait le bienvenu !
Merci d'avance...
Bonjour,
je n'ai pas la solution (suis nul en formule) mais dépose plutôt une VRAIE copie de ton fichier (anonymisée) pour ainsi avoir la structure; il est souvent malaisé de transcrire les réponses sur un autre tableau "qui-ressemble-au-vrai-mais-qui-n'est-pas-le-vrai"
P.
patrick1957 a écrit :Bonjour,
je n'ai pas la solution (suis nul en formule) mais dépose plutôt une VRAIE copie de ton fichier (anonymisée) pour ainsi avoir la structure; il est souvent malaisé de transcrire les réponses sur un autre tableau "qui-ressemble-au-vrai-mais-qui-n'est-pas-le-vrai"
P.
Bonjour,
Mon fichier exemple "excel probleme" est joint avec mon premier message.
Je vois qu'il a d'ailleurs été téléchargé deux fois.
J'ai créé ce fichier afin de simplifier le problème avec un tableau très simple pour que je sois capable de comprendre plus facilement les formules. Le fichier original contient beaucoup de ligne et de colonnes.
Peut-être que Braters m'aidera davantage ou qu'une autre personne prendra le temps de se pencher quelques minutes sur mon message ?
Bonjour,
Solution en pièce jointe. Pour pouvoir la comprendre, recherchez ce que fait la fonction transpose et comment utiliser des matrices dans Excel ainsi que les fonction index et equiv.
Bonjour,
Je fais t'expliquer le déroulement de la formule.
=INDEX($A$4:$A$7;EQUIV(B$10;$B$4:$B$7;0);1)La première partie de =INDEX(matrice;N°lig;N°Col)
Matrice = les valeurs à afficher dans ta cellule ici "A4:A7" (ou sont les noms dans ton tableau "Avant")
Ensuite, =EQUIV(valeur_cherchée;tableau de recherche;type) cette fonction permet de récupérer la ligne de la valeur cherchée dans ton tableau de recherche. Ici, valeur cherchée = B10 soit "G01" Dans la plage "B4:B7" donc ici il renvoie "1"; et type = 0 car on cherche la valeur exacte. La formule renvoie donc "1"
Donc N°Lig = 1
Enfin N°Col = 1 Car ta matrice de la fonction =INDEX() ne comporte qu'une colonne.
Donc on a =INDEX("A4:A7";(ligne) 1 ;(colonne) 1) pour la première cellule, les valeurs ne seront pas pareils une fois la formule étirée.
Donc il va afficher la valeur présente dans la cellule de la première ligne, de la première colonne de "A4:A7" soit Pierre.
Petit détail, le "B4:B7" de la formule correspond à la colonne "1" de ton tableau "Avant" et donc à ta première ligne de ton tableau "Apres".
Pour remplir les autres lignes du tableau "Apres", il faut décaler la plage à "C4:C7" pour la ligne 2, D4:D7 pour 3 etc...
Voilà le fichier où j'ai réalisé la formule, à toi de voir quelle plage de l'exemple, correspond à la plage de ton vrai fichier.
Merci infiniment pour votre aide, vous avez répondu exactement à mes attentes !
Grâce aux exemples et explications, je vais à présent étudier tout ça calmement.
Je ne ferme pas le sujet de suite. Peut-être me poserai-je encore quelques questions relatives à ces formules en cours de travail...
Encore merci !
Braters a écrit :Bonjour,
Je fais t'expliquer le déroulement de la formule.
=INDEX($A$4:$A$7;EQUIV(B$10;$B$4:$B$7;0);1)La première partie de =INDEX(matrice;N°lig;N°Col)
Matrice = les valeurs à afficher dans ta cellule ici "A4:A7" (ou sont les noms dans ton tableau "Avant")
Ensuite, =EQUIV(valeur_cherchée;tableau de recherche;type) cette fonction permet de récupérer la ligne de la valeur cherchée dans ton tableau de recherche. Ici, valeur cherchée = B10 soit "G01" Dans la plage "B4:B7" donc ici il renvoie "1"; et type = 0 car on cherche la valeur exacte. La formule renvoie donc "1"
Donc N°Lig = 1
Enfin N°Col = 1 Car ta matrice de la fonction =INDEX() ne comporte qu'une colonne.
Donc on a =INDEX("A4:A7";(ligne) 1 ;(colonne) 1) pour la première cellule, les valeurs ne seront pas pareils une fois la formule étirée.
Donc il va afficher la valeur présente dans la cellule de la première ligne, de la première colonne de "A4:A7" soit Pierre.
Petit détail, le "B4:B7" de la formule correspond à la colonne "1" de ton tableau "Avant" et donc à ta première ligne de ton tableau "Apres".
Pour remplir les autres lignes du tableau "Apres", il faut décaler la plage à "C4:C7" pour la ligne 2, D4:D7 pour 3 etc...
Voilà le fichier où j'ai réalisé la formule, à toi de voir quelle plage de l'exemple, correspond à la plage de ton vrai fichier.
Bonjour,
Je suis un peu gêné de poser une telle question tellement je me rends compte de mon incompétence avec Excel mais j'aurais de nouveau besoin d'une petite aide. Je vous assure que pourtant, j'y travaille mais tout ça me dépasse encore quelque peu.
Je commence à comprendre doucement les fonctions INDEX et EQUIV et j'y travaille...
Ceci étant, j'aurais voulu que le tableau (qui répond complètement à mes attentes) obtenu grâce à ces formules se trouve sur une autre feuille du classeur et que celles-ci renvoient sur le tableau de la première feuille.
J'ai essayé de placer le nom de la feuille dans les formules mais sans résultat. J'imagine que c'est possible ?
Sans vouloir abuser de votre temps et votre patience, pourriez-vous m'éclairer sur cette nouvelle question ? Un grand merci d'avance...
Benoît
Pas de soucis, le forum est la pour ça.
Le même fichier mais sur deux feuilles différentes. A voir si cela te convient.
Braters a écrit :Pas de soucis, le forum est la pour ça.
Le même fichier mais sur deux feuilles différentes. A voir si cela te convient.
Hum.........
Je râle car il me semblait vraiment avoir fait comme dans le fichier que tu viens de poster ! Mais évidement, chez moi, ça ne fonctionnait pas ! Il faut vraiment que je comprenne ce que j'ai pu faire comme erreur !
En tout cas, un tout grand merci. Je vais pouvoir avancer d'un pas de plus mais je me rends compte que la route va être longue !
Bonne journée
Braters a écrit :Pas de soucis, le forum est la pour ça.
Le même fichier mais sur deux feuilles différentes. A voir si cela te convient.
Rebonjour,
Petite parenthèse :
Avant tout, je tiens rapidement à expliquer que je suis enseignant dans une école où ma direction me demande un peu d'aide dans leurs fichiers administratifs, d'où ma présence ici ! Etant la seule personne ayant des notions d'informatique, c'est vers moi que l'école s'est retournée.
Rassurez-vous, je ne suis pas professeur de mathématique !
Créateur du site internet de l'école, j'ai d'assez bonnes notions d'HTML et de CSS mais mon côté "Logique" n'est vraiment pas mon domaine ; je suis graphiste et professeur d'arts plastiques.
J'ai obtenu sur ce forum, tout ce que j'attendais je vous en suis très reconnaissant. J'avance petit à petit. Je pensais détenir toutes les notions qui me faisaient défaut mais je m'aperçois dans la pratique que je n'avais pas pensé à un petit détail.
Pour être le plus clair possible, j'ai ajouté une enseignant (Virginie) dans la liste des enseignants et une nouvelle heure de cours (Lu-5). Bien entendu, grâce à l'aide reçu, je ne rencontre pas de problème pour autant que Virginie ait cours toutes les heures et avec tous les groupes !
En fait, je pense que le problème se décomposer en fait en deux problèmes :
D'abord, Virginie pourrait simplement ne pas avoir cours le lundi à la 5e heure (F6). Dans ce cas, #N/A s'affiche dans le tableau de la deuxème feuille.
Ensuite dans cet exemple, il arrive parfois que nous ayons deux professeurs en parallèle pour une même classe. Dans ce cas, je souhaiterais que les deux noms figurent dans la cellule du tableau de cette deuxième feuille.
En écrivant ces quelques lignes, j'ai crains juste que mes attentes dépassent allègrement votre patience et votre disponibilité à m'aider mais si ce problème était facile à résoudre (pour vous) et que je puisse analyser patiemment les formules offertes, ce serait extraordinaire !
Voilà, je tente en espérant que ma bouteille jetée à la mer me revienne avec une piste, voire la solution à mon problème.
PS : Pour être actif, moi aussi, dans d'autres forums mais dans des domaines différents, il m'arrive souvent de lire des demandes de novices voulant créer un site internet en une heure alors qu'il ne savent déjà pas comment faire une recherche sur Google. Je suis totalement conscient que beaucoup d'entre vous me conseilleraient d'apprendre à faire une moyenne dans Excel avant de m'aventurer plus loin.
Je sais faire une moyenne dans Excel mais je n'essaie pas de faire croire que j'en sais beaucoup plus mais je travaille, j'étudie et je veux y arriver !
D'avance merci...
Benoît
Bonjour,
juste 2/3 questions pour débroussailler (je ne me sens pas capable de résoudre le problème en moins de 2 mois,
1- LU-1 et Lu-2 , ce sont des dates+heures ou dates seules ou heures seules ? 2 colonnes date et heure ne seraient pas plus faciles à gérer ? LU-1 n'est pas très explicite
2- La liste des prénoms est elle amenée à grandir/être modifiée , oui j'imagine ?
3- Si on te propose (en connaissant mieux ton souci) une autre présentation pour le AVANT, c'est possible ?
P. (débroussailleur en chef) et étonné que personne ne te propose une solution VBA parce que moi, je rame avec ce problème mais il m'intéresse pour le plaisir de la masturbation intellectuelle
patrick1957 a écrit :Bonjour,
juste 2/3 questions pour débroussailler (je ne me sens pas capable de résoudre le problème en moins de 2 mois,
) 1- LU-1 et Lu-2 , ce sont des dates+heures ou dates seules ou heures seules ? 2 colonnes date et heure ne seraient pas plus faciles à gérer ? LU-1 n'est pas très explicite
Et peut on retrouver + d'heures de cours sur une journée ? 2- La liste des prénoms est elle amenée à grandir/être modifiée , oui j'imagine ?
3- Si on te propose (en connaissant mieux ton souci) une autre présentation pour le AVANT, c'est possible ?
P. (débroussailleur en chef) et étonné que personne ne te propose une solution VBA parce que moi, je rame avec ce problème mais il m'intéresse pour le plaisir de la masturbation intellectuelle
Bonjour,
Face à mon niveau de connaissance sous Excel, nous pouvons en effet parler de débroussaillage !
En étudiant sur internet, j'en apprends chaque jour davantage, ce qui me permet d'affiner quelque peu mon souhait tout en espérant que quelqu'un puisse répondre à mes attentes.
Pour répondre aux questions posées :
1. Nous avons 36 heures de cours (8 par jour et 4 le mercredi) - Lu1, Lu2, Lu3, Lu4, Lu5, Lu6, Lu7, Lu8, Ma1, Ma2, Ma3, etc.
2. Effectivement, la liste des professeurs peut être modifiée en cours d'année et totalement réorganisée en chaque début d'année.
3. Le premier tableau (tableau de prestation) existe déjà et est déjà opérationnel et utilisé pour le comptage des heures, etc.
Dans cet exemple, j'ai recréé ce tableau fictif plus simplement (avec une seule journée de cours) afin d'être plus clair et explicite.
Seules deux classes sont réellement représentée (Classe 01 et Classe 02).
En résumé :
A partir du Tableau de prestation, je souhaiterais pouvoir en extraire un autre appelé Grille horaire.
Dans ce dernier, en tapant le nom d'une classe (dans une cellule de saisie), la liste des intervenants (enseignants) s'afficherait en regard des différente heures des journée de cours.
Il est important de noter que :
- Toutes les classes n'ont pas forcément cours avec tous les enseignants.
- Les enseignants n'ont pas cours de la première heure du lundi à la dernière heure du vendredi.
- Il est possible que deux enseignants aient cours avec deux classes identiques lors d'une même heure (cours en parallèle).
(Voir l'exemple de la Classe 02)
Je pense avoir concrètement décrit la situation.
Je joins le fichier Excel-probleme-3 avec ce message en espérant une aide qui pourrait me faire avancer dans la bonne direction.
D'avance, je vous remercie infiniment.
Benoît
Bonjour,
avec une petite aide d'une experte pour 1/4 du code, voilà de quoi faire
P.
patrick1957 a écrit :Bonjour,
avec une petite aide d'une experte pour 1/4 du code, voilà de quoi faire
P.
D'abord, merci beaucoup de vous être penché sur mon problème !
Oups !
Quand je clique, "erreur de compilation" apparait (bibliothèque introuvable)
Néanmoins, je peux apercevoir que tout ça est réalisé en Visual Basic ! J'avais déjà du mal avec les formules Excel mais là, autant dire que je suis totalement perdu.
Visual Basic est la seule solution pour réaliser ce que je voudrais obtenir ?
re,
aie aie... je viens de voir que tu es sur Mac et là... pas de dictionnaire
J'espère que quelqu'un sur Mac pourra te venir en aide ; je regarde de mon côté, et en attendant tu sais essayer sur une machine sous windows ...
P.
patrick1957 a écrit :re,
aie aie... je viens de voir que tu es sur Mac et là... pas de dictionnaire
J'espère que quelqu'un sur Mac pourra te venir en aide ; je regarde de mon côté, et en attendant tu sais essayer sur une machine sous windows ...
P.
Visual Basic serait la seule solution pour réaliser ce que je voudrais obtenir ou ce serait éventuellement possible avec les formules Excel ?
re,
il doit y avoir moyen en formule, mais ça dépasse mes compétences
Un formuliste un spécialiste Mac va peut être passer par ici
P.