Extraction de texte d'une partie de cellule

Nino63

XLDnaute Nouveau
Bonjour,

Je ne sais pas si c'est uniquement un problème de programmation ou s'il y a une fonction directe dans excel.

J'ai actuellement un fichier excel avec des cellules ayant des valeurs du type :" Jouets en bois1VendreViande hachée2VendrePlastique2Vendre..." de longueurs différentes.

Je souhaiterais recopier les valeurs de chaque cellule et extraire des parties pour obtenir des colonnes avec en en-tête le nom de l'article ("Jouet en bois"; "Viande Hachée"; "Plastique"...) et en dessous le chiffre correspondant ("1"; "2"; "2")

Voilà, j'espère avoir été assez clair. N'hésitez pas à poser vos questions pour que j'éclaircisse si nécessaire.
Comme vous avez pu le remarquer, mon problème est surtout d'extraire les valeurs et le mettre ailleurs; après s'il faut, je peux les mettre en forme avec un tableau croisée par exemple.

Par avance, un énorme merci.

En pièce joint voici un exemple de base et de réalisation souhaitée.
 

Pièces jointes

  • Test extraction.xls
    13.5 KB · Affichages: 208
  • Test extraction.xls
    13.5 KB · Affichages: 213
  • Test extraction.xls
    13.5 KB · Affichages: 206

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

Merci à tous les deux.

abcd : j'avais effectivement résolu mon problème après un peu plus de réflexion

C@thy : J'ai voulu faire un autre programme avec le produit avec espace dans une colonne et avec tiret dans une autre colonne, tout çà sur une autre feuille.
Mais je ne sais pas comment rechercher une fraction de mot dans une cellule (ex : bague en diamants 2; on recherche "Bague en diamants") qui ferait référence à une cellule d'une autre feuille ("Bague en diamants" est écrit sur une autre feuille) et une fois trouver, on remplace cette fraction par une autre cellule avec le bon mot (Bague_en_diamants).
C'est bon.... on peut respirer!

Ne forcer pas trop non plus, vous n'aurez pas de rivière_de_diamants, mais juste de sincères_remerciements.
 

abcd

XLDnaute Barbatruc
Re : Extraction de texte d'une partie de cellule

Re,

Ce petit problème me "turlupine", car je souhaite le résoudre dans la même cellule et de façon simple !

En attendant, dans une colonne voisine :
=SI(ESTNUM(DROITE(A1)*1);SUBSTITUE(SUBSTITUE(A1;" ";"_");"_";" ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";"")));A1)

Viande de porc 15 → Viande_de_porc 15
Viande de porc → Viande de porc

La nuit portera conseil !

abcd
 

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

Est-ce que j'ai posé une colle à des grands maîtres (parce que vous êtes des grands maîtres à mes yeux!)?

En attendant bonne nuit à vous deux, M. (je suppose) abcd et Ma_chère_C@thy (si je peux me permettre). ;)
 

abcd

XLDnaute Barbatruc
Re : Extraction de texte d'une partie de cellule

Bonjour C@thy,

Je suis au regret de t'annoncer que ta formule ne répond pas aux contraintes.
Vois la pièce jointe, avec une variante de ma formule initiale (plus courte).

abcd
 

Pièces jointes

  • ninoV2.xls
    23 KB · Affichages: 70

C@thy

XLDnaute Barbatruc
Re : Extraction de texte d'une partie de cellule

Ah ben oui, oilà, l'est mieux la formule.

Quant à moi j'étais pas bien réveillée ce matin (!)

ce que je voulais faire c'est ça :

