Extraire le "6" de boite (x6) ???

Résolu/Fermé
imotepe - 19 avril 2010 à 09:06
 imotepe - 21 avril 2010 à 07:52
Bonjour,

Je me retrouve confronté à un problème pour lequel je souhaiterai avoir vos conseils.

Voilà, j'ai une base de donnée avec ce type de représentation :
- boite (x6)
- boite
- bouteille (x12)

Ma mission extraire le 6 du "boite (x6)" pour réaliser des calcules par exemple :
lors d'un inventaire, l'opérateur dit : il y a 2 boites de x6
Moi je voudrais automatiser le 2*6
Je voudrais aussi que quelque soit la désignation excel soit en mesure de m'extraire un chiffre qui se trouve aprés un x et quelque soit la longeur de la désignation exemple :
- disjonteur antidifférentiel (x2)

J'ai pu me débrouiller pour extraire le "6" du boite (x6) avec la fonction stxt
Maitenant dans les autres cellules ou je n'ai qu'une désignation de type "boite", ma fonction stxt m'extrait "e"

Se que je voudrais faire c'est qu'avec un si, excel puisse me virer tous ce qui n'est pas valeur numérique
exemple = si(a1<>de numérique alors ""; stxt(a1;trouve(" ")+........

Merci d'avance à tous ceux qui aurait une solution à me proposer

Cdt



A voir également:

16 réponses

Ricky38 Messages postés 4347 Date d'inscription samedi 15 mars 2008 Statut Contributeur Dernière intervention 2 novembre 2013 1 458
19 avril 2010 à 14:25
Salut,

exemple si boite (x6), boite et bouteille (x12) sont dans ta colonne A
En B1 tu mets cette formule
=SI(ESTNA(1*STXT(A1;EQUIV(VRAI;ESTNUM(1*STXT(A1;LIGNE($1:$20);1));0);NB(1*STXT(A1;LIGNE($1:$20);1))));"Inconnu";1*STXT(A1;EQUIV(VRAI;ESTNUM(1*STXT(A1;LIGNE($1:$20);1));0);NB(1*STXT(A1;LIGNE($1:$20);1))))


Important Tu dois entrer cette formule en tant que matrices en appuyant sur CTRL+MAJ+ENTRÉE (tu vas voit des {} apparaitre au début et à la fin de ta formule)

Ensuite en sélectionnant la cellule B1 tu vas voir une petite poignée en bas à droite, tu cliques et tu descends dans ta colonne B

Si la cellule A ne contient pas de chiffre ça va mettre Inconnu, tu peux le changer pour autre chose si tu veux.
0
Ok merci ricky38 j'essaye demain matin et je reviens vers toi.
Je dois te dire que ta formule est pluôt énorme.......

J'été content de moi lorsque j'ai pu extraire mon 6 du x6 mais la wouhou!! sa déménage.

Bonne fin de journée
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 19/04/2010 à 17:37
Bonjour
une autre option sans matriciel, en B1 pour la cellule A1:
=SI(ESTERREUR(TROUVE("x";A1));"";STXT(A1;TROUVE("x";A1)+1;NBCAR(A1)-TROUVE("x";A1)-1)*1)
Crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
19 avril 2010 à 19:02
Bonjour tout le monde,

Voilà qui est plus raisonnable comme formule ;-)
La même un peu modifiée :
- rechercher "(x" au lieu de "x" (qu'elle ne soit pas trompée si un libellé comporte un x)
- cherche() au lieu de trouve() pour qu'elle accepte x et X
- met 1 si non trouvé, que le résultat puisse être utilisé dans une multiplication.

=SI(ESTERREUR(cherche("(x";A1));1;STXT(A1;cherche("(x";A1)+2;NBCAR(A1)-cherche("(x";A1)-2)*1)
eric
0
Bonjour et merci à vous tous,

Je vais tester vos propositions de se pas.......

La formule d'éric me semble la plus convenir puisque lorsque j'ai des désignation sans ses histoires de x6, x12 xxxxxx,,, je voudrais qu'un SI me permette de ne ressortir un "" ou un 1 car les "" pauses vite problèmes.

Encore une fois merci

Cdt
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bon voilou je viens de tester vos approches et bon je n'ai pas réussis à faire se que je voulais.

Il me semble qu'il est possible de poster un fichier excel afin de vous faire voir plus concrêtement ce que je souhaite.

Si quelqu'un aurait le lien du ci joint!!!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
20 avril 2010 à 08:15
bonjour,

www.cijoint.fr
coller ici le lien fourni
eric
0
Bonjour,

Voici le lien.
Désolé d'avoir mis un peu de temps mais les inventaires c'est l'enfer.....

Merci d'avance pour vos retour.

Cdt

http://www.cijoint.fr/cjlink.php?file=cj201004/cijy4ws7Iy.xls
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
20 avril 2010 à 11:53
Les formules proposées fonctionnent très bien...
en D5: =SI(ESTERREUR(CHERCHE("(x";C5));1;STXT(C5;CHERCHE("(x";C5)+2;NBCAR(C5)-CHERCHE("(x";C5)-2)*1)
à recopier vers le bas
eric
0
Ok eric et merci,

En effet j'ai merdouillé car j'ai pensé que je devais remplacer le x par mes désignations.....oups!!!!

Nickel sa marche super bien

Merci beaucoup à vous tous et toutes.....

Cdt
0
Eric j'aurais une question,

J'aimerais comprendre à 100% ta formul.
Je me permet donc cette question:
- que signifie le ("(x")??
Est ce comme ça que je peux différencier des valeurs numérique d'alphanumérique dans excel?
Enssuite, je connais nbcar qui compte le nombre de caractère mais je ne comprends pas le -2??

En tous cas sa marche super bien et c'est ce que je voulais....seulement j'aime bien comprendre......

Merci d'avance

Cdt
0
Re-bonjour,

Vu la facilité avec laquelle certain d'entre vous sont succeptible de trouver des solutions performantes, je me permet de reposter un fichier.

Le problème est en gros le même et ce trouve que la feuille 2 du fichier excel.
Vous pourrez voir que lorsque certaine ref sont comptabilisées, c'est sous la forme 1P+1 qui veut dire 1 pochette pleine +1 unitée.

Toute à l'heure je vous est demandé d'extraire le 5 du x5 pour pouvoir le multiplier par le 1 du 1P puis de rajouter +1.

Comme vous le verrais le fichier était construire de façon à l'extraire de manuellement.

Maintenant que j'ai pu juger de la capacité de certains d'entre vous à avoir des formules qui "tue" je me permet de vous re-soliciter.

Merci d'avance pour votre aide

Cdt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 avril 2010 à 14:09
Bonjour
nous on veut bien mais il est ou le fichier?
crdlmnt
0
Sa sera plus simple si je vous mets le lien.......

http://www.cijoint.fr/cjlink.php?file=cj201004/cijkhELXGw.xls

Merci.

Cdt
0
D'aprés ma demande et grâce à l'analyse de vos formule j'ai pu résoudre mon problème juste en utilisant la fonction stxt(c15;1;1) puis dans une cellule à coté stxt(c15;4;1).
Le problème est que c'est moi qui indique à la fonction stxt la position de la donnée à extraire, alors normalement ce type de donnée aura toujours les mêmes positions mais ""normalement".

Moi ce que je souhaite c'est laisser à l'entreprise un outil fiable et adaptable.

Merci donc pour votre aide.

(Je voulais juste montrer que je n'attends pas que sa tombre tous cuit)

Cdt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 avril 2010 à 14:29
Re
j'ai regardé votre fichier, mais ne comprend pas du tout ce que vous voulez faire??
vous avez en feuille 2 un tableau qui souligne quelques postes en rouge, mais on ne voit pas où prendre des références pour traiter ce que vous demandez?
Ou alors
faut il faire référence au tableau feuille 1, résultat trouvés en colonne D, pour afficher quelque chose en colonne C feuille 2 et si oui comment fait on pour les noms n'ayant pas de références, ou plusieurs en feuille 1
'Soupape passe à 3 pourquoi?, injecteur à 3 idem..., etc?...)
crdlmnt

0
Bonjour Vaucluse,

Voici comment c'est déroulée ma demande:
1) Feuille 1 du fichier excel : je souhaitais que l'on m'aide à extraire le 5 du membrane (x5) par exemple.

Eric m'a apporté la solution.

2) Feuille 2 du fichier excel : je voudrais voir si il est possible maintenant d'extraire le 1 du 1P+1.
De cette manière, je souhaite dans tous les cas ou ma désignation reprends un .... (x5) le multipier par le 1 du 1P par exemple.

Ceci m'éviterai de rentrer manuellement des quantitées dans les colonnes qtées pleine et qtées unitaire.

De cette façon j'automatise le fichier qui me servira pour des inventaires et pour la gestion des stocks tout en ne changeant pas la manière de travailler de la société pour laquelle j'effectue une mission logistique.

J'espère avoir été claire dans mes explications.

Merci d'avance pour vos retours.

Cdt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
20 avril 2010 à 15:00
Rere
toujours pas tout compris, mais s'il s'agit, en colonne D:
_d'extraire de la cellule en C la valeur avant P
_de la multiplier par la valeur en B
_et s'il n'y a pas de P de renvoyer la valeur de C en D :
voila la formule:
=SI(ESTERREUR(TROUVE("P";C6));C6;STXT(C6;1;TROUVE("P";C6)-1)*B6)
à tirer en bas du tableau
elle renvoi 5 en D13
Crdlmnt
0
Re-bonjour vaucluse,

Merci pour ton aide en effet ta formule marche ... nickel
J'ai maintenant réussi à automatiser mon fichier.

J'espère juste que Eric pourra me faire une brève explication de sa formule.
Stxt trouve et cherche wouhou!!! puissant quand même!!!

Bonne journée à vous tous.

Cdt
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 21/04/2010 à 07:06
En attendant Eric, je reprend tes questions au message 11 (ici:https://forums.commentcamarche.net/forum/affich-17431824-extraire-le-6-de-boite-x6#11)

que signifie le ("(x")??
Eric a très bien vu le risque de ne faire référence qu'à x dans cette formule il peut et c'est le cas y avoir d'autres x dans les textes en amont de la quantité à éditer.
En plaçant la 1° parenthèse avec le x dans le texte entre guillemets , texte à chercher ou à trouver (ça revient au même) il élimine le risque d'erreur car la formule cherche l'ensemble (x

Enssuite, je connais nbcar qui compte le nombre de caractère mais je ne comprends pas le -2??
le -2 ou le +2 de la formule ne servent qu'à réaligner le nombre à éditer par rapport au nombre renvoyé par le code cherche. Vous pourrez constater en supprimant ces valeurs dans la formule que l'édition "tombe à coté" de la valeur numérique cherchée.

L'ensemble CHERCHE("(x)";F14)édite le rang de la parenthèse dans le texte, et donc le +2 donne le départ du texte à éditer, après le x

L'ensemble NBCAR(C5)-CHERCHE("(x";F14)-2 permet de ressortir le nombre de caractères à éditer qui reste derrière le x
soit -1 pour le x puisque le code CHERCHE ressort le rang de la 1° parenthèse et encore - 1 pour déduire la dernière parenthèse.

Cet ensemble de codes permettent de traiter le problème avec un nombre à caractères variables. A noter qu'elle ne marche plus si vous avez un caractère supplémentaire derrière la dernière parenthèse, mais à priori ce n'est pas le cas

si jamais ça se présentait,! cette variante ci dessous marche dans tous les cas, en éditant que la valeur derrière le x et entre les deux parenthèses:
=SI(ESTERREUR(CHERCHE("(x";C5));1;(STXT(C5;CHERCHE("(x";C5)+2;CHERCHE(")";C5)-CHERCHE("(x";C5)-2)*1))

crdlmnt un grand bonjour à Eric en passant



Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 20/04/2010 à 22:12
Re,

Pas grand chose à ajouter...
Et vu que je n'avais fait que modifier sa formule vaucluse est à même de donner toutes les explications ;-)
Bonne soirée à tous :-)
eric

PS : au passage, des news de mistral vaucluse ?
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
Modifié par Vaucluse le 21/04/2010 à 07:05
Salut Eric
j'ai bien un peu pensé que tu ne m'en voudrais pas de m'avancer un peu là, sur ta proposition..
pour Mistral, oui je pense que l'on va arriver à quelque chose, on " bosse " en privé, tu peux le contacter si tu veux.
bonne journée Eric
Bien amicalement
0
Bonjour,

Merci pour votre aide et pour les explications....

Passez une bonne journée.

Cdt
0