Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Addition des nombres dans une cellule avec du texte

  • Initiateur de la discussion Initiateur de la discussion Dreyz
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Dreyz

XLDnaute Nouveau
Bonjour à tous,

Je tente en vain d'additionner des chiffres de ma colonne A qui contient des nombres et des lettres, vers ma colonne B
Exemple :
A1 :
benoit x 1, eric x 1, nathalie x 1, marc x 15
J'aimerais avoir en B = 18

A2 :
jean-jacques x 1, eric x 1, marie x 1
En B = 3

A3 :
jean-jacques x 1, eric x 5, marie x 1, marie x 1, marc x 1, sylvie x 1, , flavien x 5
En B = 15

Je cherche donc à trouver une formule pour additionner les chiffres se trouvant après "x ".
Je précise que je suis essentiellement sous google sheet, ayant testé une formule type (je débute sur les tableurs, j'avais trouvé cela sur le net)

=SOMMEPROD(SIERREUR(1*STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1);0))

Mais qui ne prend pas en compte les valeurs supérieurs à 9. Exemple au lieu d'avoir d'avoir une somme de 18 en B1 , il me renvoie 9 (1+1+1+1+5).


Merci à vous,
Nicolas.
 
Dernière édition:
Solution
Re,

On peut faire plus courte, en B1 :
VB:
=SOMME(SIERREUR(STXT(SUBSTITUE(A1;" ";REPT(" ";NBCAR(A1)));(LIGNE(INDIRECT("1:"&(NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";))+1)))-1)*NBCAR(A1);NBCAR(A1))*1;))
@ valider par Ctrl+Maj+Entrée
@ tirer vers le bas

Valide pour toutes les versions à partir de 2007.

Noter que sous Excel pour Microsoft 365 on n'a pas...
Bonjour Dreyz, le fil,



avec cette fonction personnalisée :
VB:
Option Explicit

Function Total(chn$) As Integer
  Dim s0, s1$, p%, k%, i As Byte
  s0 = Split(chn, ",")
  For i = 0 To UBound(s0)
    s1 = Trim$(s0(i)): p = InStrRev(s1, " ")
    k = k + Val(Mid$(s1, p + 1))
  Next i
  Total = k
End Function
soan
 

Pièces jointes

Bonsoir le fil, JHA, Nicolas, R@chid, soan

Bonjour à tous,
Je précise que je suis essentiellement sous google sheet, ayant testé une formule type (je débute sur les tableurs, j'avais trouvé cela sur le net)
Nicolas.
Alors Google Sheets ou Office 365
Car Google Sheets parle mal le VBA 😉

Si au final, c'est Office 365, alors une autre façon de faire
(mais ce plus vraiment dans la sphère "débutant" * )
Test OK sur les exemples du 1er premier message.
VB:
Function SOMMECELL(vCell As String, Optional vP = "[^\d\+]") As Double
On Error GoTo O_ut
tmp = Replace(vCell, " x ", " + ")
    With CreateObject("vbscript.regexp")
    .Pattern = vP: .Global = -1:: SOMMECELL = Evaluate(.Replace(tmp, ""))
    End With
Exit Function
O_ut:
SOMMECELL = 0
End Function
Mode d'emploi
=SOMMECELL(A1)

* :NB: Dans ce cas, privilégie la formule de R@chid, parce qu'une formule c'est plus simple quand on débute avec Excel. 😉
 
Re

J'oubliais les MACistes 😉
Donc une version qui fonctionnera sur les Mac. 😉
VB:
Function SOMMECELL2(R As Range, Optional Sep As String = "x") As Double
Dim t As Variant, k&: t = Split(R, Sep)
For k = LBound(t) To UBound(t) Step 1: SOMMECELL2 = SOMMECELL2 + Val(t(k)): Next
End Function
 
Bonjour @ tous,
j'ai pas fait attention que tu es sous GoogleSheet, j'ai vu "Autre" c'est pour cela j'ai demandé une précision.
Sous GoogleSheet, en B1 :
VB:
=SUM(SPLIT(A1;" "))
@ tirer vers le bas

Sinon, ma première formule fonctionne je pense sous Excel 2013, 2016 et 2019, si quelqu'un peut faire un test et me tenir informé, je voudrais juste être sûr que FILTRE.XLM() est disponible sous ces versions.


Cordialement
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…