Somme + Gauche

Fermé
dufoseba - 15 avril 2016 à 08:15
 dufoseba - 27 avril 2016 à 09:54
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
Modifié par Frenchie83 le 15/04/2016 à 08:28
Bonjour
=SOMME(GAUCHE(K14:AO14;3)*1) à valider par CTRL +SHIFT +ENTREE
Cdlt
Il me met #VALEUR! :(
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338 > dufoseba
15 avril 2016 à 08:42
C'est une formule matricielle, il faut la valider par la combinaison des touches
CTRL +SHIFT +ENTREE
0
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
15 avril 2016 à 09:19
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.
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
15 avril 2016 à 10:23
Ceci devrait aller
=SOMME(GAUCHE((K14:AO14)*1;3)*1)
toujours a valider de la même façon
Cdlt
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
http://www.cjoint.com/c/FDpmKmuphSq
0
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
15 avril 2016 à 16:17
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
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 407
Modifié par Vaucluse le 18/04/2016 à 11:14
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
C'est super. Merci

Encore une petite chose. Intégrer les cellules vides dans le calcul est impossible ?
0
via55 Messages postés 14445 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 juillet 2024 2 721 > dufoseba
Modifié par via55 le 18/04/2016 à 15:59
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
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 lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
20 avril 2016 à 09:49
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
Solution parfaite.

Merci :-)
0
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