Extraction d'un nombre d'une cellule alphanumérique plus addition

Résolu
Shaman96 Messages postés 21 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
Bonjour,

Je travaille sur un projet personnel et je frappe un mur:

J'ai des cellules de formats standard dans un tableau
En simplifiant, chaque cellule peut avoir une des valeurs suivante: ANJ10, ANJ10+2 et ANJ10+5

Je désire extraire les nombres de la cellule et, si possible, faire l'addition suite à l'extraction.
Ainsi donc, ANJ10 donnerait un résultat 10, ANJ10+2 donnerait un résultat 12 et ANJ10+5 donnerait un résultat de 15

Merci de votre attention
A voir également:

10 réponses

DjiDji59430 Messages postés 4323 Statut Membre 701
 
Bonjour,

C'est trop simplifié !
Il y a toujours 3 lettres avant le premier chiffre ?

Un fichier (test) mis sur https://www.cjoint.com/ permettait de répondre plus précisément à ta question et avec des exemples exhaustifs.

Crdlmt
0
Yoyo01000 Messages postés 1720 Statut Membre 168
 
Bonsoir,
Si j'ai bien compris ta requête :

=SI($A1="ANJ10";"10";"")&SI($A1="ANJ10+2";"12";"")&SI($A1="ANJ10+5";"15";"")

Formule à mettre dans la colonne où tu veux que se situe le résultat.

$A1 de la formule est la colonne A et la cellule 1 si les données que tu veux transformer se situent dans cette colonne sinon, à toi de modifier.

Formule à tirer vers le bas.

Merci de préciser si je réponds à ta demande !
0
Shaman96 Messages postés 21 Statut Membre
 
Merci, je suis en train de la tester... Ça semble marcher pour le moment... Mon tableau produit une erreur occasionnellement mais c'est probablement une erreur de formatage...

Une petite question: A quoi sert le "$"? J'essaie de comprendre la logique derrière la formule.

Merci
0
Yoyo01000 Messages postés 1720 Statut Membre 168
 
Le $ sert à figer soit la colonne soit la ligne.
Quand tu "tires" une formule avec par exemple $A$1 dans celle-ci :
si tu tires à droite ça t'évite de te retrouver avec B1 dans celle-ci
si tu tires vers le bas, ça t'évite de te retrouver avec A2 dans celle-ci

Ce $ peut s'avérer très pratique dans certaines situations !
0
Shaman96 Messages postés 21 Statut Membre
 
Ah! Merci pour l'éclaircissement!
0
Shaman96 Messages postés 21 Statut Membre
 
Il y a effectivement toujours trois lettres avant le premier chiffre.

Bien entendu, le résultat (10, 12 ou 15) sera reporté dans une autre cellule...

Ex: Si A1 = ANJ10+5 alors B1 = 15

J'ai testé avec =SI(DROITE(A1;1)="5";15;10) mais ceci me donne des faux résultats de 10
0
Yoyo01000 Messages postés 1720 Statut Membre 168
 
As-tu essayé ma formule ?!
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Bonjour à tous

Avec une petite fonction personnalisée (macro)
https://www.cjoint.com/c/IBjtBb2KIzB

Cdlmnt
0
Shaman96 Messages postés 21 Statut Membre
 
Quand j'essaie de cliquer sur le lien je tombe sur une page 404... :(
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Essaies celui-là
https://mon-partage.fr/f/NPHpcaVf/
0
Shaman96 Messages postés 21 Statut Membre
 
C'est si simple que ça? =EVALUE et c'est tout?

Merci, je teste immédiatement!
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
oui, le code de la macro est dans Module 1 (Alt-F11 pour y accéder)
0
Shaman96 Messages postés 21 Statut Membre
 
Ok je ne connais pas le VBA... Comment est-ce que je pourrais l'appliquer sur ma feuille?
0

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

Posez votre question
DjiDji59430 Messages postés 4323 Statut Membre 701
 
Bonjour,

A l'ancienne !
https://mon-partage.fr/f/VzJ26Xad/

Crdlmt
0
Shaman96 Messages postés 21 Statut Membre
 
Merci pour le tuto, je le garde pour usage ultérieur...

Cependant, j'ai besoin du résultat dans une seconde cellule alors que votre solution la rapporte à la cellule initiale.

