Formule pour convertir poids dans excel
Résolu
Sepion06
Messages postés
4
Statut
Membre
-
Sepion06 Messages postés 4 Statut Membre -
Sepion06 Messages postés 4 Statut Membre -
Bonjour les humains,
Après moulte recherche dans mon cerveau, sur youtube, divers forum, site spécialisé dans les fonctions Excel, je n'ai pas trouver de solution à mon problème.
J'ai le tableau excel d'un fournisseur de produit frais, les données sont rentré de différente façon dans la même colonne.
J'ai réussi à retirer les lettres et les "." en revanche je n'arrive pas à homogénéiser les résultats :
Env. 2.5KG
2.5 KG
125g
125g
2 x 125g
Le résultat attendu est le suivant :
2500
2500
125
125
250
Merci d'avance :)
Configuration: Configuration: Windows / Chrome 102.0.0.0
Après moulte recherche dans mon cerveau, sur youtube, divers forum, site spécialisé dans les fonctions Excel, je n'ai pas trouver de solution à mon problème.
J'ai le tableau excel d'un fournisseur de produit frais, les données sont rentré de différente façon dans la même colonne.
J'ai réussi à retirer les lettres et les "." en revanche je n'arrive pas à homogénéiser les résultats :
Env. 2.5KG
2.5 KG
125g
125g
2 x 125g
Le résultat attendu est le suivant :
2500
2500
125
125
250
Merci d'avance :)
Configuration: Configuration: Windows / Chrome 102.0.0.0
A voir également:
- Formule pour convertir poids dans excel
- Formule excel si et - Guide
- Formule moyenne excel plusieurs colonnes - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excel - Guide
4 réponses
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).
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
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
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.