Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

série aléatoire carré latin

  • Initiateur de la discussion Initiateur de la discussion sylvainoh
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sylvainoh

XLDnaute Nouveau
bonsoir

je débute sur ecxel. je recherche la possibilité d'établir une liste de 12 nombre aléatoire à partir d'une liste existante.
en fait je veux sur 12 colonnes les memes nombres mais dans un sens différent. c'est lE principe du caré latin je crois.

c'est pour un plan d'expérimentation pour une dégustation pour éviter un effet de repport d'un échantillon à un autre...

merci
c'est assez urgent
si quelqu'n peut m'aider je cherche mais je ne trouve pas
 
Re : série aléatoire carré latin

Bonsoir le fil, sylvainoh

Un essai par macro
Code:
    ScreenUpdating = 0
 
    [A1] = 1
    [A1].AutoFill [A1:A12], xlFillSeries
 
    Randomize
    [B1].Formula = "=RAND()"
    [B1].AutoFill [B1:B12]
 
    [A1:B12].Sort [B1:B12], xlAscending
    [A1:A12].Copy [A13:A24]
 
    For L = 1 To 11
        [A1:A24].Offset(L, 0).Copy [A1].Offset(, L)
    Next
 
    [A13:L24].ClearContents
A plus 🙂
 
Re : série aléatoire carré latin

Bonjour
Compte tenu de la simplicité du problème (sauf si je n'ai pas compris ce qu'il faut faire), il est plus rapide pour moi d'écrire une solution que d'établir une procédure :
_1__2__3__4__5__6__7__8__9_10_11_12
_2__4__6__8_10_12__1__3__5__7__9_11
_3__6__9_12__2__5__8_11__1__4__7_10
_4__8_12__3__7_11__2__6_10__1__5__9
_5_10__2__7_12__4__9__1__6_11__3__8
_6_12__5_11__4_10__3__9__2__8__1__7
_7__1__8__2__9__3_10__4_11__5_12__6
_8__3_11__6__1__9__4_12__7__2_10__5
_9__5__1_10__6__2_11__7__3_12__8__4
10__7__4__1_11__8__5__2_12__9__6__3
11__9__7__5__3__1_12_10__8__6__4__2
12_11_10__9__8__7__6__5__4__3__2__1

ROGER2327
 
Re : série aléatoire carré latin

Bonjour,

Autre méthode répondant peut-être mieux à la question :
Elle fait appel à la fonction complémentaire ALEAS() de Morefunc (à télécharger gratuitement sur le Net)

Sélectionner A1:A12
Saisir : =ALEAS(12;;12;VRAI)+1
Valider par Ctrl+Maj+Entrée
La plage A1:A12 étant sélectionnée, l'étendre jusqu'en colonne L
 
Re : série aléatoire carré latin

bonjour

merci à tous de m'aider.
alors je pense que roger t'as bien saisi la question.
pour la macro le probleme est que l'ordre est toujours le meme dans les colonnes et ca ca pose un probleme.
pour hoerwind les colonnes sont toutes différents mais, il manque quelque chose que je n'ai pas stipulé.

alors je réexplique

c'est pour organiser une dégustation de vin

j'ai 12 échantillon et 14 dégustateurs. je veux que chaque dégustateurs teste chaque vin mais dans un ordere différents pour que le positionement d'un vin par rapport à un autre ne soit pas préjudiciable pour l'analyse statistique que je vais en faire

merci
 
Re : série aléatoire carré latin

Re,

Pas facile à comprendre.

La question :
... une liste de 12 nombre(s) aléatoire(s) ... sur 12 colonnes les memes nombres mais dans un sens différent

L'explication complémentaire :
j'ai 12 échantillon(s) et 14 dégustateurs

Donc, si je comprends, il faut 14 listes rangées différemment (une par dégustateur) de 12 échantillons (vins).

Vois la pièce jointe.
Le tableau du dessus nécessite le téléchargement de la fonction complémentaire ALEAS() de Morefunc.
Le tableau du dessous reprend les valeurs du tableau du dessus, pour visionner le résultat au cas où tu n'aurais pas encore téléchargé cette fonction.
 

Pièces jointes

Re : série aléatoire carré latin

Bonjour tout le monde

Une autre proposition, sans macro complémentaire.

Le sujet est intéressant, l'histoire des 14 Dégustateurs me coupe un peu l'effet que je voulais donner. Dans cet exemple, on peut voir l'effet de la validation de la formule en matricielle sur une plage de cellules.

@+Jean-Marie
 

Pièces jointes

Re : série aléatoire carré latin

merci de chercher je vopis que mon problème vous interesse.

