Somme avec criteres
Fermé
abourayane2009
Messages postés
1
Date d'inscription
samedi 6 décembre 2014
Statut
Membre
Dernière intervention
6 décembre 2014
-
6 déc. 2014 à 23:09
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 7 déc. 2014 à 00:47
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 7 déc. 2014 à 00:47
A voir également:
- Somme avec criteres
- Formule somme excel colonne - Guide
- Somme si couleur - Guide
- Somme en anglais excel - Guide
- Somme si ens avec ou ✓ - Forum Excel
- Nous ne pouvons pas résumer ce champ avec somme ✓ - Forum Excel
3 réponses
DjiDji59430
Messages postés
4180
Date d'inscription
samedi 19 avril 2008
Statut
Membre
Dernière intervention
25 janvier 2025
683
7 déc. 2014 à 00:24
7 déc. 2014 à 00:24
Bonjour,
Si tes comptes vont de A1 a C5, par exemple
=SOMMEPROD((GAUCHE(A1:A5;3)="123")*(C1:C5))
http://www.cjoint.com/14dc/DLhaEUtfDP1_sommeprod.jpg
Si tes comptes vont de A1 a C5, par exemple
=SOMMEPROD((GAUCHE(A1:A5;3)="123")*(C1:C5))
http://www.cjoint.com/14dc/DLhaEUtfDP1_sommeprod.jpg
Utilisateur anonyme
7 déc. 2014 à 00:08
7 déc. 2014 à 00:08
Bonjour
Rajoute une colonne pour extraire les 3 premiers chiffres du numéro de compte avec la formule =GAUCHE(A2 ;3) à tirer sur toute la colonne
Ensuite tu pourras utiliser la fonction SOUS-TOTAL pour avoir un total par catégorie.
Ou encore un tableau croisé dynamique encore plus rapide
Rajoute une colonne pour extraire les 3 premiers chiffres du numéro de compte avec la formule =GAUCHE(A2 ;3) à tirer sur toute la colonne
Ensuite tu pourras utiliser la fonction SOUS-TOTAL pour avoir un total par catégorie.
Ou encore un tableau croisé dynamique encore plus rapide
ThauTheme
Messages postés
1442
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
29 juillet 2022
160
Modifié par ThauTheme le 7/12/2014 à 00:55
Modifié par ThauTheme le 7/12/2014 à 00:55
Bonsoir Abourayane, bonsoir le forum,
Par formules je ne sais pas faire. Si une solution VBA te convient, essaie comme ça :
Attention ! Ce code renvoie le résultat dans les colonnes E et F qui sont effacé au préalable...
À plus,
ThauTheme
Par formules je ne sais pas faire. Si une solution VBA te convient, essaie comme ça :
Private Sub Macro1() Dim O As Object 'déclare la variable O (Onglet) Dim TC As Variant 'déclare la variable TC (Tableau de Cellules) Dim D As Object 'déclare la variable D (Dictionnaire) Dim I As Integer 'déclare la variable I (Incrément) Dim TMP As Variant 'déclare la variable TMP (tableau TeMPoraire) Dim J As Integer 'déclare la variable J (incrément) Dim SC() As Variant 'déclare la variable SC (Somme par Critère) Dim S As Single 'déclare la variable S (Somme) Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter) TC = O.Range("A1").CurrentRegion 'définit le tableau TC (à adapter) Set D = CreateObject("Scripting.Dictionary") 'définit le dictionaire D For I = 2 To UBound(TC, 1) 'boucle sur toutes les lignes du tableau TC (en partant de la seconde) D(Left(TC(I, 1), 3)) = "" 'alimente le dictionnaire D Next I 'prochaine ligne de la boucle TMP = D.keys 'récupère dans le tableau temporaire TTMP, la liste du dictionnaire D sans doublons For J = 0 To UBound(TMP) 'boucle 1: sur tous les éléments du tableau TMP ReDim Preserve SC(1, J) 'redimensionne le tableau SC (2 lignes : ligne 0 et ligne 1; J colonnes) SC(0, J) = TMP(J) 'définit l'élément de la première ligne du tableau SC (le critère TMP(J)) For I = 2 To UBound(TC, 1) 'boucle sur toutes les lignes du tableau TC (en partant de la seconde) 'si les trois premiers caractères de la valeur en TC, ligne I, colonne 1 (=> colonne A) sont identiques au ctitère TMP(J) 'alors la somme S est égale à elle-même plus la valeur en TC, ligne I colonne 3 (=> colonne C) If Left(TC(I, 1), 3) = TMP(J) Then S = S + TC(I, 3) Next I 'prochaine ligne de la boucle 2 SC(1, J) = S 'définit l'élément de la seconde ligne du tableau SC (la somme S) S = 0 'réinitialise la somme S Next J 'prochain élément du tableau TMP Range("E1").CurrentRegion.Clear 'vide les anciennes données Range("E1") = "Critère": Range("F1") = "Somme" 'étiquettes en E1 et F1 'en E2, récupère le tableau SC transposé (inversikon lignes et colonnes Range("E2").Resize(UBound(SC, 2) + 1, UBound(SC, 1) + 1) = Application.Transpose(SC) End Sub
Attention ! Ce code renvoie le résultat dans les colonnes E et F qui sont effacé au préalable...
À plus,
ThauTheme