Extraire deux mêmes données dans excel...

Chico63 -  
Raymond PENTIER Messages postés 71852 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

Sous excel 2007, je cherche à extraire deux données identiques dans un même tableau, puis les assembler.

Exemple :
A B
1 1,3 Alpha
2 2,2 Beta
3 1,4 Gamma
4 1,3 Tera
5 2,1 Phi
6 2,1 Epsilon

Dans les cellules réponse (colonne D), le résultat doit être :
C D
1 1,3 "Alpha Tera"
2 1,4 "Gamma"
3 1,5
4 1,6
5 1,7
6 1,8
7 1,9
8 2,0
9 2,1 "Phi Epsilon"
10 2,2 "Beta"

Merci pour vos lumières !


A voir également:

2 réponses

Raymond PENTIER Messages postés 71852 Date d'inscription   Statut Contributeur Dernière intervention   17 386
 
Je n'ai pas compris la logique des tableaux.
0
librequetucrois
 
slt

C'est simple mais je sais pas faire ça du tac o tac.

Il veut concaténer les chaînes de textes qui ont les mêmes coordonnées dans l'ordre d'apparition en partant du haut de la colonne à moins qu'il y a un ordre de concaténation selon certains critères qu'il n'a pas indiqué.

Formule (schéma) : Il faut utiliser la fonction cherche dans la colonne ou trouve dans la colonne les lignes contenant les même coordonnées (il y a un nombre dans deux colonnes en fait). Si plusieurs lignes sont identiques (les colonnes contenant les coordonnées), *if alors*, concaténer les chaînes de caractères (sur quelle colonne d'ailleurs ?), sinon mettre un seul texte (le contenu d'une seule cellule) uniquement.

Sur quelle colonne se trouve le texte ? Vu que a,b,c,d sont utilisées par les coordonnées ...
0
librequetucrois
 
Le texte à concaténer si les coordonnées sont sur plusieurs lignes est dans la colonne B.

Le résultat est dans la colonne D.

1,3 (un virgule trois) par exemple est dans une seule colonne ; autant pour moi.
0
librequetucrois
 
Re,

À améliorer, si c'est à peu près utilisable ...

=CONCATENER(RECHERCHEV($C1;$A1:$B1;2);" ";SI(ESTERREUR(EQUIV($A:$A;$C:$C;0));"";DECALER("C"&EQUIV($A:$A;$C:$C;0);0;1;1;1)))

Il manque un contrôle au cas où il n'y a rien de trouvé ; pour savoir quoi afficher ; oui, en dehors des erreurs dans la formule ; et non je n'ai pas testé la formule, même si justement je n'arrive pas à savoir à l'avance ce que ça donne comme résultat (manque de savoir).

Validez la formule comme une formule matricielle, dans une ou dans plusieurs cellules d'un coup, en utilisant la combinaison [Ctrl]-[Maj]-[Entrée].
0
librequetucrois
 
Avec un contrôle d'erreur (si c'est le bon type d'erreur détectée) :

=CONCATENER(SI(ESTERREUR(RECHERCHEV($C1;$A1:$B1;2);$C1;RECHERCHEV($C1;$A1:$B1;2));" ";SI(ESTERREUR(EQUIV($A:$A;$C:$C;0));"";DECALER("C"&EQUIV($A:$A;$C:$C;0);0;1;1;1)))

ou

=CONCATENER($C1;" ";SI(ESTERREUR(EQUIV($A:$A;$C:$C;0));"";DECALER("C"&EQUIV($A:$A;$C:$C;0);0;1;1;1)))
0
librequetucrois
 
*Remplacez $C1 par $B1 quand il est seul.
*C'est la colonne B qui contient le texte est pas C.

La formule (sur chacune des lignes de la colonne) est dans D ...
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
bonjour

en D1 à tirer vers le bas

=SI(NB.SI(A$1:A$6;C1)<1;"";INDEX(B$1:B$6;EQUIV(C1;A$1:A$6;0))&" "&SI(NB.SI(A$1:A$6;C1)=2;INDEX(B$1:B$6;EQUIV(C1;DECALER(A$1:A$6;EQUIV(C1;A$1:A$6;0);0))+EQUIV(C1;A$1:A$6;0));""))


demo
https://www.cjoint.com/?3KjjPbrQ5pt
0
michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 318
 
Excusez moi pour la réponse en 2 temps!
variante
=SI(NB.SI(A$1:A$6;C1)<1;"";INDEX(B$1:B$6;EQUIV(C1;A$1:A$6;0)))&" "&SI(NB.SI(A$1:A$6;C1)<2;"";INDEX(B$1:B$6;MAX(SI(A$1:A$6=C1;LIGNE(A$1:A$6)))))

Formule matricielle à valider par « ctrl+maj+entrée » (et non directement par « entrée »), le curseur clignotant dans la barre de formule; Excel encadre alors automatiquement la formule par des {} à tirer vers le bas
0