Code:
=SI(ESTNUM(DROITE(A1)*1);SUBSTITUE(SUBSTITUE(A1;" ";"_");"_";" ";NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";"")));SUBSTITUE(A1;" ";"_"))

mais ta formule raccourcie est nettement plus mieux bien!

Bises

C@thy
 

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

Ouaouh çà bosse dure.

C'est vraiment sympa çà!

Je suis même désolé, car vous êtes plus actif que moi sur le forum :p


Je progresse dans mon fichier, et j'ai de nouveau 2 questions :
- dans la base, j'ai parfois quelque chose après les nombres que je souhaite supprimer. Peut on l'intégrer dans a formule? (au pire, je l'ai fait avec une macro, mais vu que vous êtes fort, j'en profite, ce sera plus propre)
Ex : Viande de porc 24 Test => Viande_de_porc 24

- Une fois mon tableau réalisé, que recherche pour 1 produit le max et le nom du magasin.
Ex : En tapant un produit (liste de choix pour que ce soit plus simple, je suppose) "Bague_en_diamant" je trouve que la meilleur qualité est "32" dans le "magasin C".

Ensuite je m'amuserais à modifier la formule pour croiser les infos et à l'inverse connaitre la meilleure qualité de tel magasin pour tel produit ou quel est le magasin avec une qualité supérieur ou égale à tel qualité...

Question bonus : pourrait-on avoir le classement des 3 meilleures qualités?

Sincèrement je trouve génial que quelqu'un m'aide sans me connaitre et juste pour le plaisir.
En ces temps qui courent...

Une fois le travail réalisé, je pourrait savoir où trouver les meilleures Bague_en_diamants pour C@thy et le Meilleure_restaurant pour abcd.
Et avec un peu de chance... le moins cher!
 

abcd

XLDnaute Barbatruc
Re : Extraction de texte d'une partie de cellule

Bonjour,

Pour supprimer un eventuel texte qui suivrait le nombre, on pourrait le faire par formule (matricielle) complexe.
Si tu veux remplacer la macro par une formule, qui pourrait être combinée à la précédente, fais signe, j'ai un peu de temps durant le weekend (lol).
Pourrais-tu confirmer que le maximum de caractères du nombre est bien 2.

Pour le nom du magasin correspondant au max d'un produit :
dans une cellule quelconque :
=INDEX($A$2:$A10;EQUIV(MAX(DECALER($A$1;;EQUIV("diamants";$B$1:$BX$1;0);10));DECALER($A$1;;EQUIV("diamants";$B$1:$BX$1;0);10))-1)

Pour les deux dernières questions il y a lieu de préciser ce que tu entends par "qualité".

abcd
 

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

formule (matricielle) complexe => alors là ce n'est carrément pas de mon niveau

Le truc, c'est que des fois il n'y a rien, des fois il y a quelque chose après les nombre; en général "1 espace" et "Vendre" (" Vendre").
La formule devra faire pour les 2 cas.

Le nombre de caractère max est de 3 chiffres

Pour la formule, je la testerai plus tard, je dois partir.

Par qualité j'entendais les nombres, en imaginant que ceux-ci correspondent à un niveau de qualité (ex : 1: produit moyen, 2: produit bon, 3 : produit très bon...).
En gros si je recherche un produit top qualité de niveau 54, où est-ce que je peux le trouver?


Merci pour tout.

PS : question bonus (encore) : est ce que ces formules fonctionnent sous OpenOffice? Ne passe pas 3h pour voir, sinon je les testerais moi-même.

Re-PS : je serais certainement moins actif dans les jours qui suivent car je suis en vacances.
 

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

Me voici de retour de vacances.

Je me remet sur le dossier =>

Sauf erreur de ma part la formule

=INDEX($A$2:$A10;EQUIV(MAX(DECALER($A$1;;EQUIV("Pétrole";$B$1:$BX$1;0);10));DECALER($A$1;;EQUIV("Pétrole";$B$1:$BX$1;0);10))-1)

me donne toujours la dernière entreprise ayant un nombre pour le produit.
Ex : pour "Pétrole" => me donne Magasin D qui est le dernier dans la liste à avoir une nombre pour pétrole.

Autre problème (bizarre!)
Si je change le nom du magasin C dans la feuille "Base", alors le tableau résultats est faux puisqu'il recopie la dernière ligne en face de la ligne du ex-Magasin C.
 

Pièces jointes

  • NinoV5.xls
    46.5 KB · Affichages: 60
Dernière édition:

abcd

XLDnaute Barbatruc
Re : Extraction de texte d'une partie de cellule

Bonjour,

Et les vacances ?

Première question :
La formule est corrigée sous la pièce jointe.

Deuxième question :
Je remarque en effet que les noms des magasins doivent être triés.
Remplace MagasinC par X et cela fonctionne, mais pas pour A
Il faudra apporter une petite correction à l'une des formules, je regarde dès que j'ai cinq minutes.

abcd
 

Pièces jointes

  • NinoV6.zip
    10.5 KB · Affichages: 28

Nino63

XLDnaute Nouveau
Re : Extraction de texte d'une partie de cellule

Les vacances se sont bien passées, merci. ;)

La nouvelle formule fonctionne. Et non pardon je fait une correction : elle me donne toujours le 2ème magasin.

Pour le tri croissant, en attendant, je met un numéros devant le nom du magasin (c'est pas très pro mais çà marche :D)

Question :
Pour compléter ma recherche de magasin ayant la max produit, j'aimerai en plus afficher le nombre du produit. En gros faire le croisement entre le magasin (rechercher auparavant et le produit)
Avec cette formule, je pourrais me débrouiller (tout seul, normalement) pour inverser les recherches, c'est-à-dire rechercher le max produit d'1 magasin, voire même rechercher le magasin avec le nombre du produit supérieur ou égal à X.

Question bonus :
Et dans l'idéal par la suite avoir pour chaque recherche un classement (des 3 premiers par exemple).

Ex : je veux des diamants supérieurs ou égal à 15. Après la recherche il y a 3 magasins qui répondent aux critères. Je ne veux pas travailler avec le premier, mais comme je connais le classement des 3 premiers, je pourrais choisir le 2ème.
Ouah, c'est compliqué çà! :eek:

Mais chaque chose en son temps.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 506
Messages
2 089 126
Membres
104 040
dernier inscrit
pb91