alors en fait il n'est pas possible de faire un carré latin 12*14.
je me comptenterais de 12*12, et je ferais une répatitions pour le 13 et le 14 ème.

un carré latin est un caré ou chaque nombre en ligne et en colonne ne se répète pas mais aussi où l'ordre est différent dans chaque colonne. pour éviter l'effet de positionement d'un vin et 'effet de repport d'un vin sur un autre.

je vous explique si je fait dégusté un vin tannique derrière un vin léger. le deuxième vin va paraitre encore plus léger qu'il ne l'est

ainsi je recherche une répartition de mes échantillons à donner pour chaque dégustateurs pour que cet influence ne biaise pas mes analyses statistiques.
il me semble que le seul moyen s'est de trouver un carré latin qui répond à cela!


je pense avoir été clair....

merci à tous

oger je crois que tu m'é donné un carré latin 12*12 comment t'as fait?
 
Re : série aléatoire carré latin

Bonjour Sylvainoh
Salut soenda
Salut Roger
Salut hoerwind
Salut JeanMarie

Avec mes remerciements a ROGER

Pour ceux qui seront interessés par la methode:
J'ai tout d'abord reproduit le carré de ROGER puis simplement transposé chaque nombre de 0 a 12 par son equivalent d'une serie aleatoire des 12 nombres de 1 a 12
 

Pièces jointes

Re : série aléatoire carré latin

Bonjour à tous
Encore un problème posé alors qu'il s'agit d'en résoudre un autre !
A propos du carré latin que j'ai proposé, vous remarquerez qu'un nombre, 1 par exemple, est suivi par un nombre différent dans chaque colonne. Par conséquent, si on ajoute une treizième colonne, 1 sera nécessairement suivi par un nombre qui suit 1 dans l'une des douze premières colonnes. (Vous me suivez ?)
Donc il sera impossible de trouver un ordre totalement différent dans les colonnes au-delà de la douzième.
Pour ce qui est de la présentation du résultat, on peut parfaitement procéder comme pierrejean pour mettre un peu de désordre.
Enfin, sur la question de la création du tableau initial, on peut, si l'on y tient absolument, l'engendrer par une procédure.
Code:
Function testR()
Dim oListe, oDat(0 To 11, 0 To 11) As Integer, i As Integer, j As Integer, x As Integer
   oListe = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
   For i = 11 To 0 Step -1 [COLOR="SeaGreen"][B]'Mélange les éléments de la liste[/B][/COLOR]
      x = Int(Rnd() * (i + 1))
      j = oListe(x)
      oListe(x) = oListe(i)
      oListe(i) = j
   Next i
   For i = 0 To 11 [COLOR="SeaGreen"][B]'Crée un carré latin[/B][/COLOR]
      x = -1
      For j = 0 To 11
         x = (x + i + 1) Mod 12 + (x + i > 11)
         oDat(i, j) = oListe(x)
      Next j
   Next i
   testR = oDat [COLOR="SeaGreen"][B]'Renvoie le carré latin[/B][/COLOR]
End Function
Pour la mise en œuvre, voir le classeur joint.​
ROGER2327
 

Pièces jointes

Dernière édition:
Re : série aléatoire carré latin

Re

Puis-je me permettre ,cher ROGER , de remarquer que votre fonction n'est pas totalement aléatoire
Pour vous en convaincre faites le test suivant :
Ouvrez votre fichier
Faites quelques "tirages" et notez quelques valeurs de chaque
Fermez le fichier sans enregistrer
Rouvrez le et refaites le même nombre de "tirages"
verifiez que vous trouvez alors les mêmes valeurs

Dans ma macro j'ai introduit le Randomize qui pallie cet inconvenient
Néanmoins votre oeuvre est nettement plus pro que ce que j'ai commis
 
Re : série aléatoire carré latin

Bonjour à tous

En général, il faut penser à mettre

Code:
Randomize

avant tout tirage aléatoire avec Excel (Voir Trouver les couleurs sous ma signature).
 
Re : série aléatoire carré latin

Re...
Vous avez raison, pierrejean, MJ13.
Remarquez que, avec ou sans Randomize, mes tirages sont tout sauf aléatoires : le résultat est toujours un carré avec symétrie diagonale (haut-gauche, bas-droite). En réalité, le carré produit est toujours le même : celui que j'ai écrit sans programmation hier (c'est plus rapide). Le fait de remplacer un nombre par un autre, ou, comme dans le classeur ci-joint (avec Randomize), les chiffres par des lettres n'introduit aucun hasard. On en donne tout au plus l'illusion aux observateurs inattentifs.​
Bonne soirée.
ROGER2327
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…