Somme + Gauche

dufoseba -  
 dufoseba -
Bonjour,

Je n'ai pas trouvé mon Bonheur dans tous les messages déjà postés ici.

La formule me parait assez simple mais ne fonctionne pas..

Simplement faire une somme des 3 premiers chiffre qui se trouvent dans une plage précise (K14:AO14 par exemple)

=SOMME(GAUCHE(K14:AO14;3))

Comme le GAUCHE ne fonctionne que pour une seule cellule, cela ne fonctionne pas..

5 réponses

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour
=SOMME(GAUCHE(K14:AO14;3)*1) à valider par CTRL +SHIFT +ENTREE
Cdlt
0
dufoseba
 
Il me met #VALEUR! :(
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338 > dufoseba
 
C'est une formule matricielle, il faut la valider par la combinaison des touches
CTRL +SHIFT +ENTREE
0
dufoseba
 
J'avais lu mais cela n'a pas fonctionné.

J'ai {} qui se sont ajoutés mais..

Peut-être la version d'excel ou autre ?
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
J'ai {} qui se sont ajoutés mais.. c'est ça, cela rajoute des accolades avant le signe = et en fin de formule.
Peut-être la version d'excel ou autre ? les formules matricielles fonctionnent depuis plusieurs versions. Quelle est la vôtre?
Mettez un échantillon de votre fichier sur cjoint.com avec la formule que vous avez saisie, pour que nous puissions analyser le problème.
0
dufoseba
 
Ah effectivement cela fonctionne.

Uniquement si toutes mes cellules sont remplies.

Merci !

Si je veux la meme chose pour les cellules non vides, qu'est ce que je dois ajouter dans la formule ?

Merci :-)
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Ceci devrait aller
=SOMME(GAUCHE((K14:AO14)*1;3)*1)
toujours a valider de la même façon
Cdlt
0
dufoseba
 
Grand merci, Cela fonctionne :-)

Par contre, avec l'adaptation de la dernière formule, si j'ai du texte après les 3 premiers chiffres, cela ne fonctionne plus..

Merci pour votre aide en tous cas :-)
0
dufoseba
 
http://www.cjoint.com/c/FDpmKmuphSq
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Re
Je n'ai pas eu le temps de regarder, mais vu votre tableau, pourquoi ne pas faire comme ceci
https://www.cjoint.com/c/FDpop3NQFNj
Dès que j'ai un moment je regarde pour l'autre solution
Cdlt
0
dufoseba
 
J'y avais pensé mais c'est pour un tableau annuel. Ca va être un peu lourd..

Pas moyen de contourner le problème ?

Merci :-)
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
essayez celle ci qui devrait correspondre à tous les cas de figure possible si le nombre est bien entête de texte:

=SOMMEPROD((GAUCHE(B2:F2;TROUVE(" ";B2:F2&" "))*1)*1)

ne fonctionne pas avec des cellule vides entre B et F, mais éventuellement, les remplir avec 0
exemple plusieurs cas de figure ici:

https://www.cjoint.com/c/FDsjjfdgwUX


crdlmnt

ps: annule et remplace message précédent supprimé car ne convenant pas
0
dufoseba
 
C'est super. Merci

Encore une petite chose. Intégrer les cellules vides dans le calcul est impossible ?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > dufoseba
 
Bonjour à tous
Coucou Vaucluse ;)

Possible avec une fonction personnalisée à mettre dans un module de l'éditeur VBA (ALT+F11 pour ouvrir Editeur puis Insertion Module - copier coller la macro et fermer éditeur)
Function som3P(plage As Range)
adr = plage.Address
For Each c In Range(adr)
If c.Value <> "" Then Total = Total + Val(Left(c.Value, 3))
Next
som3P = Total
End Function


La fonction s'utilise ensuite comme n'importe quelle fonction Excel avec la syntaxe :
=som3P(plage à sommer)
ex: =som3P(K14:AO14)

Cdlmnt
Via
0
dufoseba
 
Je n'ai pas l'impression qu'il prenne en compte les 0.5 pm et 0.5 am :(

http://www.cjoint.com/c/FDuhzg2dQ6q
0

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

Posez votre question
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
Bonjour à tous
petite correction
Function som3P(plage As Range)
    adr = plage.Address
    For Each c In Range(adr)
        If c.Value <> "" Then Total = Total + Left(c.Value, 3) * 1
    Next
    som3P = Total
End Function

Cdlt
0
dufoseba
 
Solution parfaite.

Merci :-)
0
dufoseba
 
Dernière petite question..

Est-il possible d'exclure 2 lettres qui pourraient se trouver dans le tableau ?

Si je mets un Z ou un T dans une cellule, ne pas le comptabiliser et créer une erreur.

Merci :-)
0