SOMMEPROD FREQUENCE MOIS
Résolu/Fermé
rorolidalgo
-
29 juin 2009 à 12:37
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 1 juil. 2009 à 17:16
eriiic Messages postés 24603 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 15 décembre 2024 - 1 juil. 2009 à 17:16
A voir également:
- Sommeprod mois
- Trier par mois excel - Guide
- Excel mois en lettre - Forum Excel
- Extraire mois à partir d'une date sur Excel ✓ - Forum Excel
- Samia, kevin et jason ont gardé la trace de leurs ventes quotidiennes du mois de juillet 2016. dans la feuille bilan, il manque les résultats de jason. insérez une colonne entre samia et kevin et reportez-y les résultats de jason. quel mot secret apparait en f2 ? - Forum LibreOffice / OpenOffice
- Formation 600 heures en mois ✓ - Forum Bureautique
14 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 juin 2009 à 14:20
29 juin 2009 à 14:20
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
29 juin 2009 à 14:49
29 juin 2009 à 14:49
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
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
29 juin 2009 à 15:36
29 juin 2009 à 15:36
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 juin 2009 à 15:27
29 juin 2009 à 15:27
he oui, mais c'est bien sûr!
Chapeau, Eric !
Chapeau, Eric !
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
29 juin 2009 à 15:48
29 juin 2009 à 15:48
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
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
29 juin 2009 à 15:55
29 juin 2009 à 15:55
Merci Eric,
Voici le fichier:
http://www.cijoint.fr/cjlink.php?file=cj200906/cijDYwJUy4.xls
A+
Voici le fichier:
http://www.cijoint.fr/cjlink.php?file=cj200906/cijDYwJUy4.xls
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
29 juin 2009 à 15:51
29 juin 2009 à 15:51
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?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
29 juin 2009 à 15:57
29 juin 2009 à 15:57
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
29 juin 2009 à 22:13
29 juin 2009 à 22:13
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
qmike
Messages postés
1509
Date d'inscription
mardi 19 juillet 2005
Statut
Membre
Dernière intervention
18 juin 2012
594
30 juin 2009 à 08:21
30 juin 2009 à 08:21
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)
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
30 juin 2009 à 09:11
30 juin 2009 à 09:11
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
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 10:25
30 juin 2009 à 10:25
Merci les gars, c'est vraiment sympa.
Eric, le dernier fichier que tu m'as renvoyé retourne #NOM? à chaque endroit de ta fonction.
Y faut pas insérer Explicit ou autre chose en tête du code?
A+ merci encore
Rodolphe
Eric, le dernier fichier que tu m'as renvoyé retourne #NOM? à chaque endroit de ta fonction.
Y faut pas insérer Explicit ou autre chose en tête du code?
A+ merci encore
Rodolphe
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 10:37
30 juin 2009 à 10:37
C'est moi qui déconnais avec l'activation des macros, CA MARCHE SUPER. MERKI ENCORE!!
Rodolphe
Rodolphe
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 11:03
30 juin 2009 à 11:03
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
30 juin 2009 à 11:39
30 juin 2009 à 11:39
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
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 11:52
30 juin 2009 à 11:52
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
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
30 juin 2009 à 12:07
30 juin 2009 à 12:07
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é.
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 12:12
30 juin 2009 à 12:12
si je la choisis elle fonctionne bien, en fait.
C'est juste que je m'attendais à l'avoir en "direct" en menu déroulant, comme par exemple quand je tape "Som" Merci encore Eric
C'est juste que je m'attendais à l'avoir en "direct" en menu déroulant, comme par exemple quand je tape "Som" Merci encore Eric
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
>
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
30 juin 2009 à 12:18
30 juin 2009 à 12:18
Sur 2003 elle est bien classée à J malgré le nom du fichier devant (c'est vrai que c'est perturbant la 1ère fois), sur 2007 elle est peut-être classée à P ?
Si tu veux pense à mettre en résolu...
eric
Si tu veux pense à mettre en résolu...
eric
rorolidalgo
Messages postés
11
Date d'inscription
lundi 29 juin 2009
Statut
Membre
Dernière intervention
1 juillet 2009
>
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
1 juil. 2009 à 17:11
1 juil. 2009 à 17:11
une dernière question Eric stp:
dans ton code, lorsque tu écris dim j(31) as Long. C'est quoi ce "long" exactement, c'est une matrice de 31 lignes à une colonne? (je n'avais jamais vu ça auparavant)
Merci
Rodolphe
dans ton code, lorsque tu écris dim j(31) as Long. C'est quoi ce "long" exactement, c'est une matrice de 31 lignes à une colonne? (je n'avais jamais vu ça auparavant)
Merci
Rodolphe
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 248
1 juil. 2009 à 17:16
1 juil. 2009 à 17:16
Bonjour,
dim j(31) c'est une variable tableau de 32 lignes (0 à 31)
as long : type de variable entier long (sur 32 bits)
eric
dim j(31) c'est une variable tableau de 32 lignes (0 à 31)
as long : type de variable entier long (sur 32 bits)
eric
29 juin 2009 à 14:35
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