Formule pour sélection aléatoire

  • Initiateur de la discussion Gilbert La Porte
  • Date de début
G

Gilbert La Porte

Guest
Quelqu'un saurait me conseiller une formule pour faire faire à excel une sélection aléatoire dans une base de données contenant des adresses, pour la réaliser d'une enquête d'opinion.

Merci d'avance
 
J

Jean-Marie

Guest
Bonjour Gilbert

Ton problème n'est pas assez détaille.

Qu'appel tu sélection aléatoire. Une plage définie par des calculs, exemple, recherche dans la base de données d'une date de début (saisie dans une cellule) et une date de fin (saisie dans une autre cellule).

Ou rechercher dans ta base de données, tous les questionnaires qui ont une réponse à une question, puis récupérer cette plage pour analyser par des tri croisés les différentes réponses.

Essayer de faire un fichier explicatif.

@+Jean-Marie
 
@

@Christophe@

Guest
Bonjour forum, bonjour jean-marie

D'apres ce que j'ai pu comprendre, il a un listing de nom disons 1000 client, et il voudrais faire une enquete chez 100 client, il voudrait que les 100 client sont automatiquement selectioné aleatoirement permis les 1000, que a chaque fois que la formule s'execute il a 100 autre, fin je crois en avoir compris cela.


Christophe
 
G

Gilbert La Porte

Guest
Bonjour Jean-Marie,

Merci de ta réponse. Effectivement, j'ai une liste d'adresses d'entreprises (17.000) ; je veux constituer un panel de façon aléatoire pour envoyer un questionnaire à 10 % d'entreprises de cette liste. J'ai pensé utiliser la fonction alea() mais elle me renvoie un chiffre et ne fait pas d'extraction.
 
J

Jean-Marie

Guest
Bonsoir Gilbert

Sur la fonction alea.entre.bornes fait partie d'une macro complémentaire :-( et ne te résoud pas ton problème.

En effet le recalcul de la feuille change en permanence la valeur de l'alea().

deux possibilités , soit une macro VBA ->> pour Thierry.

OU cette fonction :
=SI(ESTNUM(A1);MOD(ENT(ALEA()*1000);2))

ATTENTION LIT BIEN LA SUITE.

avant de l'appliquer, clique sur le menu outils/options, une boîte de dialogue s'affiche dans l'onglet calcul, tu clique sur itération et tu passe la valeur 100 à 1.

EXEMPLE : Dans la cellule A1 tu tape la formule suivante :
=SI(ESTNUM(A1);MOD(ENT(ALEA()*1000);2))


Regarde avec attention la condition tu verras qu'elle test la valeur contenue dans sa propre cellule. Si tu n'as pas coché l'itération un message d'erreur de calcul circulaire s'affiche. Tu peux glisser déposser ta formule sur les 17 000 lignes de ta base.

La fonction te renvoie un 0 ou un 1. Elle ne contrôle pas le nombre de 0 ou de 1 présent.

Après enregistrement et lors de la prochaine ouverture, la valeur est recalculé. Je te conseil après le calcul de faire un recopie spécial des valeurs.

@+Jean-Marie
 
G

Gilbert La Porte

Guest
Bonjour Jean-Marie,

Ta solution me convient bien ; je complète par une Recherchev pour ressortir les fiches qui contiennent la valeur 1.

Ceci étant, peux tu me préciser quelle est l'importance de la valeur 1000 dans la formule =si(estnum(A1);mod(ent(alea()*1000);2)) ?

En d'autres termes, si je la remplace par 300 par exemple, qu'est-ce qui change ? (je ne vois pas de changement sensible dans les résultats) ?

Merci de ton aide.
 
J

Jean-Marie

Guest
Bonsoir Gilbert,

tu as raison, il n' y a aucune importance dans la multiplication. 10 ou 1000 ou 300 Bref, c'était pour mettre une valeur. Mais le mini est de 10.

Heureux de t'avoir donné une solution à ton problème.

@+jean-Marie

PS il y a une erreur dans le message, après l'ouverture du fichier la valeur n'est pas recalculée.
 

Discussions similaires

Statistiques des forums

Discussions
314 651
Messages
2 111 553
Membres
111 199
dernier inscrit
mavoungou regis