Donc:
Si A1 = ANJ10 B1 = 10
Si A1 = ANJ10 + 2 B1 = 12
Si A1 = ANJ10 + 5 B1 = 15
0
DjiDji59430 Messages postés 4323 Statut Membre 701
 
Tu retires le A1& dans la formule !!
0
Shaman96 Messages postés 21 Statut Membre
 
Merci, je teste ça et je vous reviens...
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Bonjour,

au plus simple :
=10+DROITE(A2;1)

eric
0
Shaman96 Messages postés 21 Statut Membre
 
Simple et élégant... J'aime bien...
Si je comprends bien, dans le cas ou A2 = ANJ10 alors le résultat serait 10+0 donc 10, c'est ça?

Est-ce que l'on pourrait vérifier si la cellule contiens une valeur à priori?

Genre: si A1 = ANJ10 alors B1 =10+DROITE(A1;1) sinon ne rien faire
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
=SI(GAUCHE(A2;5)="ANJ10";10+DROITE(A2;1);"")
0
Shaman96 Messages postés 21 Statut Membre
 
Merci... Je teste et je vous reviens!
0
Shaman96 Messages postés 21 Statut Membre
 
Merci, ça fonctionne!
0
Shaman96 Messages postés 21 Statut Membre
 
Merci à tous pour vos réponses... Vous m'avez tous apporté des éclairage qui me seront très utile

Je vais prendre la solution de eriiic:

=SI(GAUCHE(A2;5)="ANJ10";10+DROITE(A2;1);"0")
0
Shaman96 Messages postés 21 Statut Membre
 
Voici l'intégralité des variables:

https://www.cjoint.com/c/IBkwkxsogJI
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Et ?
=SIERREUR(SI(CHERCHE("ANJ10";A1);10+DROITE(A1;1));"")
?
eric
0
Shaman96 Messages postés 21 Statut Membre
 
Et je remplace le ANJ10 pour une autre variable le cas échéant, c'est ça?

Donc:
=SIERREUR(SI(CHERCHE("ANJ10";A1);10+DROITE(A1;1));"")
=SIERREUR(SI(CHERCHE("BGJ10";A1);10+DROITE(A1;1));"")
=SIERREUR(SI(CHERCHE("MMJ10";A1);10+DROITE(A1;1));"")
etc... ?

Est-ce que cette formule pourrait chercher dans un tableau?

ex:

=SIERREUR(SI(CHERCHE("ANJ10";A1:P25);10+DROITE(A1;1));"")
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
Dit tout en détail parce que là on va y passer la semaine
0
Shaman96 Messages postés 21 Statut Membre
 
On oublie l'histoire du tableau, ce n'est pas une bonne idée anyway...

Je peux savoir de quoi est composé la formule?
Que font les SIERREUR et CHERCHE svp? J'essaie de comprendre comment vous en êtes venu a cette formulation.
0
eriiic Messages postés 25847 Statut Contributeur 7 279
 
C'est très bien expliqué dans l'aide excel, je ne ferai pas mieux.
Regarde pour chaque fonction que tu ne connais pas et revient si ça t'échappe toujours.
Sinon pour en grouper plusieurs :
=SI(SIERREUR(CHERCHE("ANJ10";A1);0)+SIERREUR(CHERCHE("BGJ10";A1);0+SIERREUR(CHERCHE("MMJ10";A1);0));10+DROITE(A1;1);"")


ou si c'est tous ceux avec J10 :
=SIERREUR(SI(CHERCHE("J10";A1);10+DROITE(A1;1));"")

eric
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
Macro modifiée
https://www.cjoint.com/c/IBln5xdyzRB

RQ1. S'il y a d'autres signes d'opération autres que "+", il faudra modifier ....
RQ2. merci à eric pour la rectification fichier avec extension .xlsm

Cdlmnt
0
Shaman96 Messages postés 21 Statut Membre
 
Merci, votre macro fait des merveilles... Elle règle 99% de mes problèmes...

Merci infiniment pour votre temps et votre patience...
0
Shaman96 Messages postés 21 Statut Membre
 
Merci a tous pour votre patience et votre temps... Mon problème est réglé...
0
ccm81 Messages postés 11033 Statut Membre 2 433
 
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)

Cdlmnt
0