Extraction d'un nombre d'une cellule alphanumérique plus addition
Résoluccm81 Messages postés 11033 Statut Membre -
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
10 réponses
Extraction d’un nombre dans des cellules contenant ANJ10, ANJ10+2 ou ANJ10+5 et l’addition du nombre extrait pour obtenir 10, 12 ou 15 selon le cas.
Plusieurs formules Excel ont été proposées, notamment une solution qui vérifie les cinq premiers caractères et applique 10+DROITE(A2;1) afin d’obtenir 10, 12 ou 15 selon ANJ10, ANJ10+2 ou ANJ10+5.
D’autres contributions proposent des versions équivalentes avec SI imbriqués ou des variantes adaptées à des préfixes différents, et certains échanges évoquent des tests et des limites liées au formatage des cellules.
En cas de besoin, la méthode peut être adaptée pour gérer d’autres préfixes ou longueurs, par exemple en combinant GAUCHE et DROITE ou des formules plus générales.
-
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 -
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 !-
-
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 ! -
-
-
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 -
Bonjour à tous
Avec une petite fonction personnalisée (macro)
https://www.cjoint.com/c/IBjtBb2KIzB
Cdlmnt -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
A l'ancienne !
https://mon-partage.fr/f/VzJ26Xad/
Crdlmt -
Bonjour,
au plus simple :=10+DROITE(A2;1)
eric
-
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") -
Voici l'intégralité des variables:
https://www.cjoint.com/c/IBkwkxsogJI-
-
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));"") -
-
-
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
-
-
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 -
Merci a tous pour votre patience et votre temps... Mon problème est réglé...