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)
Puis je me suis souvenu que j'avais des archives alors j'ai mis un masque et soulevé la poussière et bim! =SOMME(SIERREUR((STXT(SUBSTITUE(SUBSTITUE(A1;",";"");" ";REPT(" ";NBCAR(A1)));1+NBCAR(A1)*(LIGNE(A$1:INDEX(A:A;NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))+(A1<>"")))-1);NBCAR(A1)))+0;0))
Il faudrait un volontaire sous XL2K10 pour la tester
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
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.
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.
C'est bien ce qu'il me semblait.
Sous réserve de vérification, les solutions à base de VBA publiées dans le fil ne devraient pas fonctionner avec Google Sheets.