[Résolu][Calc] contraire de la fonction MODE
Modérateur : Vilains modOOs
Règles du forum
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
[Résolu][Calc] contraire de la fonction MODE
Bonjour,
La fonction MODE renvoie la valeur qui apparaît le plus souvent dans une plage de données.
J'ai réussi, grâce à l'aide de la communauté (https://forum.openoffice.org/fr/forum/v ... =4&t=55254), à faire le "contraire", c.a.d. retourner la valeur qui apparait le moins souvent.
Cela fonctionne très bien sur une petite base de données. Mais dès que la base est trop importante, l'ouverture du fichier est très longue ainsi qui les tris et autres opérations presque interminables...
Donc l'idée est d'écrire une macro qui permettrait d'avoir un fichier "manipulable".
Étant un peu limité dans le développement de macro, je fais appel à la communauté pour avoir quelques pistes.
Merci par avance.
La fonction MODE renvoie la valeur qui apparaît le plus souvent dans une plage de données.
J'ai réussi, grâce à l'aide de la communauté (https://forum.openoffice.org/fr/forum/v ... =4&t=55254), à faire le "contraire", c.a.d. retourner la valeur qui apparait le moins souvent.
Cela fonctionne très bien sur une petite base de données. Mais dès que la base est trop importante, l'ouverture du fichier est très longue ainsi qui les tris et autres opérations presque interminables...
Donc l'idée est d'écrire une macro qui permettrait d'avoir un fichier "manipulable".
Étant un peu limité dans le développement de macro, je fais appel à la communauté pour avoir quelques pistes.
Merci par avance.
Dernière modification par DARDI le 24 août 2017 15:30, modifié 2 fois.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
- Grenouille
- ManitOOu
- Messages : 3223
- Inscription : 13 janv. 2006 17:21
- Localisation : Chasseneuil-du-Poitou / Futuroscope
Re: [Calc] contraire de la fonction MODE
Bonjour,
C'est le module Base qu'il te faut dans ce cas.
http://www.openoffice.org/fr/Documentat ... cABase.pdf
A+
Calc est un tableur et pas une base de données.DARDI a écrit :Cela fonctionne très bien sur une petite base de données
C'est le module Base qu'il te faut dans ce cas.
http://www.openoffice.org/fr/Documentat ... cABase.pdf
A+
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
Re: [Calc] contraire de la fonction MODE
Désolé, je me suis mal exprimé... en fait ce que j'appelle improprement base de données, est en réalité un tableur.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
Bonjour à tous,
Dans ton sujet en section Tableur, je reprends la fonction FREQUENCE proposée par Hubert, avec un jeu de données sur 1024 colonnes, le résultat est instantané (voir classeur joint), sur combien de lignes et de colonnes travaille-tu ?
A +
Dans ton sujet en section Tableur, je reprends la fonction FREQUENCE proposée par Hubert, avec un jeu de données sur 1024 colonnes, le résultat est instantané (voir classeur joint), sur combien de lignes et de colonnes travaille-tu ?
A +
- Pièces jointes
-
- DARDI_HL_Jeff.ods
- (17.73 Kio) Téléchargé 61 fois
Re: [Calc] contraire de la fonction MODE
Merci.
J'ai du mal avec la variable "données" dans la formule FREQUENCE... d'où vient-elle ?
Je travaille sur 150 colonnes et 10 000 lignes.
Cordialement
J'ai du mal avec la variable "données" dans la formule FREQUENCE... d'où vient-elle ?
Je travaille sur 150 colonnes et 10 000 lignes.
Cordialement
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
C’est un nom, tu peux voir à quoi il est attribué via le menu Insertion > NomsDARDI a écrit : d'où vient-elle ?
Tu cherches le minimum de répétition par lignes, ou bien pour toute la plage ?
Re: [Calc] contraire de la fonction MODE
YES... j'avais oublié.
Je cherche le minimum de répétition par ligne.
En fait, j'aimerai avoir en bout de ligne, une cellule m'indiquant la valeur qui apparait le moins souvent.
Je cherche le minimum de répétition par ligne.
En fait, j'aimerai avoir en bout de ligne, une cellule m'indiquant la valeur qui apparait le moins souvent.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
Lorsque je saisie cette expression : $ligne.$AHH$1:$AMJ$1 et valide, je me retrouve avec ceci : $#REF !.$AHH$1:$#REF !.$AMJ$1
Je ne comprends pas...
Je ne comprends pas...
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
- Hubert Lambert
- SuppOOrter
- Messages : 1214
- Inscription : 06 avr. 2016 09:26
Re: [Calc] contraire de la fonction MODE
Bonjour,
Ci-joint le fichier avec les formules adaptées en fonction des dernières précisions .
Cordialement.
Ci-joint le fichier avec les formules adaptées en fonction des dernières précisions .
Cordialement.
- Pièces jointes
-
- DARDI_HL_2.ods
- (39.65 Kio) Téléchargé 53 fois
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Re: [Calc] contraire de la fonction MODE
Le problème est que je n’arrive pas à obtenir une matrice en ligne avec la fonction FREQUENCE
Si on reste avec des formules, je te propose :
à valider matriciellement
$EV$1:$FJ$1 contient le jeu de données.
En cas de doublon, c’est la première valeur du jeu de données qui est renvoyée.
Le résultat est un classeur assez poussif à l’ouverture et à la fermeture pour 10 000 lignes, par contre, les modifications lignes par ligne sont actualisée instantanément.
À tester : Sinon, je doute pas que tu auras une réponse par macro
A +
Si on reste avec des formules, je te propose :
Code : Tout sélectionner
=INDEX($EV$1:$FJ$1;1;EQUIV(MIN(NB.SI(A4:ET4;$EV$1:$FJ$1));NB.SI(A4:ET4;$EV$1:$FJ$1);0))
$EV$1:$FJ$1 contient le jeu de données.
En cas de doublon, c’est la première valeur du jeu de données qui est renvoyée.
Le résultat est un classeur assez poussif à l’ouverture et à la fermeture pour 10 000 lignes, par contre, les modifications lignes par ligne sont actualisée instantanément.
À tester : Sinon, je doute pas que tu auras une réponse par macro
Ajout : Bonjour Hubert |
Dernière modification par Jeff le 23 août 2017 10:26, modifié 1 fois.
Re: [Calc] contraire de la fonction MODE
Bonjour,
Merci Hubert... mais j'ai toujours le même souci, lorsque j'entre : $ligne.$A2:$ET2, après validation je me retrouve avec : $#REF !.$A2:$#REF !.$ET2
J'ai trouvé mon erreur... c'était le nom de ma feuille qui n'était pas cohérent.
Par contre, comment fais-tu, Hubert, pour "étirer" la formule aux lignes suivantes ?
Merci Hubert... mais j'ai toujours le même souci, lorsque j'entre : $ligne.$A2:$ET2, après validation je me retrouve avec : $#REF !.$A2:$#REF !.$ET2
J'ai trouvé mon erreur... c'était le nom de ma feuille qui n'était pas cohérent.
Par contre, comment fais-tu, Hubert, pour "étirer" la formule aux lignes suivantes ?
Dernière modification par DARDI le 23 août 2017 11:14, modifié 1 fois.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
- Hubert Lambert
- SuppOOrter
- Messages : 1214
- Inscription : 06 avr. 2016 09:26
Re: [Calc] contraire de la fonction MODE
Jeff a écrit :Le problème est que je n’arrive pas à obtenir une matrice en ligne avec la fonction FREQUENCE
[...]
Ajout : Bonjour Hubert
La référence n'étant pas absolue pour les lignes, il faut être attentif au moment de définir la plage nommée, puisque la référence sera relative à la cellule active au moment de la définir. Ainsi, si tu entres "$ligne.$A2:$ET2" en ayant le curseur sur la ligne 4, la plage nommée aura en ligne 3 la référence "$ligne.$A1:$ET1" tandis que, pour les deux premières lignes, la plage pointera "dans le vide".DARDI a écrit :j'ai toujours le même souci, lorsque j'entre : $ligne.$A2:$ET2, après validation je me retrouve avec : $#REF !.$A2:$#REF !.$ET2
Au moment de valider la plage nommée avec une formule comme "$ligne.$A2:$ET2", assure-toi d'être sur la même ligne, c'est-à-dire en ligne 2.
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Re: [Calc] contraire de la fonction MODE
Désolé... mais je n'arrive pas à faire fonctionner ta formule dans mon fichier.
Par ailleurs, comment fais-tu, Hubert, pour "étirer" la formule aux lignes suivantes ?
Merci.
Par ailleurs, comment fais-tu, Hubert, pour "étirer" la formule aux lignes suivantes ?
Merci.
- Pièces jointes
-
- 7-Temp-1.ods
- (24.24 Kio) Téléchargé 43 fois
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
- Hubert Lambert
- SuppOOrter
- Messages : 1214
- Inscription : 06 avr. 2016 09:26
Re: [Calc] contraire de la fonction MODE
La plage nommée "freq" doit ressembler à ceci :
Elle sert de tableau de référence à la fonction FREQUENCE et doit démarrer de la plus petite valeur à prendre en compte (1 a priori) jusqu'à la plus grande (78 dans ton exemple).
Mais tes lignes contiennent de nombreux 0 : faut-il en tenir compte ?
S'il faut aussi compter ces 0, adapte les formules comme ceci :et
Code : Tout sélectionner
FREQUENCE(données;LIGNE($A$1:$A$100))
Mais tes lignes contiennent de nombreux 0 : faut-il en tenir compte ?
S'il faut aussi compter ces 0, adapte les formules comme ceci :
Code : Tout sélectionner
FREQUENCE(données;LIGNE($A$1:$A$150)-1)
Code : Tout sélectionner
= EQUIV(MIN(SI(freq>0;freq));freq;0)-1
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
▼ | « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
Re: [Calc] contraire de la fonction MODE
Bonjour Hubert,
Merci, cela fonctionne très bien, rapide et donne, comme la fonction MODE, la valeur la plus petite correspondant au critère, cela répond parfaitement à mes attentes.
Par contre, pour ma culture perso, peux-tu m'éclairer sur le tableau de référence de la fonction FREQUENCE ?
Ma crainte était qu'elle écrase mes données situées dans ces cellules... ce qui n'ait pas le cas.
Comment est-ce possible que des cellules soient utilisées "deux" fois ?
Cordialement.
Merci, cela fonctionne très bien, rapide et donne, comme la fonction MODE, la valeur la plus petite correspondant au critère, cela répond parfaitement à mes attentes.
Par contre, pour ma culture perso, peux-tu m'éclairer sur le tableau de référence de la fonction FREQUENCE ?
Ma crainte était qu'elle écrase mes données situées dans ces cellules... ce qui n'ait pas le cas.
Comment est-ce possible que des cellules soient utilisées "deux" fois ?
Cordialement.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
Tu peux tout à fait nommer une formule qui fait référence à =A1
Ici, Hubert nomme Données une formule qui fait référence à =$ligne.$A1:$ET1 (lorsque tu visualises le nom alors que la cellule active est sur la 1ere ligne du classeur)
À noter que les colonnes sont en références absolues (précédées du signe $) alors que les lignes sont relatives : le nom Données va donc incrémenter les numéro de ligne, et cette formule nommée va donner le contenu de $A1:$ET1 lorsqu’elle est validée sur la première ligne, puis $A2:$ET2 lorsqu’elle est recopiée sur la seconde ligne etc...
Hubert crée ainsi le jeu de données, un jeu par lignes.
La fonction fréquence ayant donc un jeu de données, la formule LIGNE($A$1:$A$100) va générer les chiffres de 1 à 100 pour les classes.
Ici, Hubert nomme Données une formule qui fait référence à =$ligne.$A1:$ET1 (lorsque tu visualises le nom alors que la cellule active est sur la 1ere ligne du classeur)
À noter que les colonnes sont en références absolues (précédées du signe $) alors que les lignes sont relatives : le nom Données va donc incrémenter les numéro de ligne, et cette formule nommée va donner le contenu de $A1:$ET1 lorsqu’elle est validée sur la première ligne, puis $A2:$ET2 lorsqu’elle est recopiée sur la seconde ligne etc...
Hubert crée ainsi le jeu de données, un jeu par lignes.
Code : Tout sélectionner
FREQUENCE(données;LIGNE($A$1:$A$100))
Re: [Calc] contraire de la fonction MODE
Bonjour Jeff,
Merci, ton explication confirme ce que j'avais compris sur le fonctionnement.
Par contre, ce que je ne m'explique pas, c'est l'utilisation des cellules, alors même qu'elles sont "occupées" par mes données...
Cordialement.
Merci, ton explication confirme ce que j'avais compris sur le fonctionnement.
Par contre, ce que je ne m'explique pas, c'est l'utilisation des cellules, alors même qu'elles sont "occupées" par mes données...
Cordialement.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
Ça recopie les données dans une formule, si tu préfère,
Je ne sais pas si je suis clair...
Je ne sais pas si je suis clair...
Re: [Calc] contraire de la fonction MODE
conceptuellement, j'ai du mal à appréhender...
p.e., dans les cellules A1:ET1, j'ai des données (mes valeurs); donc, si je comprends bien, la fonction FREQUENCE s'attribue les mêmes cellules, A1:ET1, pour stocker ses propres valeurs ???...
p.e., dans les cellules A1:ET1, j'ai des données (mes valeurs); donc, si je comprends bien, la fonction FREQUENCE s'attribue les mêmes cellules, A1:ET1, pour stocker ses propres valeurs ???...
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel
Re: [Calc] contraire de la fonction MODE
Plus exactement, elle s'attribue les mêmes valeurs que celles présentes dans tes cellules.DARDI a écrit :la fonction FREQUENCE s'attribue les mêmes cellules, A1:ET1
J'ai essayé de te faire un topo sur la fonction FREQUENCE :
Re: [Calc] contraire de la fonction MODE
Merci, j'ai compris...
En fait je faisais une confusion entre cellules et classes, induit en erreur par la syntaxe.
Super les explications.
Merci beaucoup.
En fait je faisais une confusion entre cellules et classes, induit en erreur par la syntaxe.
Super les explications.
Merci beaucoup.
Version: 5.2.2.2 (x64) sous Windows 7 Professionnel