Fonction RANDARRAY d'Excel - moyen rapide de générer des nombres aléatoires

  • Partage Ça
Michael Brown

Ce tutoriel montre comment générer des nombres aléatoires, trier une liste de manière aléatoire, obtenir une sélection aléatoire et attribuer des données de manière aléatoire à des groupes, le tout avec une nouvelle fonction de tableau dynamique - RANDARRAY.

Comme vous le savez probablement, Microsoft Excel dispose déjà de deux fonctions de randomisation - RAND et RANDBETWEEN. Quel est l'intérêt d'en introduire une autre ? En un mot, parce qu'elle est beaucoup plus puissante et peut remplacer les deux anciennes fonctions. Outre la définition de vos propres valeurs maximales et minimales, elle vous permet de spécifier le nombre de lignes et de colonnes à remplir et de déterminer si vous souhaitez produire des décimales aléatoires ou des nombres entiers.Utilisé avec d'autres fonctions, RANDARRAY peut même mélanger les données et choisir un échantillon aléatoire.

    Fonction RANDARRAY d'Excel

    La fonction RANDARRAY d'Excel renvoie un tableau de nombres aléatoires compris entre deux nombres que vous spécifiez.

    Il s'agit de l'une des six nouvelles fonctions de tableau dynamique introduites dans Microsoft Excel 365. Le résultat est un tableau dynamique qui déborde automatiquement sur le nombre spécifié de lignes et de colonnes.

    La fonction a la syntaxe suivante. Veuillez noter que tous les arguments sont facultatifs :

    RANDARRAY([lignes], [colonnes], [min], [max], [nombre_entier])

    Où :

    Rangs (facultatif) - définit le nombre de lignes à remplir. S'il est omis, la valeur par défaut est de 1 ligne.

    Colonnes (facultatif) - définit le nombre de colonnes à remplir. S'il est omis, la valeur par défaut est de 1 colonne.

    Min (facultatif) - le plus petit nombre aléatoire à produire. S'il n'est pas spécifié, la valeur 0 par défaut est utilisée.

    Max (facultatif) - le plus grand nombre aléatoire à créer. S'il n'est pas spécifié, la valeur par défaut de 1 est utilisée.

    Nombre entier (facultatif) - détermine le type de valeurs à renvoyer :

    • VRAI - nombres entiers
    • FALSE ou omis (par défaut) - nombres décimaux

    Fonction RANDARRAY - points à retenir

    Pour générer efficacement des nombres aléatoires dans vos feuilles de calcul Excel, il y a 6 points importants à prendre en compte :

    • La fonction RANDARRAY est uniquement disponible dans Excel pour Microsoft 365 et Excel 2021. Dans Excel 2019, Excel 2016 et les versions antérieures, la fonction RANDARRAY n'est pas disponible.
    • Si le tableau renvoyé par RANDARRAY est le résultat final (affiché dans une cellule et non transmis à une autre fonction), Excel crée automatiquement une plage de déversement dynamique et la remplit avec les nombres aléatoires. Assurez-vous donc d'avoir suffisamment de cellules vides en bas et/ou à droite de la cellule où vous entrez la formule, sinon une erreur #SPILL se produira.
    • Si aucun des arguments n'est spécifié, une formule RANDARRAY() renvoie un seul nombre décimal compris entre 0 et 1.
    • Si le rangées ou/et colonnes Les arguments sont représentés par des nombres décimaux, ils seront tronqués au nombre entier avant la virgule (par exemple, 5,9 sera traité comme 5).
    • Si le min ou max n'est pas défini, RANDARRAY prend par défaut les valeurs 0 et 1, respectivement.
    • Comme les autres fonctions aléatoires, Excel RANDARRAY est volatile Pour éviter que cela ne se produise, vous pouvez remplacer les formules par des valeurs en utilisant la fonction d'Excel Collage spécial > ; Valeurs fonction.

    Formule Excel de base RANDARRAY

    Et maintenant, laissez-moi vous montrer une formule Excel aléatoire dans sa forme la plus simple.

    Supposons que vous souhaitiez remplir une plage composée de 5 lignes et 3 colonnes avec des nombres aléatoires quelconques. Pour ce faire, configurez les deux premiers arguments de la manière suivante :

    • Rangs est 5 puisque nous voulons les résultats en 5 rangées.
    • Colonnes est 3 car nous voulons les résultats en 3 colonnes.

    Nous laissons tous les autres arguments à leurs valeurs par défaut et obtenons la formule suivante :

    =TABLEAU ALÉATOIRE(5, 3)

    Saisissez-le dans la cellule supérieure gauche de la plage de destination (A2 dans notre cas), appuyez sur la touche Entrée et vous obtiendrez les résultats répartis sur le nombre de lignes et de colonnes spécifié.

    Comme vous pouvez le voir dans la capture d'écran ci-dessus, cette formule RANDARRAY de base remplit la plage avec des nombres décimaux aléatoires de 0 à 1. Si vous préférez obtenir des nombres entiers dans une plage spécifique, configurez les trois derniers arguments comme indiqué dans les exemples suivants.

    Comment randomiser dans Excel - Exemples de formules RANDARRAY

    Vous trouverez ci-dessous quelques formules avancées qui couvrent des scénarios de randomisation typiques dans Excel.

    Générer des nombres aléatoires entre deux nombres

    Pour créer une liste de nombres aléatoires dans une plage spécifique, fournissez la valeur minimale dans le 3ème argument et le nombre maximal dans le 4ème argument. Selon que vous avez besoin de nombres entiers ou décimaux, définissez le 5ème argument à TRUE ou FALSE, respectivement.

    À titre d'exemple, nous allons remplir une plage de 6 lignes et 4 colonnes avec des nombres entiers aléatoires compris entre 1 et 100. Pour cela, nous définissons les arguments suivants de la fonction RANDARRAY :

    • Rangs est 6 puisque nous voulons les résultats en 6 rangées.
    • Colonnes est 4 car nous voulons les résultats en 4 colonnes.
    • Min est 1, ce qui est la valeur minimale que nous souhaitons avoir.
    • Max est de 100, ce qui correspond à la valeur maximale à générer.
    • Nombre entier est VRAI car nous avons besoin d'entiers.

    En rassemblant les arguments, on obtient cette formule :

    =RANDARRAY(6, 4, 1, 100, TRUE)

    Et cela donne le résultat suivant :

    Générer une date aléatoire entre deux dates

    Vous recherchez un générateur de dates aléatoires dans Excel ? La fonction RANDARRAY est une solution simple ! Il vous suffit de saisir la date la plus ancienne (date 1) et la date la plus récente (date 2) dans des cellules prédéfinies, puis de faire référence à ces cellules dans votre formule :

    RANDARRAY(rows, columns, date1 , date2 , TRUE)

    Pour cet exemple, nous avons créé une liste de dates aléatoires entre les dates de D1 et D2 avec cette formule :

    =RANDARRAY(10, 1, D1, D2, TRUE)

    Bien entendu, rien ne vous empêche de fournir les dates min et max directement dans la formule si vous le souhaitez. Veillez simplement à les saisir dans un format compréhensible par Excel :

    =RANDARRAY(10, 1, "1/1/2020", "12/31/2020", TRUE)

    Pour éviter les erreurs, vous pouvez utiliser la fonction DATE pour saisir les dates :

    =RANDARRAY(10, 1, DATE(2020,1,1), DATE(2020,12,31), TRUE)

    Remarque : Excel stocke en interne les dates sous forme de numéros de série, de sorte que les résultats de la formule seront très probablement affichés sous forme de chiffres. Pour afficher les résultats correctement, appliquez l'option Date à toutes les cellules de la plage de déversement.

    Générer des jours ouvrables aléatoires dans Excel

    Pour produire des jours ouvrables aléatoires, intégrez la fonction RANDARRAY dans le premier argument de WORKDAY comme suit :

    WORKDAY(RANDARRAY(lignes, colonnes, date1 , date2 , TRUE), 1)

    RANDARRAY créera un tableau de dates de début aléatoires, auquel la fonction WORKDAY ajoutera un jour ouvrable et garantira que toutes les dates renvoyées sont des jours ouvrables.

    Avec la date 1 en D1 et la date 2 en D2, voici la formule pour produire une liste de 10 jours de semaine :

    =JOUR OUVRABLE(RANDARRAY(10, 1, D1, D2, TRUE), 1)

    Comme pour l'exemple précédent, n'oubliez pas de formater la plage de déversement comme suit Date pour que les résultats s'affichent correctement.

    Comment générer des nombres aléatoires sans doublons

    Bien que l'Excel moderne offre 6 nouvelles fonctions de tableau dynamique, il n'y a malheureusement toujours pas de fonction intégrée pour renvoyer des nombres aléatoires sans doublons.

    Pour construire votre propre générateur de nombres aléatoires unique dans Excel, vous devrez enchaîner plusieurs fonctions comme indiqué ci-dessous.

    Entiers aléatoires :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , VRAI)), SÉQUENCE( n ))

    Décimales aléatoires :

    INDEX(UNIQUE(RANDARRAY( n *2, 1, min , max , FAUX)), SÉQUENCE( n ))

    Où :

    • N est le nombre de valeurs que vous souhaitez générer.
    • Min est la valeur la plus faible.
    • Max est la valeur la plus élevée.

    Par exemple, pour produire 10 nombres entiers aléatoires sans doublons, utilisez cette formule :

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, TRUE)), SÉQUENCE(10))

    Pour créer une liste de 10 nombres décimaux aléatoires Si vous avez besoin d'un autre argument, changez TRUE en FALSE dans le dernier argument de la fonction RANDARRAY ou omettez simplement cet argument :

    =INDEX(UNIQUE(RANDARRAY(20, 1, 1, 100, FALSE)), SÉQUENCE(10))

    Conseils et notes :

    • L'explication détaillée de la formule se trouve dans Comment générer des nombres aléatoires dans Excel sans doublons.
    • Dans Excel 2019 et les versions antérieures, la fonction RANDARRAY n'est pas disponible. Veuillez plutôt consulter cette solution.

    Comment faire un tri aléatoire dans Excel

    Pour mélanger les données dans Excel, utilisez RANDARRAY pour le tableau "trier par" ( par_réseau La fonction ROWS compte le nombre de lignes de votre ensemble de données, ce qui indique le nombre de nombres aléatoires à générer :

    SORTBY( données , RANDARRAY(ROWS( données )))

    Avec cette approche, vous pouvez trier aléatoirement une liste dans Excel, qu'il contienne des chiffres, des dates ou des entrées de texte :

    =SORTBY(A2:A13, RANDARRAY(ROWS(A2:A13)))

    En outre, vous pouvez également mélanger les rangs sans mélanger vos données :

    =SORTBY(A2:B10, RANDARRAY(ROWS(A2:B10)))

    Comment obtenir une sélection aléatoire dans Excel

    Pour extraire un échantillon aléatoire d'une liste, voici une formule générique à utiliser :

    INDEX( données , RANDARRAY( n , 1, 1, ROWS( données ), TRUE))

    n est le nombre d'entrées aléatoires que vous souhaitez extraire.

    Par exemple, pour sélectionner de manière aléatoire 3 noms dans la liste A2:A10, utilisez cette formule :

    =INDEX(A2:A10, RANDARRAY(3, 1, 1, ROWS(A2:A10), TRUE))

    Vous pouvez également saisir la taille d'échantillon souhaitée dans une cellule, par exemple C2, et faire référence à cette cellule :

    =INDEX(A2:A10, RANDARRAY(C2, 1, 1, ROWS(A2:A10), TRUE))

    Comment fonctionne cette formule :

    Au cœur de cette formule se trouve la fonction RANDARRAY qui crée un tableau aléatoire d'entiers, la valeur en C2 définissant le nombre de valeurs à générer. Le nombre minimal est codé en dur (1) et le nombre maximal correspond au nombre de lignes de votre ensemble de données, qui est renvoyé par la fonction ROWS.

    Le tableau d'entiers aléatoires va directement dans la section numéro de rang de la fonction INDEX, spécifiant les positions des éléments à retourner. Pour l'exemple de la capture d'écran ci-dessus, c'est :

    =INDEX(A2:A10, {8;7;4})

    Conseil : lorsque vous prélevez un grand échantillon dans un petit ensemble de données, il y a de fortes chances que votre sélection aléatoire contienne plusieurs occurrences de la même entrée, car il n'est pas garanti que RANDARRAY ne produise que des nombres uniques. Pour éviter que cela ne se produise, utilisez une version sans doublon de cette formule.

    Comment sélectionner des lignes aléatoires dans Excel

    Si votre ensemble de données contient plus d'une colonne, spécifiez alors les colonnes à inclure dans l'échantillon. Pour cela, fournissez une constante de tableau pour le dernier argument ( numéro de colonne ) de la fonction INDEX, comme ceci :

    =INDEX(A2:B10, RANDARRAY(D2, 1, 1, ROWS(A2:A10), TRUE), {1,2})

    Où A2:B10 est la source des données et D2 est la taille de l'échantillon.

    Par conséquent, notre sélection aléatoire contiendra deux colonnes de données :

    Conseil : comme dans l'exemple précédent, cette formule peut renvoyer des enregistrements en double. Pour vous assurer que votre échantillon ne contient pas de doublons, utilisez une approche légèrement différente décrite dans Comment sélectionner des lignes aléatoires sans doublons.

    Comment attribuer des nombres et du texte de manière aléatoire dans Excel ?

    Pour effectuer une affectation aléatoire dans Excel, utilisez RANDBETWEEN avec la fonction CHOOSE de cette manière :

    CHOISIR(RANDARRAY(ROWS( données ), 1, 1, n , TRUE), valeur1 , valeur2 ,...)

    Où :

    • Données est une plage de vos données source à laquelle vous souhaitez attribuer des valeurs aléatoires.
    • N est le nombre total de valeurs à attribuer.
    • Valeur1 , valeur2 , valeur3 etc. sont les valeurs à attribuer de manière aléatoire.

    Par exemple, pour attribuer des numéros de 1 à 3 aux participants de A2:A13, utilisez cette formule :

    =CHOIX(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), 1, 2, 3)

    Pour plus de commodité, vous pouvez saisir les valeurs à affecter dans des cellules distinctes, par exemple de D2 à D4, et faire référence à ces cellules dans votre formule (individuellement, et non en tant que plage) :

    =CHOISIR(RANDARRAY(ROWS(A2:A13), 1, 1, 3, TRUE), D2, D3, D4)

    Ainsi, vous pourrez attribuer de manière aléatoire n'importe quels chiffres, lettres, textes, dates et heures avec la même formule :

    Remarque : la fonction RANDARRAY continue de générer de nouvelles valeurs aléatoires à chaque modification de la feuille de calcul, ce qui entraîne l'attribution de nouvelles valeurs à chaque fois. Pour "corriger" les valeurs attribuées, utilisez les fonctions Collage spécial et Valeurs pour remplacer les formules par leurs valeurs calculées.

    Comment fonctionne cette formule

    Au cœur de cette solution se trouve à nouveau la fonction RANDARRAY qui produit un tableau d'entiers aléatoires basés sur les nombres min et max que vous spécifiez (de 1 à 3 dans notre cas). La fonction ROWS indique à RANDARRAY le nombre de nombres aléatoires à générer. Ce tableau est envoyé à la fonction index_num de la fonction CHOIX, par exemple :

    =CHOISIR({1;2;1;2;3;2;3;3;1;3;1;2}, D2, D3, D4)

    Index_numéro est l'argument qui détermine la position des valeurs à retourner. Et comme les positions sont aléatoires, les valeurs de D2:D4 sont choisies dans un ordre aléatoire. Oui, c'est aussi simple que cela :)

    Comment répartir les données de manière aléatoire dans les groupes

    Lorsque votre tâche consiste à répartir les participants de manière aléatoire dans des groupes, la formule ci-dessus peut ne pas convenir car elle ne permet pas de contrôler le nombre de fois qu'un groupe donné est choisi. Par exemple, 5 personnes peuvent être affectées au groupe A et seulement 2 personnes au groupe C. Pour effectuer une répartition aléatoire, procédez comme suit de manière égale pour que chaque groupe ait le même nombre de participants, vous avez besoin d'une solution différente.

    Tout d'abord, vous générez une liste de numéros aléatoires en utilisant cette formule :

    =RANDARRAY(ROWS(A2:A13))

    Où A2:A13 sont vos données sources.

    Et ensuite, vous attribuez des groupes (ou n'importe quoi d'autre) en utilisant cette formule générique :

    INDEX( valeurs_à_assigner , ROUNDUP(RANK( premier_nombre_aléatoire , gamme de nombres aléatoires )/ n , 0))

    n est la taille du groupe, c'est-à-dire le nombre de fois que chaque valeur doit être attribuée.

    Par exemple, pour répartir de manière aléatoire des personnes dans les groupes énumérés en E2:E5, de sorte que chaque groupe compte 3 participants, utilisez cette formule :

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    Veuillez noter qu'il s'agit d'une formule ordinaire (pas d'une formule de tableau dynamique !), vous devez donc verrouiller les plages avec des références absolues comme dans la formule ci-dessus.

    Saisissez votre formule dans la cellule supérieure (C2 dans notre cas), puis faites-la glisser vers le bas dans autant de cellules que nécessaire. Le résultat ressemblera à ceci :

    N'oubliez pas que la fonction RANDARRAY est volatile. Pour éviter de générer de nouvelles valeurs aléatoires chaque fois que vous modifiez quelque chose dans la feuille de calcul, remplacez les formules par leurs valeurs en utilisant la fonction Collage spécial fonction.

    Comment fonctionne cette formule :

    La formule RANDARRAY de la colonne d'aide est très simple et ne nécessite guère d'explication, aussi concentrons-nous sur la formule de la colonne C.

    =INDEX($E$2:$E$5, ROUNDUP(RANK(B2,$B$2:$B$13)/3,0))

    La fonction RANK classe la valeur dans B2 par rapport au tableau de nombres aléatoires dans B2:B13. Le résultat est un nombre entre 1 et le nombre total de participants (12 dans notre cas).

    Le rang est divisé par la taille du groupe (3 dans notre exemple), et la fonction ROUNDUP arrondit le résultat à l'entier le plus proche. Le résultat de cette opération est un nombre compris entre 1 et le nombre total de groupes (4 dans cet exemple).

    Le nombre entier va à la numéro de rang de la fonction INDEX, l'obligeant à renvoyer une valeur de la ligne correspondante dans la plage E2:E5, qui représente le groupe attribué.

    La fonction RANDARRAY d'Excel ne fonctionne pas

    Lorsque votre formule RANDARRAY renvoie une erreur, ce sont les raisons les plus évidentes à vérifier :

    #SPILL erreur

    Comme pour toute autre fonction de tableau dynamique, une erreur #SPILL ! signifie le plus souvent qu'il n'y a pas assez d'espace dans la plage de déversement prévue pour afficher tous les résultats. Il suffit d'effacer toutes les cellules de cette plage, et votre formule se recalculera automatiquement. Pour plus d'informations, veuillez consulter la rubrique Erreur #SPILL ! d'Excel - causes et solutions.

    Erreur #VALEUR

    Une erreur #VALUE ! peut se produire dans ces circonstances :

    • Si un max est inférieure à une valeur min valeur.
    • Si l'un des arguments est non numérique.

    #NAME erreur

    Dans la plupart des cas, une erreur #NAME ! indique l'une des situations suivantes :

    • Le nom de la fonction est mal orthographié.
    • Cette fonction n'est pas disponible dans votre version d'Excel.

    Erreur #CALC !

    Une erreur #CALC ! se produit si le paramètre rangées ou colonnes est inférieur à 1 ou fait référence à une cellule vide.

    Voilà comment construire un générateur de nombres aléatoires dans Excel avec la nouvelle fonction RANDARRAY. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Cahier d'exercices à télécharger

    Exemples de formules RANDARRAY (fichier .xlsx)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.