Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

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
787
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…