Formule pour convertir poids dans excel
Résolu/Fermé
Sepion06
Messages postés
3
Date d'inscription
samedi 25 juin 2022
Statut
Membre
Dernière intervention
4 juillet 2022
-
Modifié le 25 juin 2022 à 10:12
Sepion06 Messages postés 3 Date d'inscription samedi 25 juin 2022 Statut Membre Dernière intervention 4 juillet 2022 - 4 juil. 2022 à 13:29
Sepion06 Messages postés 3 Date d'inscription samedi 25 juin 2022 Statut Membre Dernière intervention 4 juillet 2022 - 4 juil. 2022 à 13:29
A voir également:
- Formule pour convertir poids dans excel
- Formule excel pour additionner plusieurs cellules - Guide
- Formule excel si et - Guide
- Formule excel moyenne - Guide
- Excel mise en forme conditionnelle formule - Guide
- Formule excel - Guide
4 réponses
brucine
Messages postés
18496
Date d'inscription
lundi 22 février 2021
Statut
Membre
Dernière intervention
8 janvier 2025
2 762
25 juin 2022 à 10:15
25 juin 2022 à 10:15
Bonjour,
Je ne peux pas vérifier directement, mon PC est planté, il me semble de mémoire que si une cellule texte C1 contient 2.5 il suffit d'écrire =C2*1 pour la transformer en nombre (2,5) sans quoi il faut rechercher et remplacer tous les points pour les remplacer par des virgules.
Tu ne peux pas davantage supprimer l'unité de masse sans quoi Excel n'a aucun moyen de faire la différence entre 2,5 g et 2,5 kg: il faut appliquer une conditionnelle multipliant par 1000 si par exemple DROITE(C2;2)="KG".
Reste le problème des lots 2 x 125 g: on ne peut procéder de la même manière qu'en reconnaissant le caractère "x" s'il ne figure pas ailleurs (c'est improbable) ou par sa position si elle est toujours la même, la quantité toujours inférieure à 10 et le contenant toujours inférieur à 1000: de même manière, on fera alors une conditionnelle STXT(C2;3;1)="x" conduisant dans l'affirmative à multiplier le résultat converti en nombre par CNUM du caractère de gauche STXT(C2;1;1) par celui de la masse unitaire, si sur 3 caractères STXT(C2;5;3).
Je ne peux pas vérifier directement, mon PC est planté, il me semble de mémoire que si une cellule texte C1 contient 2.5 il suffit d'écrire =C2*1 pour la transformer en nombre (2,5) sans quoi il faut rechercher et remplacer tous les points pour les remplacer par des virgules.
Tu ne peux pas davantage supprimer l'unité de masse sans quoi Excel n'a aucun moyen de faire la différence entre 2,5 g et 2,5 kg: il faut appliquer une conditionnelle multipliant par 1000 si par exemple DROITE(C2;2)="KG".
Reste le problème des lots 2 x 125 g: on ne peut procéder de la même manière qu'en reconnaissant le caractère "x" s'il ne figure pas ailleurs (c'est improbable) ou par sa position si elle est toujours la même, la quantité toujours inférieure à 10 et le contenant toujours inférieur à 1000: de même manière, on fera alors une conditionnelle STXT(C2;3;1)="x" conduisant dans l'affirmative à multiplier le résultat converti en nombre par CNUM du caractère de gauche STXT(C2;1;1) par celui de la masse unitaire, si sur 3 caractères STXT(C2;5;3).
PapyLuc51
Messages postés
4431
Date d'inscription
dimanche 3 mai 2009
Statut
Membre
Dernière intervention
1 janvier 2025
1 450
25 juin 2022 à 11:15
25 juin 2022 à 11:15
Bonjour,
J'ai vu cette petite vidéo YouTube il n'y pas bien longtemps sur la création d'une fonction personnalisée pour extraire les nombres.
Tu peux peut-être t'en servir après avoir remplacé les point par les virgules
Cordialement
J'ai vu cette petite vidéo YouTube il n'y pas bien longtemps sur la création d'une fonction personnalisée pour extraire les nombres.
Tu peux peut-être t'en servir après avoir remplacé les point par les virgules
Cordialement
via55
Messages postés
14509
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
2 janvier 2025
2 739
27 juin 2022 à 00:44
27 juin 2022 à 00:44
Bonsoir à tous
Avec en A2 le texte épuré de tout ce qui n'est pas chiffres ou x, et avec le point remplacé par une virgule, formule pour multiplier les nombres décimaux par 1000 ou effectuer l'opération x :
=SI(NB.SI(A2;"*x*")=1;CNUM(GAUCHE(A2;TROUVE("x";A2)-1))*CNUM(DROITE(A2;NBCAR(A2)-TROUVE("x";A2)));SI(ENT(A2)<>A2;A2*1000;A2))
Ou sinon pour tout faire traiter par fonction personnalisée en VBA (suppression des textes, remplacement des points, conversion des kg en g et multiplication par quantités) voilà la fonction personnalisée à copier et coller dans un module de l'éditeur VBA (Alt + F11 pour ouvrir l'éditeur - Insertion Module - copier-coller la macro dans la plage
La fonction perso s'emploie ensuite comme toute fonction Excel selon la syntaxe = extrairenb(cellule de la chaîne à traiter)
Cdlmnt
Via
Avec en A2 le texte épuré de tout ce qui n'est pas chiffres ou x, et avec le point remplacé par une virgule, formule pour multiplier les nombres décimaux par 1000 ou effectuer l'opération x :
=SI(NB.SI(A2;"*x*")=1;CNUM(GAUCHE(A2;TROUVE("x";A2)-1))*CNUM(DROITE(A2;NBCAR(A2)-TROUVE("x";A2)));SI(ENT(A2)<>A2;A2*1000;A2))
Ou sinon pour tout faire traiter par fonction personnalisée en VBA (suppression des textes, remplacement des points, conversion des kg en g et multiplication par quantités) voilà la fonction personnalisée à copier et coller dans un module de l'éditeur VBA (Alt + F11 pour ouvrir l'éditeur - Insertion Module - copier-coller la macro dans la plage
Function extrairenb(item) a = WorksheetFunction.Substitute(item, "Env. ", "") b = WorksheetFunction.Substitute(a, ".", ",") If b <> a Then multi = 1000 Else multi = 1 c = WorksheetFunction.Substitute(b, "KG", "") d = WorksheetFunction.Substitute(c, "g", "") If Len(d) > 5 Then espac = WorksheetFunction.Find("x", d) pd = Left(d, espac - 1) * Right(d, Len(d) - espac) extrairenb = pd Else extrairenb = d * multi End If End Function
La fonction perso s'emploie ensuite comme toute fonction Excel selon la syntaxe = extrairenb(cellule de la chaîne à traiter)
Cdlmnt
Via
Sepion06
Messages postés
3
Date d'inscription
samedi 25 juin 2022
Statut
Membre
Dernière intervention
4 juillet 2022
4 juil. 2022 à 13:29
4 juil. 2022 à 13:29
Merci beaucoup pour cette fonction personnalisé !
Bonne continuation
Bonne continuation
25 juin 2022 à 10:35
J'y vois un peut plus claire. J'ai bien remplacé les "." par une "," je cherche maintenant à écrire une formule équivalente à celle si :
Exemple : 1,5
SI la cellule contient "," ALORS *1000
Exemple : 2 x 125
SI la cellule contient "x" ALORS remplacer "x" par "*" (pour multiplier 2*125) RESULTAT attendu : 250
J'essaye de différente manière mais sans succès.