Ignorer une lettre dans une cellule

Fermé
Vic - 19 sept. 2014 à 12:17
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 - 23 sept. 2014 à 12:25
Bonjour,

J'additionne un nombre de cellules avec sommeprod suivant la condition supérieur ou inférieur d'un nombre sur une plage de cellules.

Seulement les cellules de cette plage sont composé d'un nombre et d'une lettre. Ce qui fait planter la formule.

Je voudrez avec sommeprod ( je ne peux pas utiliser SOMME.SI.ENS car je suis sous exel 2003) ignorer la composante texte de ma cellule, pour qu'il addition sans buguer.

Cela est-il possible ?

En vous remerciant d'avance.

7 réponses

Dolgan Messages postés 44 Date d'inscription jeudi 17 avril 2014 Statut Membre Dernière intervention 1 octobre 2014 12
19 sept. 2014 à 12:39
Bonjour,

La composante texte se trouve-t-elle toujours au même endroit (1ère position / 2ème position, ...) ?

Dolgan
0
Elle est toujours en dernière position, mais les nombres sont variables.

C'est très bizarre car sommeprod bug en me donnant un résultat abérrant, mais ne me marque pas d'erreur du genre N/A ou Valeur .


NB: la lettre est en fait soit un ? ou un !
0
Dolgan Messages postés 44 Date d'inscription jeudi 17 avril 2014 Statut Membre Dernière intervention 1 octobre 2014 12
19 sept. 2014 à 13:01
Donc s'il n'y a qu'un "?" ou un "!" uniquement en dernière position, cette formule te donnera le nombre à additionner, sans la composante texte :

(si ta valeur est en A1)
=GAUCHE(A1;NBCAR(A1)-1)

Tu peux faire ça pour chacune de tes valeurs (cliquer-glisser). Puis tu termines en les additionnant avec SOMMEPROD.
0
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 1 057
19 sept. 2014 à 13:53
Bonjour,
Pour ne plus avoir une valeur de texte il faut multiplier par 1:
=GAUCHE(A1;NBCAR(A1)-1)*1
0
Bonjour,

Merci de vos réponse, mais je n'y arrive pas .

Voici la formule,

SOMMEPROD((Feuil1!$D$2:$D$8086="Gemcitabine")*((GAUCHE(Feuil1!$N$2:$N$8086;(NBCAR(Feuil1!$N$2:$N$8086)-1)*1))>ABS(10))*((GAUCHE(Feuil1!$N$2:$N$8086;(NBCAR(Feuil1!$N$2:$N$8086)-1)*1))<ABS(15))).

Pour le coup j'ai une erreur de #valeur...
0
PS: Si j'enlève les "*1" aux NBCAR ça ne marche pas non plus, et j'ai aussi une erreur de valeur
0
PS 2: Si je mets un + à la place du - j'ai pas d'erreur valeur, du coup je me demande le "-" du clavier numérique est bien un moins et non un tiré du 6 ?
0
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 1 057
22 sept. 2014 à 12:21
Bonjour,
Les #Valeur! viennent des cellules de la colonne N qui sont vides ou qui ne contiennent qu'un chiffre.
Essayez de créer une colonne auxiliaire avec cette formule recopiée sur la hauteur et d'utiliser cette colonne (numérique) dans le Sommeprod.
=1*SI(N2="";0;SUBSTITUE(SUBSTITUE(N2;"?";"";1);"!";"";1))

Nota: la fonction ABS() ne sert à rien ABS(10) fera toujours 10!
0
Nota: dans ma plage j'ai des valeurs négatives.

J'ai crée une colonne auxiliaire avec cette formule :=SI(ESTVIDE(Feuil1!$N$2:$N$8075);"";GAUCHE(Feuil1!$N$2:$N$8075;NBCAR(Feuil1!$N$2:$N$8075)-1)).

Cela m'affiche correctement le nombre sans le chiffre.

Seulement quand je dis à sommeprod d'utiliser la colonne auxiliaire il bug. ( Alors que si je fais un copié collé du résultat qui affiche seulement la valeur du résultat) il me donne les bonnes valeurs.

Donc je pense qu'il y a un problème avec le suivi de formule . Cela devient trop compliqué je mets le fichier en cijoint.

http://cjoint.com/?DIwmWBTGkT0

Je veux compter le nombre de cellules de la feuille 1 comprenant un % erreur compris entre 10 et 15 et le nombre supérieur à 15; ( Le reste de mon tableau fonctionne parfaitement, juste que je n'ai pas mis les valeurs dans la feuil 1 par soucis de simplification.)

Ici J'ai mis que les donnés de la Gemcitabine
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 411
22 sept. 2014 à 13:35
Bonjour
pour tranfoirmer votre colonne en num, il en faut un peu plus que ce que vous ave'z prévu

.votre valeur référence comporte un pont au lieu d'une virgule
le nombre de caractère texte est de deux puisqu'il y a un blanc (mais ça n'influe pas sur la formule)
le code GAUCHE renvoie du texte, donc ne peut pas servir en l'état à des calculs
la bonne formule en ligne 2 pour transformer en num:

=SI(N2="";0;GAUCHE(SUBSTITUE(N2;".";",");NBCAR(N2)-1)*1)

après quoi vous devriez pouvoir fonctionner

crdlmnt
0
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 1 057
Modifié par tontong le 22/09/2014 à 14:04
Les valeurs affichées dans les colonnes U et V sont des textes, elles ressemblent à des nombres mais ne sont pas des nombres. Faites un test avec =ESTNUM(U2).
Il faut aussi remplacer les points par des virgules.Essayez:
=1*SI(N2="";0;SUBSTITUE(SUBSTITUE(SUBSTITUE(N2;".";",";1);"?";"";1);"!";"";1))

À quoi servent les ? et les ! ? Ne serait-il pas plus simple d'afficher directement le % en valeur numérique en adaptant les 3 conditions de Mfc?
0

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

Posez votre question
Bonjour;

J'ai essayé vos deux fonctions, malheureusement l'une et l'autre me renvoit #valeur.
0
J'ai enlevé le *1 dans la formule, je n'ai plus le renvoit de #valeur, mais bien du nombre avec une ",". Seul soucis ESTNUM est toujours faux.
0
tontong Messages postés 2556 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 5 septembre 2024 1 057
23 sept. 2014 à 11:50
Bonjour
Chez moi ça fonctionne, au moins pour la partie connue.
Où est la différence avec ce fichier?
https://www.cjoint.com/?3IxlXRzqggA
0
eriiic Messages postés 24595 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 2 septembre 2024 7 234
23 sept. 2014 à 12:25
Bonjour,

Sans colonnes intermédaires, à tester.
En F2 :
=SOMMEPROD((Feuil1!$D$2:$D$43=A2)*(--GAUCHE(Feuil1!$N$2:$N$43;NBCAR(Feuil1!$N$2:$N$43)-2)>10)*(--GAUCHE(Feuil1!$N$2:$N$43;NBCAR(Feuil1!$N$2:$N$43)-2)<15))
Tu devrais te définir des plages dynamiques pour $D$2:$D$43 et $N$2:$N$43.
Gauche() d'une cellule vide ça ne le fait pas.
Nommer une Plage Dynamique
eric
0