Ignorer une lettre dans une cellule

Vic -  
eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Dolgan Messages postés 44 Statut Membre 12
     
    Bonjour,

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

    Dolgan
    0
  2. Vic
     
    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
    1. Dolgan Messages postés 44 Statut Membre 12
       
      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
    2. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
       
      Bonjour,
      Pour ne plus avoir une valeur de texte il faut multiplier par 1:
      =GAUCHE(A1;NBCAR(A1)-1)*1
      0
    3. Vic
       
      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
    4. Vic
       
      PS: Si j'enlève les "*1" aux NBCAR ça ne marche pas non plus, et j'ai aussi une erreur de valeur
      0
    5. Vic
       
      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
  3. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    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
    1. Vic
       
      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
    2. Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 453
       
      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
  4. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Vic
     
    Bonjour;

    J'ai essayé vos deux fonctions, malheureusement l'une et l'autre me renvoit #valeur.
    0
    1. Vic
       
      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
  7. tontong Messages postés 2575 Date d'inscription   Statut Membre Dernière intervention   1 064
     
    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
  8. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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