Correspondance numéro/valeur avec condition

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

kabale53

XLDnaute Occasionnel
Bonsoir

J'ai besoin de votre aide pour établir une correspondance numéro/valeur comme suit:

Situation initiale:

- Des valeurs non classées dans la colonne(W11:W30) .
-Des numéros correspondent a ces valeurs dans la colonne (X11:X30).
-Les valeurs en (W11:W30) sont classées du plus petit au plus grand dans la colonne (AA11:AA30).

6 13
0 6
2 17
3 15
6 4
3 3
2 18
6 8
4 11
0 16
1 12
6 5
0 1
6 7
6 9
5 14
5 10
6 13




Résultat souhaité:

-Dans la colonne (AB11:AB30) ,faire correspondre aux valeurs classées en (AA11:AA30) les numéros situés en (X11:X30).


0 6
0 16
0 1
1 12
2 17
2 18
3 15
3 3
4 11
5 14
5 10
6 13
6 4
6 8
6 5
6 7
6 9
6 13

Avec la condition suivante:

Pour les valeurs identiques en (AA11;AA30) ,les numéros qui leur correspondent en (AB11:AB30)gardent l'ordre d'apparition tel qu'il est dans (X11:X30) par exemple:
0--6
0--16
0--1

Merci pour votre aide
 

Pièces jointes

Re : Correspondance numéro/valeur avec condition

Bonsoir,

avec ce code :
VB:
Sub TriTableau2D()
  Dim a()
  a = [W11:X28].Value
  ' Tableau 2D
  Call Tri(a(), 1, LBound(a, 1), UBound(a, 1))
  [AK11].Resize(UBound(a, 1), UBound(a, 2)).Value2 = a     ' Value2 pour les dates Laeticia90
End Sub

Sub Tri(a(), ColTri, gauc, droi) ' Quick sort
  ref = a((gauc + droi) \ 2, ColTri)
  g = gauc: d = droi
  Do
    Do While a(g, ColTri) < ref: g = g + 1: Loop
    Do While ref < a(d, ColTri): d = d - 1: Loop
    If g <= d Then
       For k = LBound(a, 2) To UBound(a, 2)
         temp = a(g, k): a(g, k) = a(d, k): a(d, k) = temp
       Next k
       g = g + 1: d = d - 1
    End If
  Loop While g <= d
  If g < droi Then Call Tri(a, ColTri, g, droi)
  If gauc < d Then Call Tri(a, ColTri, gauc, d)
End Sub


laurent
 
Re : Correspondance numéro/valeur avec condition

Bonsoir kabale53, laurent950.



En AB11 :​
Code:
=SIERREUR(INDEX($X$11:$X$30;EQUIV(PETITE.VALEUR(SI($W$11:$W$30="";1E+100;$W$11:$W$30)+LIGNE($11:$30)/100;LIGNE(1:1));$W$11:$W$30+LIGNE($11:$30)/100;0));"")
à valider par Ctrl Maj Entrée puis à étendre vers le bas jusqu'à AB30.​


Bonne nuit.


ℝOGER2327
#7727


Mercredi 4 Gueules 142 (*Sainte Goule ou Gudule, institutrice - fête Suprême Quarte)
10 Pluviôse An CCXXIII, 9,4521h - cognée
2015-W05-4T22:41:06Z
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
667
Réponses
9
Affichages
901
Réponses
7
Affichages
803
Réponses
3
Affichages
672
Retour