XL 2013 Resolu Substituer par dernière valeur trouvée

dss

XLDnaute Occasionnel
Bonjour,

Dans un tableau comportant de nombreuses lignes, je veux comparer 3 colonnes de la manière suivante

Colonne A. Colonne D. Colonne E

A 14000 001
A 14005 001
A 14010 001
A 16010 000
B
B
C
Si la valeur en colonne A est identique sur plusieurs lignes, je voudrais à partir de la dernière valeur trouvée en colonne E remplacer toutes les autres lignes concernées pour une même valeur en colonne A
PS : les lignes concernées ne sont pas forcément consécutives et la dernière valeur à retenir est le nombre le plus grand en colonne D

Merci de votre aide

Cordialement
 

Victor21

XLDnaute Barbatruc
Bonjour.

Comme d'hab, un court fichier Excel en exemple (situation actuelle, situation souhaitée, règles) nous aidera à comprendre votre problématique, à tester nos éventuelles propositions, et vous aidera à obtenir des réponses adaptées.
 

CISCO

XLDnaute Barbatruc
Bonjour

Une possibilité en pièce jointe avec une formule matricielle en colonne D à valider avec Ctrl+maj+entrer ou une formule "normale" en colonne E. Une fois la colonne D ou E remplie, il ne te reste plus qu'à la copier, et à faire un collage spécial sur la colonne C.

@ plus

P.S : Ma proposition dans la colonne E ne fonctionne pas correctement si les "noms" dans la colonne A ne sont pas par groupe, c-à-d si on peut avoir des X "mélangés" avec les Y, et réciproquement. Il ne faut donc pas l'utiliser.
 

Pièces jointes

  • Exemple dss.xlsx
    13.9 KB · Affichages: 43
Dernière édition:

dss

XLDnaute Occasionnel
Bonjour

Une possibilité en pièce jointe avec une formule matricielle en colonne D à valider avec Ctrl+maj+entrer ou une formule "normale" en colonne E. Une fois la colonne D ou E remplie, il ne te reste plus qu'à la copier, et à faire un collage spécial sur la colonne C.

@ plus

P.S : Ma proposition dans la colonne E ne fonctionne pas correctement si les "noms" dans la colonne A ne sont pas par groupe, c-à-d si on peut avoir des X "mélangés" avec les Y, et réciproquement. Il ne faut donc pas l'utiliser.
 

dss

XLDnaute Occasionnel
Bonjour,
Absent durant toute la semaine, j'ai pu tester votre formule et la traduire en VBA : voilà ce qu'elle donne sur le tableau d'origine et qui sera à adapter aux propres besoins de chacun en fonction du tableau considéré.
Selection.FormulaArray = "=INDEX(R1C[-1]:R649C[-1],MAX(IF(R1C[-38]:R649C[-38]=RC[-38],ROW(R1C[-1]:R649C[-1]))))"

A nouveau, un grand merci à vous, Cisco car je n'aurais assurément pas trouver la solution.

Je bute sur un autre problème: je précise que la feuille de "Destination" contient plus de lignes que la feuille "Origine", que le même numéro peut se retrouver plusieurs fois en colonne I de la feuille de Destination alors qu'il n'apparaît qu'une fois en colonne G de la feuille d'origine. De plus, les données ne sont pas triées de la même façon :

De la feuille Origine vers la feuille Destination, pas de problème, ça fonctionne bien (ex ci-dessous)

Feuille Destination :
Set plage = Range("AO1:AO" & Cells(Rows.Count, "J").End(xlUp).Row)
plage.Formula = "=index(Origine!AF:AF,match( I1,Origine!G:G))"
plage.Value = plage.Value
plage.NumberFormat = "000"
" La formule fonctionne bien"

Alors, j'ai voulu faire l'inverse, passer de la Destination vers l'Origine (cette dernière contient moins de lignes)

Feuille Origine

Set plage = Range("AM1:AM" & Cells(Rows.Count, "J").End(xlUp).Row)
plage.Formula = "=index(Destination!AQ:AQ,match( G1,Destination!I:I))"
plage.Value = plage.Value
plage.NumberFormat = "000"

Et là, je ne retrouve plus la correspondance exacte.
Est ce que cela provient du fait que je veux réaffecter les données sur un tableau contenant moins de lignes ?
Quelqu'un a-t-il une idée ?

Cordialement
 

Discussions similaires

Réponses
22
Affichages
743

Statistiques des forums

Discussions
312 103
Messages
2 085 314
Membres
102 860
dernier inscrit
fredo67