compter des cellules non-adjacentes avec critère

Kivlov

XLDnaute Nouveau
salut à tous :)

je rencontre une petite difficulté concernant une manipulation qui est pourtant simple sur une plage de cellules adjacentes avec la formule NB.SI. malheureusement, après plusieurs essais, j'ai fini par chercher une solution et je me suis aperçu que cette formule ne fonctionnait pas sur des cellules non-adjacentes, même en définissant une zone nommée.

dans le fichier exemple que je joins ici, je voudrais compter le nombre de présences (lettre P) pour pouvoir multiplier ce résultat par un nombre d'heures déterminé (matin et après-midi) et afficher le résultat dans la colonne "Total" de droite (colonne P ici).

y-a-t-il une solution simple qui permettrait de réaliser cette opération en consommant un minimum de ressources, car je dois multiplier un grand nombre de fois cette fonction sur la même feuille ?

merci d'avance !
 

Pièces jointes

  • exemple1.xls
    17 KB · Affichages: 184
  • exemple1.xls
    17 KB · Affichages: 189
  • exemple1.xls
    17 KB · Affichages: 199

mth

XLDnaute Barbatruc
Re : compter des cellules non-adjacentes avec critère

Bonjour,

Pour compter le nombre de "P" le matin, par exemple en cellule P2:

Code:
=SOMME(SI(MOD(COLONNE(B1:O2);2)=0;SI(B2:O2="P";1)))
(formule matricielle à valider par CTRL MAJ ENTER)

et le nombre de P l'après midi, en cellule Q2:
Code:
=SOMME(SI(MOD(COLONNE(C1:P2);2)<>0;SI(C2:P2="P";1)))
(formule matricielle également)

Vois si cela peut t'aider,

Bien à toi,

mth

Edit: Hello hoerwind :) :) :)
 
Dernière édition:

hoerwind

XLDnaute Barbatruc
Re : compter des cellules non-adjacentes avec critère

Bonjour, salut mth,

La même chose mais autrement, en P2 :
Code:
=SOMMEPROD((MOD(COLONNE(B2:O2);2)=0)*(B2:O2="P"))*5/48+SOMMEPROD((MOD(COLONNE(B2:O2);2)=1)*(B2:O2="P"))*5/24
formule à copier vers le bas
 

Kivlov

XLDnaute Nouveau
Re : compter des cellules non-adjacentes avec critère

merci beaucoup pour vos réponses ! ça fonctionne effectivement super bien !

par contre, niveau ressources "consommées", ça donne quoi ? car étant donné que cette formule est destinée à être recopiée un très grand nombre de fois sur la même feuille, est-ce que des ralentissements sont à prévoir ?

merci encore :)
 

mth

XLDnaute Barbatruc
Re : compter des cellules non-adjacentes avec critère

re :)

Ce genre de formule est effectivement bien gourmande en ressource, ceci dit vu la façon dont est organisé ton tableau je ne vois pas trop comment faire autrement.

Quelques pistes, saisir le chiffre 1 au lieu de saisir la lettre P, faire des colonnes intermédiaires(qui pourront être masquées), structurer les données autrement ?

En PJ, j'ai tenté un TCD s'appuyant sur une base mais peut-être n'est-ce pas possible pour toi si tu dois reprendre tout ton historique ...

Bonne journée,

mth
 

Pièces jointes

  • Copie de exemple1(1).xls
    24 KB · Affichages: 112
  • Copie de exemple1(1).xls
    24 KB · Affichages: 110
  • Copie de exemple1(1).xls
    24 KB · Affichages: 127

Kivlov

XLDnaute Nouveau
Re : compter des cellules non-adjacentes avec critère

salut :)

merci pour cette réponse. j'avoue que je ne vois pas comment présenter autrement, ma feuille excel étant la transcription du "papier" utilisé aujourd'hui, avec un certain nombre de contraintes imposées. en fait, il s'agit ici d'un récapitulatif, sur d'autres feuilles les utilisateurs font des saisies sur un modèle similaire (mais concernant la seule partie qui les intéresse). le TCD que tu as créé ne me parait pas super adapté pour retranscrire les informations dont j'ai besoin, mais il faudrait peut-être que je revois le fonctionnement :)

merci encore :)
 

Monique

Nous a quitté
Repose en paix
Re : compter des cellules non-adjacentes avec critère

Bonjour,

Idem en concentré
Code:
=SOMMEPROD((B2:O2="P")*((B$1:O$1<>"")*5/48+(B$1:O$1="")*5/24))

ça aussi mais c'est trompeur, je crois
Code:
=SOMMEPROD((B2:O2="P")*((B$1:O$1<>"")*5/2+(B$1:O$1="")*5)/24)
 

hoerwind

XLDnaute Barbatruc
Re : compter des cellules non-adjacentes avec critère

Re,

Un peu moins gourmande :
Code:
=(NB.SI(B2:O2;"P")+SOMMEPROD((MOD(COLONNE(B2:O2);2)=1)*(B2:O2="P")))*5/48
Beaucoup moins gourmande :
Code:
=(NB.SI(B2:O2;"P")+(C2="P")+(E2="P")+(G2="P")+(I2="P")+(K2="P")+(M2="P")+(O2="P"))*5/48
 

Discussions similaires

Statistiques des forums

Discussions
312 446
Messages
2 088 492
Membres
103 870
dernier inscrit
didiexcel