Extraire du texte dans une même cellule avant des virgules - fonction excel

Adrien80

XLDnaute Nouveau
Bonjour à tous,

Je viens vers vous aujourd'hui car je rencontre un problème sur EXCEL.

Voici la problématique :

Je possède dans la cellule A1 des numéros qui vont de 1 à 6 ex : A1: 1,1,2,5,1,6,1
Les numéros sont séparés par des virgules sauf le 1.

Dans la cellule B1, je possède des noms tels que B1: Mathieu,Henry,Marc,Arthur,Lea,Vincent,Marie
Les noms sont séparés par des virgules sauf le 1.

J'aimerais associer les numéros et les noms
Je m'explique :
Dans la colonne C1, j'ai réussi à compter le nombre de "1" avec les formules :=SOMMEPROD((NBCAR()-NBCAR(SUBSTITUE())))

Je souhaiterais obtenir dans la colonne D1 les noms associés au numéro "1" ici : Mathieu,Henry,Lea,Marie

Et faire la même chose pour les autres numéros.

E1 le nombre de "2"
F1 les noms associés au numéro "2" ici : Marc,
G1 le nombre de "3"
Etc ...

Si possible, j'aimerais corriger ce problème avec uniquement des fonctions EXCEL

Merci d'avance pour votre aide !
Je vous souhaite une bonne journée
Cordialement

PS je suis sur Excel 2013
 

Adrien80

XLDnaute Nouveau
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Voici un fichier excel pour mieux comprendre

J'ai également rajouté 2 exemples que je peux rencontrer

Merci encore
 

Pièces jointes

  • Problème.xlsx
    9.7 KB · Affichages: 38
  • Problème.xlsx
    9.7 KB · Affichages: 39
  • Problème.xlsx
    9.7 KB · Affichages: 47

Modeste

XLDnaute Barbatruc
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonjour Adrien80 et bienvenue,

Je ne sais pas si j'ai bien compris ta demande ... Si oui, faire ça avec les fonctions d'Excel, ça me semble difficile (voire plus encore :))

Commençons par voir si j'ai compris correctement: dans le fichier en pièce jointe, c'est une macro qui fait le travail. Clique sur le bouton et vérifie si le résultat est celui que tu souhaitais!?
 

Pièces jointes

  • Problème (Adrien80).xlsm
    17.1 KB · Affichages: 27

Adrien80

XLDnaute Nouveau
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonjour Modeste,

Tout d'abord, je tiens à te remercier pour ton aide.

Après vérification, c'est exactement ça que je souhaite c'est à dire obtenir les noms en fonction du numéro.
Est-il possible d'obtenir juste les noms dans des colonnes spécifiques afin que tous les "1" soient dans la même colonne ?

Selon vous, peut-on réaliser cette démarche à l'aide des fonctions excel ?


Merci d'avance
Cordialement
 
Dernière édition:

Modeste

XLDnaute Barbatruc
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonsoir,

Avec les fonctions d'Excel, je ne vois pas comment faire ... d'autres que moi, peut-être?

Pour répondre à ta demande, le code est même un peu plus simple que le premier (toujours si j'ai bien compris!?). Vois le fichier joint ... et n'hésite pas s'il y a un problème ou si tu as une question.
 

Pièces jointes

  • probleme (adrien80) V2.xlsm
    16 KB · Affichages: 30

Adrien80

XLDnaute Nouveau
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Merci encore pour ta réponse Modeste

Afin de bien comprendre ton code qu'est ce qu'il faudrait changer si le 1 devient 10, le 2 devient 20, le 3 devient 30 etc ... et le 6 devient 60 ?

Merci encore

Bonne soirée
Cordialement
 

Modeste

XLDnaute Barbatruc
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonjour,

Si tu parles des chiffres présents en colonne A (et séparés par des virgules) et qu'ils doivent être comparés aux nombres de 10 à 60 (au lieu de 1 à 6) , la solution est simple: dans le code, modifie la 10e ligne comme ceci:
Code:
If tabCH(x) * 1 = i * 10 Then tabRes(i - 1) = tabRes(i - 1) & tabN(x) & ", "
(la modif, c'est la multiplication par 10 :D)

Si les nombres risquent de varier dans le temps, on pourrait aussi utiliser les valeurs que j'avais indiquées en ligne 1 (colonnes C à H) de mon dernier exemple. Si ça t'intéresse, la même ligne peut alors s'écrire comme suit:
Code:
If tabCH(x) * 1 = Cells(1, 2 + i) Then tabRes(i - 1) = tabRes(i - 1) & tabN(x) & ", "


Si d'aventure la macro mettait du temps à s'exécuter (parce que le volume de données à traiter serait conséquent), on pourrait s'y prendre encore autrement (mais si tu n'as rien dit jusqu'ici, je suppose que tu n'as pas eu ce souci!?)
 

Adrien80

XLDnaute Nouveau
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonsoir Modeste

C'est Super !!! c'est exactement cela :)

C'est vrai que la macro met un peu de temps car j'ai beaucoup de données =/

Quelles sont les variables sur lesquelles on peut jouer ?

Merci d'avance
Cordialement
 

laurent950

XLDnaute Accro
Re : Extraire du texte dans une même cellule avant des virgules - fonction excel

Bonsoir Modest, Adrian

Adaptable en fonction du nombre et traitement ultra rapide :

Le decoupage se fait en fonction de la colonne A (1,34,,2,74,56,3,4,5,6) pour le dispatche dans les cases.

Code ci dessous :

VB:
Option Base 1
Sub schtroumph()
Dim tabRes() As Variant
tabRes = Range(Cells(2, 1), Cells(Cells(65536, 1).End(xlUp).Row, 2))
Dim max As Double
max = 0
For i = LBound(tabRes, 1) To UBound(tabRes, 1)
    If max < UBound(Split(tabRes(i, 1), ",")) + 1 Then
        max = UBound(Split(tabRes(i, 1), ",")) + 1
    End If
Next i
ReDim Preserve tabRes(LBound(tabRes, 1) To UBound(tabRes, 1), LBound(tabRes, 2) To 2 + max)
 ' Nettoyage zone
Range(Cells(2, 3), Cells(Cells(65536, 1).End(xlUp).Row, 2 + max)).ClearContents

For i = LBound(tabRes, 1) To UBound(tabRes, 1)
temp1 = Split(tabRes(i, 1), ",")
temp2 = Split(tabRes(i, 2), ",")
    For j = LBound(temp1) To UBound(temp1)
        If tabRes(i, temp1(j) + 2) = Empty Then
            tabRes(i, temp1(j) + 2) = Split(tabRes(i, 2), ",")(j)
        Else
            tabRes(i, temp1(j) + 2) = tabRes(i, temp1(j) + 2) & "," & Split(tabRes(i, 2), ",")(j)
        End If
    Next j
Erase temp1, temp2
Next i
Cells(2, 1).Resize(UBound(tabRes, 1), UBound(tabRes, 2)) = tabRes
End Sub

Fichier joint.

Laurent
 

Pièces jointes

  • probleme (adrien80) V3 Acceleration traitement donnees.xlsm
    18.1 KB · Affichages: 28
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 106
Messages
2 085 352
Membres
102 871
dernier inscrit
Maïmanko