Transposition remplissage auto tableau si valeur egale

bonjour à tous,

je connais l'opération de transposition et j'ai des bases en formules sous forme de =si .... =et....

Mais là je coince je ne sais pas si des formules seront suffisante je pense qu'il faut faire intervenir une macro (je suis plutôt contre en général) et en macro je ne m'y connais pas assez pour créer.

Mon idée est de passer de la donnée d'entrée au besoin final sans replacer manuellement la bonne valeur au bon endroit (environ 15000 relevés x 20 stations de relevage) :

ma donnée d'entrée: (onglet1)

colonne A : jour du relevé

colonne B : heure du relevé

colonne C : valeur relevée

mon besoin finale est d'avoir: (onglet2)

Ligne 1 : heure de relevé (sans qu'il y ai de répétition)

Colonne A : jour de relevé

reste du tableau : le relevé qui correspond à date et heure

je pensais faire un tableau en préparant colonne A et ligne 1 vu que ce sont des valeurs finis et réduites puis dans le tableau tirer une formule du style =si((heure[colonneB_onglet1]=heure[ligne1_onglet2]) et si(jour[colonneA_onglet1]=jour[colonneA_onglet2]) alors affiché relevé colonneC_onglet1)

il faut par contre étendre la formule et appliquer la recherche à la liste complète c'est pourquoi je pense qu'une formule sera trop légère et qu'il va falloir passer par une macro..

Merci d'avoir pris le temps de me lire et en espérant avoir vos proposition à consulter.

Frédéric

Bonsoir,

Il manque peut-être un fichier à votre post...

@ bientôt

LouReeD

Je ne suis pas sûr qu'un fichier soit vraiment enrichissant mais je suis vos conseils vu que je suis là pour vous faire confiance !

40forum.xlsx (9.68 Ko)

Bonsoir,

un essai ?

ci joint :

54forum-loureed.xlsx (12.11 Ko)

@ bientôt

LouReeD


En fait le principe est celui-ci :

chaque colonne de la feuille 1 reçoivent un nom de zone dynamique afin de prendre en compte la longueur des colonnes en fonction des valeurs qu'elles contiennent.

Sur la feuille 2, une série de formule "SOMMEPROD3"

C'est une formule matricielle, elle permet de tester une zone par rapport à une donnée (dans notre cas) puis on multiplie par la comparaison d'une autre zone par rapport à une autre donnée puis on multiplie par une valeur.

En ligne 2 du tableau de la feuille 2 on trouve en colonne B la formule suivante :

=SOMMEPROD((La_Date=$A2)*(L_Heure=B$1)*(Le_Relevé))

si (La_Date=$A2) est "vrai" c'est à dire si dans la zone colonne date une valeur est égale à la cellule A2 de la feuille 2 alors la condition égale est vrai et "vrai" sous excel est égal à 1

si il en est de même avec la deuxième condition (L_Heure=B$1) alors c'est aussi égal à 1, (Le_Relevé) sera égal à la valeur de la même ligne du tableau de la feuille 1 donc la valeur de la cellule C2, on a donc :

1 * 1 * valeur cellule C2= 1 * 1 * 1 = 1 dans le tableau de la feuille 2 on a en résulat de la formule =SOMMEPROD((La_Date=$A2)*(L_Heure=B$1)*(Le_Relevé)) = 1

Ceci dit, si vos colonnes en feuille 1 sont très longues, alors le calcul matricielle sera très lourd....

@ bientôt

LouReeD

merci ça semble fonctionner mais dans la formule

=SOMMEPROD((La_Date=$A2)*(L_Heure=C$1)*(Le_Relevé))

je n'arrive pas à trouver les champs appelés par "La_Date" ; "L_Heure" et "Le_Relevé"

la plage sélectionnée ne devient pas visible quand j'édite la formule.

J'ai bien vu que ce sont les colonnes respectives en Feuil1 mais je ne retrouve pas la manip'.

Avec ceci je dois pouvoir aller au bout de ma simplification tout de même.

Merci beaucoup

Dans le ruban, onglet "formules" puis "gestionnaire des noms"

pour chaque zone une formule "dynamique" est en place

@ bientôt et bonne nuit

LouReeD

Rechercher des sujets similaires à "transposition remplissage auto tableau valeur egale"