EXCEL (MODE)
Résolu/Fermé
Albert
-
11 janv. 2010 à 23:19
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 27 juin 2013 à 00:23
eriiic Messages postés 24571 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 8 mai 2024 - 27 juin 2013 à 00:23
A voir également:
- EXCEL (MODE)
- God mode - Guide
- Liste déroulante excel - Guide
- Mode sécurisé - Guide
- Mode d'emploi - Guide
- Mode sans echec - Guide
20 réponses
Ricky38
Messages postés
4349
Date d'inscription
samedi 15 mars 2008
Statut
Contributeur
Dernière intervention
2 novembre 2013
1 458
11 janv. 2010 à 23:23
11 janv. 2010 à 23:23
Salut,
avec la fonction NB.SI(plage;critère)
donc si ton tableau est en A1:C4 et le mot recherché est "toto"
=NB.SI(A1:C4;"toto")
Voilà :)
avec la fonction NB.SI(plage;critère)
donc si ton tableau est en A1:C4 et le mot recherché est "toto"
=NB.SI(A1:C4;"toto")
Voilà :)
re et merci Mr RICKY pour ta réponse
vous m'avez mal compris
EXEMPLE:
A
DAVID
SAM
SAM
CLAUD
SAM
DAVID
SAM
SAM
SAM
.
.
.
ETC
voila : SAM et le mot le plus fréquent, qu'elle la formule a utiliser pour l'afficher ?
vous m'avez mal compris
EXEMPLE:
A
DAVID
SAM
SAM
CLAUD
SAM
DAVID
SAM
SAM
SAM
.
.
.
ETC
voila : SAM et le mot le plus fréquent, qu'elle la formule a utiliser pour l'afficher ?
jejelefou
Messages postés
304
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
18 février 2016
42
11 janv. 2010 à 23:55
11 janv. 2010 à 23:55
Bonsoir,
Je connais pas de formule preformatée pour ce genre de probleme.
Par contre en VB c'est largement réalisable
1/prendre le 1er mot
compter le nombre de fois il apparait dans la zone
2/prendre le mot suivant compter le nombre de fois qu'il apparait dans la zone
si le nombre d'occurence est > alors enregistrer
3/repeter 2/ jusqu'à la fin de la zone
4/ afficher le resultat
demain je le traduirais en VB
bonne soirée
Je connais pas de formule preformatée pour ce genre de probleme.
Par contre en VB c'est largement réalisable
1/prendre le 1er mot
compter le nombre de fois il apparait dans la zone
2/prendre le mot suivant compter le nombre de fois qu'il apparait dans la zone
si le nombre d'occurence est > alors enregistrer
3/repeter 2/ jusqu'à la fin de la zone
4/ afficher le resultat
demain je le traduirais en VB
bonne soirée
Merci jeje
en traduisant ce que ta a dit je trouve :
compter le nombre de reptation de chaque nom
trouver le MAX
Renvoyer le MAX.....
pfffff
c trop compliquer
j'attendrais ta repense avec impatience
en traduisant ce que ta a dit je trouve :
compter le nombre de reptation de chaque nom
trouver le MAX
Renvoyer le MAX.....
pfffff
c trop compliquer
j'attendrais ta repense avec impatience
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Raymond PENTIER
Messages postés
58423
Date d'inscription
lundi 13 août 2007
Statut
Contributeur
Dernière intervention
10 mai 2024
17 105
12 janv. 2010 à 01:55
12 janv. 2010 à 01:55
à côté de chaque mot tu mets un code numérique, et tu feras ton CODE sur cette colonne ...
DAVID 45
SAM 203
SAM 203
CLAUD 35
SAM 203
DAVID 45
SAM 203
SAM 203
SAM 203
.
.
DAVID 45
SAM 203
SAM 203
CLAUD 35
SAM 203
DAVID 45
SAM 203
SAM 203
SAM 203
.
.
jejelefou
Messages postés
304
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
18 février 2016
42
12 janv. 2010 à 11:27
12 janv. 2010 à 11:27
Bonjour,
voici un petit truc qui trouve le résultat.
Je pense que la forme peut etre améliorée :
Sub modemot()
coldebut = InputBox("entrez le numero de la colonne du 1er mot")
colfin = InputBox("entrez le numero de la colonne du dernier mot")
lignedebut = InputBox("entrez le numero de la ligne du 1er mot")
lignefin = InputBox("entrez le numero de la ligne du dernier mot")
recurence = 0
motmax = 0
'Boucle de reference
For a = coldebut To colfin
For b = lignedebut To lignefin
reference = Cells(b, a).Text
'boucle de recherche de l'identique de reference
For i = coldebut To colfin
For j = lignedebut To lignefin
If Cells(j, i).Text = reference Then
recurence = recurence + 1
End If
Next
Next
If recurence > motmax Then
motmax = recurence
motmaxvaleur = reference
End If
recurence = 0
Next
Next
'affichage du resultat
Cells(lignefin + 1, coldebut + 0).Value = "le mot le plus de fois present est :"
Cells(lignefin + 2, coldebut + 0).Value = motmaxvaleur
Cells(lignefin + 3, coldebut + 0).Value = motmax
End Sub
voici un petit truc qui trouve le résultat.
Je pense que la forme peut etre améliorée :
Sub modemot()
coldebut = InputBox("entrez le numero de la colonne du 1er mot")
colfin = InputBox("entrez le numero de la colonne du dernier mot")
lignedebut = InputBox("entrez le numero de la ligne du 1er mot")
lignefin = InputBox("entrez le numero de la ligne du dernier mot")
recurence = 0
motmax = 0
'Boucle de reference
For a = coldebut To colfin
For b = lignedebut To lignefin
reference = Cells(b, a).Text
'boucle de recherche de l'identique de reference
For i = coldebut To colfin
For j = lignedebut To lignefin
If Cells(j, i).Text = reference Then
recurence = recurence + 1
End If
Next
Next
If recurence > motmax Then
motmax = recurence
motmaxvaleur = reference
End If
recurence = 0
Next
Next
'affichage du resultat
Cells(lignefin + 1, coldebut + 0).Value = "le mot le plus de fois present est :"
Cells(lignefin + 2, coldebut + 0).Value = motmaxvaleur
Cells(lignefin + 3, coldebut + 0).Value = motmax
End Sub
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 303
12 janv. 2010 à 11:46
12 janv. 2010 à 11:46
Bonjour
tes noms sont de A1 à A9 (d'après ton post)
formule matricielle à valider par Ctrl+maj+entrée (et non par entrée, comme d'hab)
Le curseur doit être dans la barre de formule.
XL encadre automatiquement la formule par des accolades
edit 12:00: si ex-æquo, ne donne que le 1° rencontré en descendant !...
tes noms sont de A1 à A9 (d'après ton post)
=INDEX(A1:A9;MIN(SI(NB.SI(A1:A9;A1:A9)=MAX(NB.SI(A1:A9;A1:A9));LIGNE(A1:A9))))
formule matricielle à valider par Ctrl+maj+entrée (et non par entrée, comme d'hab)
Le curseur doit être dans la barre de formule.
XL encadre automatiquement la formule par des accolades
edit 12:00: si ex-æquo, ne donne que le 1° rencontré en descendant !...
Bonsoir tous
Merci JEJE pour ton code,je ne sais pas comment faire pour le mettre dans une case, je ne connais rien en VBA,j'ai esseyé mais rien,merci quand même
Mr Raymond PENTIER,j'ai une liste qui contient presque 3200 noms,;) tu vois? numéroter 3200 case,lol,MERCI bqp pour ton idée
Michel,ta formule est impossible a valider, je ne sais pas pourquoi,malgré que j'ai suivi ta procédure (Ctrl+maj+entrée) mais toujours rien
dans l'attente de ce mode, veuillez acceptez messieurs mes chéres salutations excel-tives
lol
merci pour vos réponses
Merci JEJE pour ton code,je ne sais pas comment faire pour le mettre dans une case, je ne connais rien en VBA,j'ai esseyé mais rien,merci quand même
Mr Raymond PENTIER,j'ai une liste qui contient presque 3200 noms,;) tu vois? numéroter 3200 case,lol,MERCI bqp pour ton idée
Michel,ta formule est impossible a valider, je ne sais pas pourquoi,malgré que j'ai suivi ta procédure (Ctrl+maj+entrée) mais toujours rien
dans l'attente de ce mode, veuillez acceptez messieurs mes chéres salutations excel-tives
lol
merci pour vos réponses
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
12 janv. 2010 à 22:41
12 janv. 2010 à 22:41
Bonjour,
michel_m l'a pourtant bien précisé, la formule fonctionne en A1:A9, elle renvoie ref si on ne demarre pas à la ligne 1...sinon il faut modifier pour trouver la premiere ligne du tableau :
ça devrait le faire...
michel_m l'a pourtant bien précisé, la formule fonctionne en A1:A9, elle renvoie ref si on ne demarre pas à la ligne 1...sinon il faut modifier pour trouver la premiere ligne du tableau :
=INDEX(B15:B23;MIN(SI(NB.SI(B15:B23;B15:B23)=MAX(NB.SI(B15:B23;B15:B23));LIGNE(B15:B23)-MIN(LIGNE(B15:B23)-1))))à valider par CTRL+SHIFT+ENTREE
ça devrait le faire...
jejelefou
Messages postés
304
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
18 février 2016
42
12 janv. 2010 à 22:47
12 janv. 2010 à 22:47
Pour mettre le code :
outil
macro
visual basic editor
ouvrir la page correspondant à l'onglet du ton fichier
copier le code
cliquer sur la touche play (sorte de fleche comme sur un lecteur mp3)
repondre aux questions posées
si ca marche, il faudra créer une icone pour un raccourci, mais on n'en est pas encore là. dits moi si ca te convient tout de meme
outil
macro
visual basic editor
ouvrir la page correspondant à l'onglet du ton fichier
copier le code
cliquer sur la touche play (sorte de fleche comme sur un lecteur mp3)
repondre aux questions posées
si ca marche, il faudra créer une icone pour un raccourci, mais on n'en est pas encore là. dits moi si ca te convient tout de meme
Bonjour
Merci et 1000 fois merci JEJE car ça marche parfaitement, j'ai aussi pu changer la case ou afficher le resultat, donc ,merci bqp encore une fois.
michel_m,a*ta formule marche que dans les case de A1:A9,j'ai essayé de déplacer les cadre mais bon,je sais que le problème vient de chez moi,et merci pour ta contribution
TOMPOLIS,merci pour ta réponse malgré qu'elle ne fonctionne pas car elle renvoie une erreur.
VOILA,Topic resolu, merci pour votre aide, surtout vous JEJE, :)
Merci et 1000 fois merci JEJE car ça marche parfaitement, j'ai aussi pu changer la case ou afficher le resultat, donc ,merci bqp encore une fois.
michel_m,a*ta formule marche que dans les case de A1:A9,j'ai essayé de déplacer les cadre mais bon,je sais que le problème vient de chez moi,et merci pour ta contribution
TOMPOLIS,merci pour ta réponse malgré qu'elle ne fonctionne pas car elle renvoie une erreur.
VOILA,Topic resolu, merci pour votre aide, surtout vous JEJE, :)
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
13 janv. 2010 à 10:36
13 janv. 2010 à 10:36
Bonjour,
pas le peine d'écrire en gras, pitié pour nos yeux....
la formule fonctionne très bien (attention au copier/coller depuis le forum, no temment en cas de renvoi à la ligne : https://www.cjoint.com/?bnkKEEVB1b ), apres j'ai utilisé une plage en B15:B23, à adapter...
pas le peine d'écrire en gras, pitié pour nos yeux....
la formule fonctionne très bien (attention au copier/coller depuis le forum, no temment en cas de renvoi à la ligne : https://www.cjoint.com/?bnkKEEVB1b ), apres j'ai utilisé une plage en B15:B23, à adapter...
jejelefou
Messages postés
304
Date d'inscription
mercredi 21 mai 2008
Statut
Membre
Dernière intervention
18 février 2016
42
13 janv. 2010 à 10:31
13 janv. 2010 à 10:31
Avec plaisir, et merci de ce retour.
A+
jéjé
A+
jéjé
OOPPPSS,
just une dernier chose, y a t il un moyen pour afficher le resuktat dans une autre feuille?
just une dernier chose, y a t il un moyen pour afficher le resuktat dans une autre feuille?
moiwahab
Messages postés
4
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 10:49
13 janv. 2010 à 10:49
BJR
tompols,je ne sais pas pourquoi, mais ta formule a bien marché, j'ai aimé plus la méthode jeje car cette dernière offre la possibilité de fusionné plusieurs colonne, par contre la tienne on ne peux affiche que le mode d'une seul colonne
MERCI
JEJE,SVP, comment faire pour afficher le résultat dans une autre feuille?
tompols,je ne sais pas pourquoi, mais ta formule a bien marché, j'ai aimé plus la méthode jeje car cette dernière offre la possibilité de fusionné plusieurs colonne, par contre la tienne on ne peux affiche que le mode d'une seul colonne
MERCI
JEJE,SVP, comment faire pour afficher le résultat dans une autre feuille?
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
13 janv. 2010 à 10:54
13 janv. 2010 à 10:54
@ Jejelefou : "Je pense que la forme peut etre améliorée" bah du coup jm'y suis essayé, on peut raccourcir un peu le code comme ça (et puis ça t'evite de passer par des compteurs de boucle a,b,i,j) :
Set zo = Range(Cells(lignedebut, coldebut), Cells(lignefin, colfin)) For Each c In zo reference = c.Text For Each d In zo If d.Text = reference Then recurence = recurence + 1 End If Next If recurence > motmax Then motmax = recurence motmaxvaleur = reference End If recurence = 0 Next c
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
13 janv. 2010 à 11:00
13 janv. 2010 à 11:00
le plus simple serait de transformer ça en fonction, le code devient
voilà, tu tu disposes ensuite d'une formule =motfrequent() utilisable depuis n'importe quelle feuille; exemple en A1:A9 : =motfrequent(Feuil1!A1:A9)
Function motfrequent(plage As Range) recurence = 0 motmax = 0 For Each c In plage reference = c.Text For Each d In plage If d.Text = reference Then recurence = recurence + 1 End If Next If recurence > motmax Then motmax = recurence motmaxvaleur = reference End If recurence = 0 Next c motfrequent = "le mot le plus de fois present est : " & motmaxvaleur & " (" & motmax & " occurences)" End Function
voilà, tu tu disposes ensuite d'une formule =motfrequent() utilisable depuis n'importe quelle feuille; exemple en A1:A9 : =motfrequent(Feuil1!A1:A9)
eriiic
Messages postés
24571
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
8 mai 2024
7 216
27 juin 2013 à 00:23
27 juin 2013 à 00:23
Bonsoir,
applicable non plus pour des mots mais pour des valeurs numériques
Pas besoin de vba, c'est la fonction Mode()
eric
applicable non plus pour des mots mais pour des valeurs numériques
Pas besoin de vba, c'est la fonction Mode()
eric
moiwahab
Messages postés
4
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 11:02
13 janv. 2010 à 11:02
waw,,
je vais esseyer ça,just deux minute
je vais esseyer ça,just deux minute
moiwahab
Messages postés
4
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 11:08
13 janv. 2010 à 11:08
Mr tompols, vous etes sur que c'est possible,car une goid je tape "play" elle me donne un nom d'une macro (suprimer noms)quand je l'execute, ça renvoie ERREUR d'execution 348" propriete ou methode non generer par cet objet"
merci
merci
tompols
Messages postés
1273
Date d'inscription
jeudi 29 juillet 2004
Statut
Contributeur
Dernière intervention
25 novembre 2013
435
13 janv. 2010 à 11:27
13 janv. 2010 à 11:27
re,
ce que je te donne c'est une fonction, donc tu colles simplement le code dans un module ou dans ThisWorkbook dans l'editeur vba (pour crer un module, click droit sur une feuille dans l'editeur puis insertion/module).
Ensuite la formule s'utlise comme une simple fomule excel : https://www.cjoint.com/?bnlBp3OXC1
pour ton pb avec supprimer_noms, merci de poster ici :https://forums.commentcamarche.net/forum/affich-16124351-vba-impossible-de-supprimer-tous-les-noms#4
ce que je te donne c'est une fonction, donc tu colles simplement le code dans un module ou dans ThisWorkbook dans l'editeur vba (pour crer un module, click droit sur une feuille dans l'editeur puis insertion/module).
Ensuite la formule s'utlise comme une simple fomule excel : https://www.cjoint.com/?bnlBp3OXC1
pour ton pb avec supprimer_noms, merci de poster ici :https://forums.commentcamarche.net/forum/affich-16124351-vba-impossible-de-supprimer-tous-les-noms#4
moiwahab
Messages postés
4
Date d'inscription
mercredi 13 janvier 2010
Statut
Membre
Dernière intervention
13 janvier 2010
13 janv. 2010 à 11:36
13 janv. 2010 à 11:36
merci,merci
finalement c'est PAS TROP Compliqué,lol
merci tompolis
finalement c'est PAS TROP Compliqué,lol
merci tompolis