SOMMEPROD FREQUENCE MOIS
Résolu
rorolidalgo
-
eriiic Messages postés 25847 Statut Contributeur -
eriiic Messages postés 25847 Statut Contributeur -
Bonjour,
J'ai le souci suivant dans Excel:
J'ai une colonne de dates B4 à B559, les dates se répétant plusieurs fois. Exemple:
20/12/2008
20/12/2008
22/12/2008
22/12/2008
09/01/2009
14/01/2009
14/01/2009
14/01/2009
14/01/2009
14/01/2009
15/01/2009
15/01/2009
16/01/2009
19/01/2009
19/01/2009
19/01/2009
20/01/2009
20/01/2009
20/01/2009
21/01/2009
21/01/2009
21/01/2009
21/01/2009
22/01/2009
22/01/2009
etc.
Je souhaite avoir le nombre de dates différentes sur une plage donnée.
Si la plage donnée est la plage entière, alors je rentre la formule:
=SOMMEPROD((FREQUENCE(B4:B559;B4:B559)>0)*1) qui fonctionne très bien (elle me donne
Le problème survient quand je veux restreindre à un mois donné (par exemple le mois de MAI (=5))
La formule que j'ai saisie ci-après ne fonctionne pas:
=SOMMEPROD((MOIS(B4:B559)=5)*(FREQUENCE(B4:B559;B4:B559)>0)*1)
J'obtiens #N/A
Quelqu'un a-t-il la solution?
Merci d'avance
J'ai le souci suivant dans Excel:
J'ai une colonne de dates B4 à B559, les dates se répétant plusieurs fois. Exemple:
20/12/2008
20/12/2008
22/12/2008
22/12/2008
09/01/2009
14/01/2009
14/01/2009
14/01/2009
14/01/2009
14/01/2009
15/01/2009
15/01/2009
16/01/2009
19/01/2009
19/01/2009
19/01/2009
20/01/2009
20/01/2009
20/01/2009
21/01/2009
21/01/2009
21/01/2009
21/01/2009
22/01/2009
22/01/2009
etc.
Je souhaite avoir le nombre de dates différentes sur une plage donnée.
Si la plage donnée est la plage entière, alors je rentre la formule:
=SOMMEPROD((FREQUENCE(B4:B559;B4:B559)>0)*1) qui fonctionne très bien (elle me donne
Le problème survient quand je veux restreindre à un mois donné (par exemple le mois de MAI (=5))
La formule que j'ai saisie ci-après ne fonctionne pas:
=SOMMEPROD((MOIS(B4:B559)=5)*(FREQUENCE(B4:B559;B4:B559)>0)*1)
J'obtiens #N/A
Quelqu'un a-t-il la solution?
Merci d'avance
A voir également:
- Sommeprod mois
- Youtube premium 2 mois gratuit - Accueil - TV & Vidéo
- Convertir trimestre en mois ✓ - Forum Excel
- Excel mois en lettre - Forum Excel
- Formation 600 heures en mois - Forum Bureautique
- Trier par mois excel - Guide
14 réponses
Bonjour
Ci joint proposition pas fute-fute mais...
https://www.cjoint.com/?gDorxMS3no
je sèche sur un sommeprod ou une matricielle sans cellule intermédiaire
par contre, on pourrait étudier une fonction ou sub en VBA si ca t'intéresse
Ci joint proposition pas fute-fute mais...
https://www.cjoint.com/?gDorxMS3no
je sèche sur un sommeprod ou une matricielle sans cellule intermédiaire
par contre, on pourrait étudier une fonction ou sub en VBA si ca t'intéresse
Bonjour tout le monde,
Des fois que ça enlève ta frustration ;-) :
=SOMMEPROD((FREQUENCE((MOIS(A2:A26)=12)*(A2:A26);A2:A26)>0)*1)
à tester + complètement...
eric
Des fois que ça enlève ta frustration ;-) :
=SOMMEPROD((FREQUENCE((MOIS(A2:A26)=12)*(A2:A26);A2:A26)>0)*1)
à tester + complètement...
eric
Génial Eriiic, ta formule est géniale, c'est ce que je cherchais. MAIS elle le fonctionne pas dans tous les cas, et je n'ai pas encore trouvé pourquoi.
Notamment:
- quand toutes les cellules sont vides, il compte quand même 1.
- si je fais un tableau de 5 colonnes avec 1/1, 1/2, VIDE, VIDE, VIDE, et le mois de février, il me donne 2! (au lieu de 1)
- si dans ce mm tableau, je remplace 1/1 par 1/2, il me donne bien 1.
C'est à n'y rien comprendre.
J'ai résumé cela dans un fichier Excel mais je ne sais pas comment l'attacher à mon message....
Merci encore!!
Rodolphe
Notamment:
- quand toutes les cellules sont vides, il compte quand même 1.
- si je fais un tableau de 5 colonnes avec 1/1, 1/2, VIDE, VIDE, VIDE, et le mois de février, il me donne 2! (au lieu de 1)
- si dans ce mm tableau, je remplace 1/1 par 1/2, il me donne bien 1.
C'est à n'y rien comprendre.
J'ai résumé cela dans un fichier Excel mais je ne sais pas comment l'attacher à mon message....
Merci encore!!
Rodolphe
Re,
de toute façon il y a un élément qu'on a oublié de tenir compte c'est l'année (compter séparément décembre 2008 et 2009), ce qui du même coup resoudra le pb de la cellule vide (qui est une date valide pour excel) :
=SOMMEPROD((FREQUENCE((MOIS(A2:A35)=12)*(ANNEE(A2:A35)=2008)*(A2:A35);A2:A35)>0)*1)
- si je fais un tableau de 5 colonnes avec 1/1, 1/2, VIDE, VIDE, VIDE, et le mois de février, il me donne 2! (au lieu de 1)
- si dans ce mm tableau, je remplace 1/1 par 1/2, il me donne bien 1.
C'est à n'y rien comprendre.
C'est peut-être pour ça que je ne comprend rien à ta prose...
Pour moi en colonne A il n'y a que des dates, et pas de colonne intermédiaires.
Déposer le fichier sur cijoint.fr et coller ici le lien fourni.
Je dois m'absenter, pas de soucis si tu prends le relais michel :-)
(d'ailleurs je m'étonne que tu es été bloqué là dessus, mauvais départ sans doute...)
eric
de toute façon il y a un élément qu'on a oublié de tenir compte c'est l'année (compter séparément décembre 2008 et 2009), ce qui du même coup resoudra le pb de la cellule vide (qui est une date valide pour excel) :
=SOMMEPROD((FREQUENCE((MOIS(A2:A35)=12)*(ANNEE(A2:A35)=2008)*(A2:A35);A2:A35)>0)*1)
- si je fais un tableau de 5 colonnes avec 1/1, 1/2, VIDE, VIDE, VIDE, et le mois de février, il me donne 2! (au lieu de 1)
- si dans ce mm tableau, je remplace 1/1 par 1/2, il me donne bien 1.
C'est à n'y rien comprendre.
C'est peut-être pour ça que je ne comprend rien à ta prose...
Pour moi en colonne A il n'y a que des dates, et pas de colonne intermédiaires.
Déposer le fichier sur cijoint.fr et coller ici le lien fourni.
Je dois m'absenter, pas de soucis si tu prends le relais michel :-)
(d'ailleurs je m'étonne que tu es été bloqué là dessus, mauvais départ sans doute...)
eric
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Pour les cellules vides, c'est normal en fait, puisque MOIS(cellule_vide)=1.
Mais même en rajoutant le test de la valeur vide, avec:
=+SOMMEPROD((FREQUENCE((MOIS(A1:A5)=$B$10)*(ESTVIDE(A1:A5)=FAUX)*(A1:A5);A1:A5)>0)*1)
le résultat est toujours =1 avec 5 cellules vides.
Bizarre non?
Mais même en rajoutant le test de la valeur vide, avec:
=+SOMMEPROD((FREQUENCE((MOIS(A1:A5)=$B$10)*(ESTVIDE(A1:A5)=FAUX)*(A1:A5);A1:A5)>0)*1)
le résultat est toujours =1 avec 5 cellules vides.
Bizarre non?
d'ailleurs je m'étonne que tu es été bloqué là dessus,
Bin on vieillit mal, mon cher Eric
roro
pour joindre un fichier
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
Je repasserai dabs env. 1 heure
Bin on vieillit mal, mon cher Eric
roro
pour joindre un fichier
https://www.cjoint.com/
et tu colles le lien proposé dans ton message
Je repasserai dabs env. 1 heure
Re,
Je viens de me repencher dessus et c'est vrai que frequence() ne retourne pas toujours le résultat attendu...
Je pense qu'il faut jouer sur son 2nd parametre mais pas évident.
eric
Je viens de me repencher dessus et c'est vrai que frequence() ne retourne pas toujours le résultat attendu...
Je pense qu'il faut jouer sur son 2nd parametre mais pas évident.
eric
Bonjour
exemple pour calculer lel nombre de date correspondant au mois d 'avril
=SOMMEPROD((MOIS(A1:A10) = 4)*1)
exemple pour calculer lel nombre de date correspondant au mois d 'avril
=SOMMEPROD((MOIS(A1:A10) = 4)*1)
Bonjour tout le monde,
Merci de l'aide qmike mais ce que souhaite roro est le nombre de jours différents dans un mois donné.
La nuit n'ayant pas porté conseil je n'ai pour l'instant que la méthode brutos, une simple fonction personnalisée :
A mettre dans un module
roro.xls
eric
Merci de l'aide qmike mais ce que souhaite roro est le nombre de jours différents dans un mois donné.
La nuit n'ayant pas porté conseil je n'ai pour l'instant que la méthode brutos, une simple fonction personnalisée :
Function JDiffMois(plage As Range, mois As Long, année As Long) As Long
Dim c As Range, i As Long, j(31) As Long
For Each c In plage
If Year(c) = année And Month(c) = mois Then j(Day(c)) = 1
Next c
For i = 1 To 31
JDiffMois = JDiffMois + j(i)
Next i
End Function
A mettre dans un module
roro.xls
eric
En fait, je voudrais maintenant utiliser cette fonction dans tous les classeurs, et j'ai rajouté "Public" devant "Function", mais ça ne fonctionne pas....
Quelqu'un sait pourquoi?
Merci
Quelqu'un sait pourquoi?
Merci
Si tu as bien mis la fonction dans un module et non dans une feuille ça doit marcher.
Elle doit apparaitre dans 'insertion / fonction...' catégorie 'fonction personnalisée'
Il faut que le classeur ayant la fonction soit ouvert,
ou bien qu'elle soit dans le classeur de macros personnelles (là il y a 2 ou 3 façons différentes (voir par exemple ici) pour qu'elle soit disponible en permanence.
eric
Elle doit apparaitre dans 'insertion / fonction...' catégorie 'fonction personnalisée'
Il faut que le classeur ayant la fonction soit ouvert,
ou bien qu'elle soit dans le classeur de macros personnelles (là il y a 2 ou 3 façons différentes (voir par exemple ici) pour qu'elle soit disponible en permanence.
eric
J'ai bien la Fct dans un module dans mon PERSONAL.XLSB (j'ai Excel 2007).
Dans un classeur quelconque, quand je saisis "=J" pour qu'il me propose de choisir les fct° qui commencent par J dont la tienne, je n'ai pas la tienne qui se met en menu déroulant.
Quand je vais dans "insérer une fct°/personnalisées", je la trouve bien, mais avec le chemin:
=PERSONAL.xlsb!JDiffMois(G18:G27;12;2009)
Merci
Dans un classeur quelconque, quand je saisis "=J" pour qu'il me propose de choisir les fct° qui commencent par J dont la tienne, je n'ai pas la tienne qui se met en menu déroulant.
Quand je vais dans "insérer une fct°/personnalisées", je la trouve bien, mais avec le chemin:
=PERSONAL.xlsb!JDiffMois(G18:G27;12;2009)
Merci
il me propose de choisir les fct° qui commencent par J dont la tienne, je n'ai pas la tienne qui se met en menu déroulant.
n'ayant pas excel 2007 je ne vois pas trop...
je la trouve bien, mais avec le chemin: =PERSONAL.xlsb!JDiffMois(G18:G27;12;2009)
C'est normal lorsqu'elle est dans un autre classeur que celui qui est actif.
Et si tu la choisis il se passe quoi ?
Sinon il va falloir attendre qcq'un qui ait excel 2007, il y a peut-être une particularité.
n'ayant pas excel 2007 je ne vois pas trop...
je la trouve bien, mais avec le chemin: =PERSONAL.xlsb!JDiffMois(G18:G27;12;2009)
C'est normal lorsqu'elle est dans un autre classeur que celui qui est actif.
Et si tu la choisis il se passe quoi ?
Sinon il va falloir attendre qcq'un qui ait excel 2007, il y a peut-être une particularité.
Je n'ai pas trop le temps d'aller macroter là-dessus, mais si tu as quelque chose à me proposer, je suis toujours preneur.
En revanche, je reste persuadé que la fonction SOMMEPROD doit logiquement fonctionner, mais je ne trouve pas, et ça me frustre A MORT....!
Merci encore
Rodolphe