Fonction excel
Résolu/Fermé
JACKY
-
28 nov. 2008 à 13:09
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 29 nov. 2008 à 11:51
Mike-31 Messages postés 18350 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 28 novembre 2024 - 29 nov. 2008 à 11:51
A voir également:
- Fonction excel
- Excel fonction si et - Guide
- Liste déroulante excel - Guide
- Fonction moyenne excel - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
10 réponses
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
29 nov. 2008 à 00:01
29 nov. 2008 à 00:01
Salut,
Avec une formule matricielle toute simple
Si tes clubs sont saisi ou seront saisi dans la plage A1 à la cellule A50, tu la mets en surbrillance et insertion/nom/définir, dans la zone de saisie Nom dans le classeur donnes un Nom exemple Clubs
ensuite tu colles cette formule matricielle dans une cellule
=SOMME(SI(Cbus<>"";1/NB.SI(Clubs;Clubs)))
pour valider la formule, dans la barre des formules tu la mets en surbrillance et en même temps tu cliques sur les trois touches Ctrl la touche majuscule et entrée (la touche majuscule shift juste au dessus de Ctrl)
Si tu fais bien, ta formule aura cette forme {=SOMME(SI(Clubs<>"";1/NB.SI(Clubs;Clubs)))}
si tu souhaites intégrer le texte Clubs c'est cette formule avant de valider ta matricielle
=SOMME(SI(Clubs<>"";1/NB.SI(Clubs;Clubs)))&" Clubs"
Je serai de retour demain
A+
Avec une formule matricielle toute simple
Si tes clubs sont saisi ou seront saisi dans la plage A1 à la cellule A50, tu la mets en surbrillance et insertion/nom/définir, dans la zone de saisie Nom dans le classeur donnes un Nom exemple Clubs
ensuite tu colles cette formule matricielle dans une cellule
=SOMME(SI(Cbus<>"";1/NB.SI(Clubs;Clubs)))
pour valider la formule, dans la barre des formules tu la mets en surbrillance et en même temps tu cliques sur les trois touches Ctrl la touche majuscule et entrée (la touche majuscule shift juste au dessus de Ctrl)
Si tu fais bien, ta formule aura cette forme {=SOMME(SI(Clubs<>"";1/NB.SI(Clubs;Clubs)))}
si tu souhaites intégrer le texte Clubs c'est cette formule avant de valider ta matricielle
=SOMME(SI(Clubs<>"";1/NB.SI(Clubs;Clubs)))&" Clubs"
Je serai de retour demain
A+
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
28 nov. 2008 à 14:08
28 nov. 2008 à 14:08
Salut,
Tu ne donnes pas trop de renseignement pour que l'on t'aide, on va faire avec.
En supposant que colonne A tu rentres les CLUBS, en colonne B les Noms et les résultat en colonne C
tu peux te servir de la colonne C qui est sensé être vide ou contenir une valeur égale ou supérieure à 0
Dans ce cas la formule pour compter les valeurs est
=NBVAL(C:C) pour toute la colonne ou =NBVAL(C2:C20) pour compter la plage C2 à C20
Si tu souhaites compter les cellules ne contenant aucune saisie la formule est
=NB.VIDE(C:C) ou =NB.VIDE(C2:C20)
A+
Tu ne donnes pas trop de renseignement pour que l'on t'aide, on va faire avec.
En supposant que colonne A tu rentres les CLUBS, en colonne B les Noms et les résultat en colonne C
tu peux te servir de la colonne C qui est sensé être vide ou contenir une valeur égale ou supérieure à 0
Dans ce cas la formule pour compter les valeurs est
=NBVAL(C:C) pour toute la colonne ou =NBVAL(C2:C20) pour compter la plage C2 à C20
Si tu souhaites compter les cellules ne contenant aucune saisie la formule est
=NB.VIDE(C:C) ou =NB.VIDE(C2:C20)
A+
jackymns
Messages postés
6
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
31 mars 2009
28 nov. 2008 à 20:11
28 nov. 2008 à 20:11
BONJOUR ET MERCI POUR TA REPONSE,
mais ça ne repond pas à ma question:
dans mon tableau, jai x colones et x lignes chaque ligne correspond à un participant.
chaque club a plusieurs participant (logique)
nomx clubA
nomy clubB
nomz clubA
nomr clubC
dans mon exemple je voudrai trouver nombre club 3
merci encore
mais ça ne repond pas à ma question:
dans mon tableau, jai x colones et x lignes chaque ligne correspond à un participant.
chaque club a plusieurs participant (logique)
nomx clubA
nomy clubB
nomz clubA
nomr clubC
dans mon exemple je voudrai trouver nombre club 3
merci encore
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
28 nov. 2008 à 21:23
28 nov. 2008 à 21:23
Si tu as maximum huit clubs
=SI(NB.SI(A1:A20;"clubA")>0;1)+SI(NB.SI(A1:A20;"clubB")>0;1)+SI(NB.SI(A1:A20;"clubC")>0;1)+SI(NB.SI(A1:A20;"clubD")>0;1)&" clubs "
si tu as plus de huit club, et pas de cellule vide dans ta plage à compter exemple A1 à A20
=SOMMEPROD(1/NB.SI(A1:A20;A1:A20))& " Clubs"
A+
=SI(NB.SI(A1:A20;"clubA")>0;1)+SI(NB.SI(A1:A20;"clubB")>0;1)+SI(NB.SI(A1:A20;"clubC")>0;1)+SI(NB.SI(A1:A20;"clubD")>0;1)&" clubs "
si tu as plus de huit club, et pas de cellule vide dans ta plage à compter exemple A1 à A20
=SOMMEPROD(1/NB.SI(A1:A20;A1:A20))& " Clubs"
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
28 nov. 2008 à 23:11
28 nov. 2008 à 23:11
Bonsoir,
Une fonction personnalisée (à copier dans module) qui peut te dépanner.
Dans ton cas il faudrait utiliser la syntaxe suivante :
=SansDoublon($A$2:$A$14;0;0)
pour avoir le nbre d'éléments différents dans $A$2:$A$14.
Si tu ne sais pas l'installer, demande on t'expliquera.
eric
Une fonction personnalisée (à copier dans module) qui peut te dépanner.
Dans ton cas il faudrait utiliser la syntaxe suivante :
=SansDoublon($A$2:$A$14;0;0)
pour avoir le nbre d'éléments différents dans $A$2:$A$14.
Function SansDoublon(Source As Range, Rang As Long, Trier As Boolean) As Variant ' si rang =0 retourne le nombre d'éléments différents de Source ' si rang>0 et trier=0 est retourné nième (rang) élément de la liste sans doublon non triée ' si rang>0 et trier=1 est retourné nième (rang) élément de la liste sans doublon triée Dim datas() As Variant, tmp As Variant Dim i As Long, j As Long, k As Long, nbval As Long If Source.Areas.Count > 1 Then Exit Function If Source.Columns.Count > 1 Then Exit Function If Source.Rows.Count < 2 Then Exit Function datas() = Source.Value dernier = UBound(datas, 1) nbval = dernier ' effacer doublons For i = 1 To dernier - 1 For j = i + 1 To dernier If datas(i, 1) = datas(j, 1) And datas(i, 1) <> "" Then datas(j, 1) = "" End If Next j Next i ' éliminer vides i = 0 While i < nbval i = i + 1 If datas(i, 1) = "" Then nbval = nbval - 1 For j = i To nbval datas(j, 1) = datas(j + 1, 1) Next j End If Wend If Trier Then While Not fini fini = True For i = 1 To nbval - 1 If datas(i, 1) > datas(i + 1, 1) Then tmp = datas(i, 1) datas(i, 1) = datas(i + 1, 1) datas(i + 1, 1) = tmp fini = False End If Next i Wend End If If Rang = 0 Then SansDoublon = nbval ElseIf Rang <= nbval Then SansDoublon = datas(Rang, 1) Else SansDoublon = "" End If End Function
Si tu ne sais pas l'installer, demande on t'expliquera.
eric
jackymns
Messages postés
6
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
31 mars 2009
28 nov. 2008 à 23:31
28 nov. 2008 à 23:31
ben jusque là je pataugeais, mais là je me noie blup blup
jackymns
Messages postés
6
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
31 mars 2009
29 nov. 2008 à 08:21
29 nov. 2008 à 08:21
bonjour mike-31
merci pour cette formule,
je ne connaissait pas et je reconnais n'avoir pas tout compris,
mais ça marche alors merci encore
eriiic,
je suis preneur pour la façon d'installer une fonction
merci
merci pour cette formule,
je ne connaissait pas et je reconnais n'avoir pas tout compris,
mais ça marche alors merci encore
eriiic,
je suis preneur pour la façon d'installer une fonction
merci
wilfried_42
Messages postés
907
Date d'inscription
mardi 19 août 2008
Statut
Contributeur
Dernière intervention
8 décembre 2009
244
29 nov. 2008 à 08:54
29 nov. 2008 à 08:54
Bonjour à tous
explication sur la formule de Mike31 : =somme(1/nb.si(club;club)) en matricielle
Formule matricielle : qui travaille sur des matrices :
nb.si(club;club) va donner le nombre total de pour chaque club (2eme parametre) que l'on trouve dans le 1er parametre
si tu as 5 clubs de nom identique : il va touver pour le 1er : 5, le 2eme : 5 .......... soit en tout 25
mais en divisant 1 par chaque valeur trouvée : 1/5 = 0.20 et cela 5 fois : resultat : 1, on retrouve donc bien pour chaque valeur différente le résultat de 1 et ce quelque soit le nombre de fois qu'elle apparait.
en sommant donc tous les 1, on trouve donc le nombre total d'occurences différentes.
j'espère avec été clair, j'ai peur de m'embrouiller au fure et à mesure que l'explication avance lol
explication sur la formule de Mike31 : =somme(1/nb.si(club;club)) en matricielle
Formule matricielle : qui travaille sur des matrices :
nb.si(club;club) va donner le nombre total de pour chaque club (2eme parametre) que l'on trouve dans le 1er parametre
si tu as 5 clubs de nom identique : il va touver pour le 1er : 5, le 2eme : 5 .......... soit en tout 25
mais en divisant 1 par chaque valeur trouvée : 1/5 = 0.20 et cela 5 fois : resultat : 1, on retrouve donc bien pour chaque valeur différente le résultat de 1 et ce quelque soit le nombre de fois qu'elle apparait.
en sommant donc tous les 1, on trouve donc le nombre total d'occurences différentes.
j'espère avec été clair, j'ai peur de m'embrouiller au fure et à mesure que l'explication avance lol
eriiic
Messages postés
24601
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
25 novembre 2024
7 243
29 nov. 2008 à 10:53
29 nov. 2008 à 10:53
Re,
pour installer une fonction (ou une macro) :
- clic-droit sur le nom de l'onglet et 'visualiser le code'
- dans VBA clic-droit sur le projet et 'insertion / module' (une fonction ne se met jamais dans le code d'une feuille)
- double-clic sur le module pour activer sa feuille de code.
- coller le code dans la fenetre de droite
- pour utiliser une fonction personnalisée la saisir avec tout ses parametres dans une cellule comme une fonction d'origine. Ou bien 'insertion / fonction...' catégorie 'personnalisées'.
- pour appeler une macro : Alt+F8, la sélectionner et valider.
Pour te faire la main colle
dans un module
retourne dans ta feuille et saisi :
=surfaceCercle(11.3)
eric
pour installer une fonction (ou une macro) :
- clic-droit sur le nom de l'onglet et 'visualiser le code'
- dans VBA clic-droit sur le projet et 'insertion / module' (une fonction ne se met jamais dans le code d'une feuille)
- double-clic sur le module pour activer sa feuille de code.
- coller le code dans la fenetre de droite
- pour utiliser une fonction personnalisée la saisir avec tout ses parametres dans une cellule comme une fonction d'origine. Ou bien 'insertion / fonction...' catégorie 'personnalisées'.
- pour appeler une macro : Alt+F8, la sélectionner et valider.
Pour te faire la main colle
Function surfaceCercle(r) surfaceCercle = 3.14 * r ^ 2 End Function
dans un module
retourne dans ta feuille et saisi :
=surfaceCercle(11.3)
eric
Mike-31
Messages postés
18350
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
28 novembre 2024
5 105
29 nov. 2008 à 11:51
29 nov. 2008 à 11:51
Bonjour à tous,
J’émerge, merci Wilfried_42 d’avoir brillamment complété les explications de la matricielle.
Eriiic est toujours aussi étonnant en VBA
Jackymns, si tu estime que nous avons répondu à tes attentes, fais le nous savoir que l’on mette le statut de cette discussion en résolu.
Bon week-end à tous
J’émerge, merci Wilfried_42 d’avoir brillamment complété les explications de la matricielle.
Eriiic est toujours aussi étonnant en VBA
Jackymns, si tu estime que nous avons répondu à tes attentes, fais le nous savoir que l’on mette le statut de cette discussion en résolu.
Bon week-end à tous