récapitulatif pour 2 tableaux

  • Initiateur de la discussion Initiateur de la discussion JJ1
  • Date de début Date de début

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 !

J

JJ1

Guest
Bonsoir à tous,
J'ai 2 tableaux pour lesquels je fais un récapitulatif par nombre en bas de page:
pour chaque nombre du 1er tableau, j'aligne horizontalement dans le récapitulatif toutes les valeurs équivalentes trouvées pour ce nombre dans le 2éme tableau (j'ai fait l'exemple pour le nombre 1)
Avez-vous une formule adéquate?
merci et bonne soirée
 

Pièces jointes

Re : récapitulatif pour 2 tableaux

Bonsoir,

Une solution avec une formule matricielle :

en B24 de ton tableau, cette petite formule :

Code:
=SI(NB.SI($A$1:$E$21;$A24)<COLONNE()-1;"";INDEX($F$1:$J$21;
ENT(PETITE.VALEUR(SI(($A$1:$E$21=$A24)*LIGNE($A$1:$A$21)+(($A$1:$E$21=$A24)*
COLONNE($A$1:$A$21))/100>0;($A$1:$E$21=$A24)*LIGNE($A$1:$A$21)+(($A$1:$E$21=$A24)
*COLONNE($A$1:$E$1))/100);COLONNE()-1));MOD(PETITE.VALEUR(SI(($A$1:$E$21=$A24)*
LIGNE($A$1:$A$21)+(($A$1:$E$21=$A24)*COLONNE($A$1:$A$21))/100>0;
($A$1:$E$21=$A24)*LIGNE($A$1:$A$21)+(($A$1:$E$21=$A24)*COLONNE($A$1:$E$1))/100);
COLONNE()-1);1)*100))

Formule matricielle donc validation par CTRL + MAJ + ENTREE

à recopier vers la droite et vers le bas

Bonne soirée

@+
 
Re : récapitulatif pour 2 tableaux

Bonjour

Belle prestation de Tibo, je n'ai pas eu le courage de me lancer dans une telle formule

Donc voici un code
Code:
Sub RecapCorresp()
Dim vCell As Range
Dim vPos(50) As Byte
Range("B24:Z73").ClearContents
For Each vCell In Range("A1:E21")
    vPos(vCell) = vPos(vCell) + 1
    Range("B" & (vCell + 24))(0, vPos(vCell)) = vCell.Offset(0, 5)
Next vCell
End Sub
@+Jean-Marie
 
Re : récapitulatif pour 2 tableaux

Bonjour

Belle prestation de Tibo, je n'ai pas eu le courage de me lancer dans une telle formule

Donc voici un code
Code:
Sub RecapCorresp()
Dim vCell As Range
Dim vPos(50) As Byte
Range("B24:Z73").ClearContents
For Each vCell In Range("A1:E21")
    vPos(vCell) = vPos(vCell) + 1
    Cells(vCell + 24, vPos(vCell) + 1) = vCell.Offset(0, 5)
Next vCell
End Sub

Edito : Finalement une autre solution avec une formule matricielle
Code:
=INDEX($F$1:$J$22;PETITE.VALEUR(SI($A$1:$E$21=$A24;LIGNE($1:$21);22);COLONNE(A:A));EQUIV(SI(NB.SI($A$1:$E$21;$A24)<COLONNE(A:A);" ";$A24);INDEX($A$1:$E$22;PETITE.VALEUR(SI($A$1:$E$21=$A24;LIGNE($1:$21);22);COLONNE(A:A));0);0))
J'ai rajouté dans la cellule A22 et F22 un espace (" ") ce qui évite une gestion d'erreur. Dans la formule 22 représente le n° de la ligne en dessous des tableaux

Edito 2 : Autre version en supprimant la constante, et plus besoin de mettre un " " dans les deux cellules.
Code:
=SI(NB.SI($A$1:$E$21;$A24)<COLONNE(A:A);" ";INDEX($F$1:$J$21;PETITE.VALEUR(SI($A$1:$E$21=$A24;LIGNE($1:$21));COLONNE(A:A));EQUIV($A24;INDEX($A$1:$E$21;PETITE.VALEUR(SI($A$1:$E$21=$A24;LIGNE($1:$21));COLONNE(A:A));0);0)))

@+Jean-Marie
 
Dernière édition:
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
23
Affichages
682
Retour