Menu

Ma colonne me fait mal


– Dis-moi, Muchmuch, pourquoi quand je recherche le projet "XB-20", je n'ai pas toutes les informations ?

Buzzbee la nomenclature, ne lui convient pas

– Parce que lors d'une restructuration, il a été renommé "AAA-03".
Muchmuch n'ose pas préciser que dans son service, ce code a muté spontanément pour devenir "PRJ_AA".

Bien sûr, beaucoup de documents de l'entreprise n'ont pas été mis à jour, et utilisent encore d'anciens codes.

Il existe aussi des codes, qui n'ont jamais été modifiés ou seulement une fois.

– Tu mets tout ça d'équerre Muchmuch. Tu me reprends les projets, tu attribues un code définitif et cohérent.

Buzzbee souhaite un système de correspondance

Buzzbee comprend qu'il n'est pas question de reprendre tous les documents existants pour modifier les anciens codes.
Ce serait des heures de travail qui mobiliseraient tous les services de l'entreprise.

– Écoutes Muchmuch, fait moi un classeur avec un système de correspondance entre les anciens codes et le nouveau. Quand nous saisissons l'ancien code, le tableur, doit afficher le nouveau code.

Muchmuch, fou de joie, s'attèle à la corvée.

Pour commencer, il essaye, de réunir, tous les codes existants.
D'ailleurs, rien ne l'assure que d'autres documents ne contiennent une autre organisation.

Il entame son tableau, et renseigne les colonnes :

  • 1° colonne, le code d'origine des projets ;
  • 2° colonne, les codes suite à restructuration ;
  • 3° colonne, les codes trouvés dans son service ;
  • 4° colonne, le nouveau code à appliquer.
Capture tableau Microsoft Excel organisation en colonnes.

Figure 1 : Tableau avec les quatre colonnes de codes.

Son but est de fournir une cellule, dans laquelle l'utilisateur saisi un des anciens codes et une formule affiche le nouveau code correspondant.

Capture zone de saisie Microsoft Excel.

Figure 2 : Système de saisie du code à trouver.

Bien évidemment, Muchmuch ne s'en sort pas, et la mort dans l'âme, il en appelle au collègue fortiche en informatique.

Le projet semble ficelé

– Tiens ton classeur Muchmuch, je t'explique !

Trrouver la colonne qui contient le code saisi

– Pour retrouver une valeur dans un tableau, j'utilise la "RECHERCHEV()".

  1. je cherche le code saisi dans la première colonne du tableau de correspondance ;
  2. s'il y est
    1. je renvoie la valeur de la quatrième colonne (le nouveau code) ;
  3. s'il n'y est pas
    1. je cherche l'ancien code dans la seconde colonne du tableau de correspondance ;
    2. s'il y est
      1. je renvoie la valeur de la troisième colonne (le nouveau code) ;
    3. si je ne le trouve pas
      1. je cherche dans la troisième colonne du tableau de correspondance ;
      2. etc.
Capture tableau Microsoft Excel de recherche des codes.

Figure 3 : Trouver la bonne colonne.

– Tu vois, ton code "DEP_XX" se trouve bien dans la 3° colonne.

Regrouper les trois formules

– Pour savoir si une colonne contient le code ou pas, je couple la "RECHERCHEV()" avec les fonctions "SI()" et "ESTNA()". Ensuite, je regroupe les trois recherches dans une seule formule.

Muchmuch est pensif, il n'a rien compris.
Comment ça, il n'est pas le seul !

Ce qu'il constate avec son fond de bon sens paysan, c'est que la formule est pour le moins bedonnante, j'imagine s'il y avait 25 colonnes !
– Si un jour le collègue fortiche part, il ne faut avoir à modifier la formule ou alors ça va être un joyeux bordel. J'imagine déjà la tête à Buzzbee.

=SI(ESTNA(RECHERCHEV(Saisie;$C$7:$I$12;7;FAUX));
SI(ESTNA(RECHERCHEV(Saisie;$E$7:$I$12;5;FAUX));
SI(ESTNA(RECHERCHEV(Saisie;$G$7:$I$12;3;FAUX)); RECHERCHEV(Saisie;$G$7:$I$12;3;FAUX));RECHERCHEV(Saisie;$E$7:$I$12;5;FAUX));
RECHERCHEV(Saisie;$C$7:$I$12;7;FAUX))

Mais pour lui la mission est accomplie, c'est l'essentiel.

Des limites se font jour

Utiliser une liste de choix

– Dis Muchmuch, tu ne pourrais pas me mettre une liste avec les anciens codes plutôt que de le saisir à la main ?

Capture zone de liste de choix sélection du code.

Figure 4 : Système de saisi à l'aide d'une liste de choix.

– Oui, ce n'est pas un problème. Muchmuch est friand des zones de liste depuis qu'il a appris à les réaliser.

Mais le problème arrive vite.

Muchmuch n'arrive pas à faire une liste avec 3 colonnes.
Renseignements pris, il semble que cela ne soit pas réalisable.

– Ce n'est pas grave, je vais reprendre les 3 colonnes sur une autre feuille pour faire une liste.
Muchmuch, en grand expert du copier/coller a rapidement réglé le problème.

Capture liste obtenue par copier/coller.

Figure 5 : Liste des anciens codes obtenue par copier/coller.

