Somme selon plusieurs condition

salut à tous,

Je reviens vers vous après avoir déjà posté quelques messages,

J'ai dans mon fichier, une plage de données variable, j'ai généralement 1600 lignes en plus tout les mois.

Dans un autre onglet, je cherche à faire la somme de différentes colonnes selon 2 conditions.

Cependant je veux faire la somme de cellule ou il est affiché "0 j" ou encore "0 h" etc.. à condition que mes colonnes correspondent au mois du tableau que je veux remplir et de certaines entreprises.

J'arrive à le faire lorsque ma plage de données est fixe, en revanche lorsque je rajoute des lignes ma plage de données ne se modifie pas.

Cordialement.

19test-absence.xlsx (63.26 Ko)

Bonsoir,

j'ai lu votre post, j'ai téléchargé votre fichier, j'ai relu votre post, mais rien n'y fait, je ne sais pas de quel onglet vous parlez ni de quelles colonnes... Désolé

@ bientôt

LouReeD

LouReeD a écrit :

Bonsoir,

j'ai lu votre post, j'ai téléchargé votre fichier, j'ai relu votre post, mais rien n'y fait, je ne sais pas de quel onglet vous parlez ni de quelles colonnes... Désolé

@ bientôt

LouReeD

Salut LouReed,

pour ce qui est de la plage de données dynamique je parle de l'onglet extraction, dans le fichier présent je n'ai pas mis 1600 lignes car cela peut être long a modifier pour l'anonymer! Pour ce qui est des cellules dont je veux faire la somme elle commence colonne BD jusqu'a CN. Et je souhaite effectuer ces sommes dans l'onglet Absence par société!

Cordialement

Bonsoir,

la plage de données commence en ligne 4 et restera à 4.

La dernière ligne de données est en ligne X, qui correspond au nombre de données de la colonne A à partir de la ligne 4.

Si on a 9 lignes de données (comme sur le fichier fourni) alors on a :

N° de la dernière ligne de données = (4-1) + 9 = 12

Pourquoi le 4-1 ? afin de "partir" de la ligne d'entête du tableau !

Mais comment trouver 9 ? tout simplement en comptant le nombre de valeur "présente" en colonne A !

=NBVAL(A:A)

= 10 !

en effet il y a la valeur de l'entête de colonne du tableau en colonne A !

donc on a la ligne de départ de données = 4 et on a le nombre de lignes de données = NBVAL(A:A)-1 = 9

Il reste plus qu'à "intégrer" ces variables dans votre formule :

=SOMMEPROD((GAUCHE(Extraction!$BD4:$BD7;NBCAR(Extraction!BD4:BD7)-1))*(Extraction!$B4:$B7="S01 MASIFOC")*(Extraction!$A$4:$A7="Mars"))

Pour intégrer des variables dans des références de cellules, on peut utiliser INDIRECT.

Ce qui donne :

=SOMMEPROD((GAUCHE(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A)-1+(4-1)");NBCAR(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A)-1+(4-1)")-1))*(INDIRECT("Extraction!$B4:$B"&NBVAL(Extraction!$A:$A)-1+(4-1)")="S01 MASIFOC")*(INDIRECT("Extraction!$A4:$A"&NBVAL(Extraction!$A:$A)-1+(4-1)")="Mars"))

A l'erreur prêt de parenthèses !!!

@ bientôt

LouReeD

Salut LouReed,

Je n'ai pas compris grand chose à la formule, il faut que je prenne le temps mais les INDIRECT ne sont pas mon fort! EN revanche la formule ne fonctionne pas, il me signale que j'ai des " en trop au niveau des (4-1)

Cdt,

Bonsoir,

A l'erreur prêt de parenthèses !!!

en fait c'était le guillemets !

La formule est fournie à l'état brut, car des -1 + (4-1) peut être remplacé par +2 :

=SOMMEPROD((GAUCHE(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A+2));NBCAR(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A)+2)-1))*(INDIRECT("Extraction!$B4:$B"&NBVAL(Extraction!$A:$A)+2)="S01 MASIFOC")*(INDIRECT("Extraction!$A4:$A"&NBVAL(Extraction!$A:$A)+2)="Mars"))

Celle ci fonctionne ?

@ bientôt

LouReeD

Re,

Non elle ne fonctionne pas, elle m'indique #Valeur! Pourtant j'ai juste remplacé dans la formule le "S01 MASIFOC" parce que je souhaitais.

Cdt,

Après avoir chercher c'est cette partie de code: NBCAR(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A)+2)-1) qui ne fonctionne pas, ça me prend bien ma case mais ça n’enlève pas le 'j' ou le 'h'.

Cordialement

Bonjour

formule testée sur votre fichier :

=SOMMEPROD((GAUCHE(INDIRECT("Extraction!$BD4:$BD"&NBVAL(Extraction!$A:$A)+2);NBCAR(INDIRECT("Extraction!BD4:BD"&NBVAL(Extraction!$A:$A)+2))-1))*(INDIRECT("Extraction!$B4:$B"&NBVAL(Extraction!$A:$A)+2)="S01 MASIFOC")*(INDIRECT("Extraction!$A$4:$A"&NBVAL(Extraction!$A:$A)+2)="Mars"))

Dites moi, sur la feuille concernée par cette formule vous faites un format de cellule de type "0 j" ou "0 h"

Pourquoi ne pas l'avoir fait sur l'autre feuille ? Cela simplifie un peu la formule en supprimant le NBCAR etc...

A savoir dans la fonction INDIRECT les référence ne s'incrémente pas... Donc pour chaque colonne il faudra modifier "à la main" ce qui est surlignée...

@ bientôt

LouReeD

Salut LouReed,

En fait ma feuille ou je dois faire ma somme, c'est un fichier de données que j'extrait d'un gestionnaire de rapports qui est propre a l'entreprise que je ne peux modifier, ou les valeurs sont rentrés avec le chiffre et l'unité "h" ou "j". Je vais tester ta formule dans mon fichier.

Cordialement

Rechercher des sujets similaires à "somme condition"