– C'est vrai ! Si un jour, il faut rajouter des codes, il faut que je pense à les rajouter aussi dans ma liste.
Pas de soucis, je m'en rappellerais.

– Mais si tu pars de l'entreprise Muchmuch, tu penseras à avertir ton remplaçant ? Euh ! ça c'est moins sûr !

Le remplaçant risque de chercher longtemps pourquoi la liste ne se met pas à jour !

Besoin d'une information complémentaire

– Ah ! Muchmuch, tu tombes bien (je ne sais pas vous, mais moi, quand j'entends cette phrase, je sais que je tombe mal !).
J'aimerais bien avoir le service à l'origine des codes.

Capture Microsoft excel système de recherche colonne service.

Figure 6 : Système amélioré avec le service à l'origine de la modification.

Muchmuch rajoute donc 3 colonnes à son tableau.

  • service 1 ;
  • service 2 ;
  • service 3.
Capture tableau Microsoft Excel colonne d'identification service.

Figure 7 : Rajout de colonne pour identifier le service.

Il recopie la formule du collègue fortiche et essaye de l'adapter. – Help collègue ! Je ne m'en sors pas !".
Quelle frustration d'être toujours dépendant de ce prétentieux !

Capture tableau Microsoft Excel recopie formule.

Figure 8 : Extension des formules de calculs aux nouvelles colonnes.

– J'espère que Buzzbee ne voudra pas la date de la modification. Il faudra rajouter 3 colonnes et recommencer le cirque.

Des contrôles supplémentaires

– Dis donc, Muchmuch, j'ai trouvé de nouveaux codes, mais quand je les ajoute au tableau de correspondance, j'aimerais éviter d'en saisir qui sont déjà présents.

Encore une fois, Muchmuch est humilié par le collègue fortiche.
Il lui propose un système qui affiche une alerte quand il saisit un doublon à l'aide d'une validation de données.
Le système est répété sur les 3 colonnes.

Bon Buzzbee a trouvé encore un bug.

Le système anti-doublons fonctionne.
Sauf que... Un même code peut être présent dans la première colonne et aussi la seconde voire encore la troisième.

Il faut un système qui identifie les doublons sur plusieurs colonnes.

Réfléchissons au problème

Inutile de savoir si un code n'est pas modifié dans une des 3 phases.

Inutile de savoir si le code que l'on cherche a été modifié dans la phase 1, 2 ou 3.
Surtout que Muchmuch préfère que l'on ne sache pas, qu'il pourrait être l'auteur de la modification.

In fine, Muchmuch a besoin des anciens codes pour afficher le nouveau.

Mettre ses données en ligne

Donc, une colonne avec l'ancien code, et une avec le nouveau doit suffire.

Capture tableau présenté en ligne.

Figure 9 : Données présentées en lignes.

La formule de recherche s'en trouve sensiblement allégée.

=RECHERCHEV($J$5;$C$9:$E$21;3;FAUX)

Si une information complémentaire est nécessaire (comme le service), une seule colonne est suffisante et la formule de recherche est la même que pour le code (seul change le numéro de colonne).

=RECHERCHEV($J$5;$C$9:$E$21;2;FAUX)

Dans le système à colonne, il faut créer une liste des anciens codes.
Ici, elle existe de façon naturelle.

Conclusion

La nature n'est pas toujours bien faite

Souvent, l'utilisateur, de façon naturelle, a le réflexe de créer plusieurs colonnes pour représenter la même information.

  • Je stocke les numéros de téléphones d'une personne [TEL_01], [TEL_02], etc.
  • Je veux conserver les prénoms des enfants d'une personne. Je vais donc créer une colonne [PRENOM_01], puis une autre [PRENOM_02], etc.

Je m'arrête à combien de colonnes

Dès le départ, je surestime le nombre de colonne ?
Exceptionnellement, je risque de trouver une famille avec 25 enfants.
Alors, je créé au départ 25 colonnes, qui pour la majorité ne seront jamais renseignées ?

Et s'il faut rajouter une information comme la date de naissance, je rajoute 25 colonnes ?
Je comprends mieux pourquoi certains n'ont pas assez de 256 colonnes !

Je rajoute des colonnes

Chaque fois qu'un enfant arrive, je rajoute une colonne ? Une personne a trois enfants. Pour l'heure, je n'ai que deux colonnes. Je rajoute donc cette troisième colonne.

Je n'ai plus qu'à reprendre toutes mes "formules de calculs" pour inclure cette nouvelle colonne.

Travailler en colonne n'est pas le système le plus efficace, ni le plus élégant, ni le plus simple à manipuler !
Les formules deviennent vite ingérables puisqu'il faut faire référence à de nombreuses colonnes.

Travailler en ligne

Travailler avec les données en ligne est toujours payant.

Les manipulations ne se font qu'une fois. Les "formules de calculs" sont inchangées et facilement adaptables.

Remarques complémentaires

Travailler en ligne, implique souvent d'utiliser plusieurs tableaux reliés entre eux.

Ne suivez pas aveuglément le collègue fortiche en informatique
C'est un Homo-buroticus qui en sait à peine un peu plus que vous et qui fait rire ou crispe (c'est selon) Homo-cerebro.

Restez informé

Inscrivez-vous à la newsletter et recevez l'actualité du blog dans votre boite aux lettres.