Excel : Sélection aléatoire de cellules sauf cellules vides
Wombat30
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
Wombat30 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Wombat30 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Et rebonjour tout le monde.
Toujours dans le cadre de mon générateur de personnages, je souhaite le faire sur 2 feuilles : la 1ère qui affiche les résultats et la seconde qui contient tous les tableaux (noms, pays, sexes, traits de personnalités...) répartis en colonnes.
Pour le moment, je m'intéresse à la sélection aléatoire des cellules avec cette fonction :
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;6);ALEA.ENTRE.BORNES(1;1))) et elle marche très bien.
Son point négatif est que si je rajoute des cellules à un tableau, je dois retourner modifier la formule pour mettre à jour le nombre de cellules qu'elle doit utiliser. Et s'il y a des cellules vides dans le tableau, elle les prends en compte et les affiches.
Bref : elle prend en compte les cellules vides.
Comment je peux faire pour qu'elle les exclues?
PS : je suis sur Excel 2010, en version française.
Merci d'avance pour votre aide :)
Toujours dans le cadre de mon générateur de personnages, je souhaite le faire sur 2 feuilles : la 1ère qui affiche les résultats et la seconde qui contient tous les tableaux (noms, pays, sexes, traits de personnalités...) répartis en colonnes.
Pour le moment, je m'intéresse à la sélection aléatoire des cellules avec cette fonction :
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;6);ALEA.ENTRE.BORNES(1;1))) et elle marche très bien.
Son point négatif est que si je rajoute des cellules à un tableau, je dois retourner modifier la formule pour mettre à jour le nombre de cellules qu'elle doit utiliser. Et s'il y a des cellules vides dans le tableau, elle les prends en compte et les affiches.
Bref : elle prend en compte les cellules vides.
Comment je peux faire pour qu'elle les exclues?
PS : je suis sur Excel 2010, en version française.
Merci d'avance pour votre aide :)
A voir également:
- Barrer une cellule vide excel
- Excel cellule couleur si condition texte - Guide
- Liste déroulante excel - Guide
- Proteger cellule excel - Guide
- Comment supprimer une page vide sur word - Guide
- Aller à la ligne dans une cellule excel - Guide
4 réponses
Bonjour,
Plusieurs possibilités, en fonction du contenu de tes cellules de la colonne A
si tes valeurs sont toutes numérique
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;EQUIV(9^9;A:A;1));ALEA.ENTRE.BORNES(1;1)))
par contre si tes cellules sont texte ou mixte il vaudrait mieux utiliser cette formule matricielle qu'il faudra confirmer en cliquant sur les 3 touches du clavier Ctrl, Shift et Entrée, si tu fais bien la formule se placera entre {}
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(A1:A1000));LIGNE(A1:A1000))));ALEA.ENTRE.BORNES(1;1)))
Plusieurs possibilités, en fonction du contenu de tes cellules de la colonne A
si tes valeurs sont toutes numérique
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;EQUIV(9^9;A:A;1));ALEA.ENTRE.BORNES(1;1)))
par contre si tes cellules sont texte ou mixte il vaudrait mieux utiliser cette formule matricielle qu'il faudra confirmer en cliquant sur les 3 touches du clavier Ctrl, Shift et Entrée, si tu fais bien la formule se placera entre {}
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(A1:A1000));LIGNE(A1:A1000))));ALEA.ENTRE.BORNES(1;1)))
Salut Mike-31.
En effet, y a que du texte dans mes cellules.
Ta fonction marche plutôt bien mais me renvoie un 0 (case vide) de temps en temps.
A quoi sert le "A" devant le numéro de ligne?
Pour un exemple, je bosse sur la colonne U (21), si je change les A par des U, la formule prend plus de 0 ou plante.
En effet, y a que du texte dans mes cellules.
Ta fonction marche plutôt bien mais me renvoie un 0 (case vide) de temps en temps.
A quoi sert le "A" devant le numéro de ligne?
Pour un exemple, je bosse sur la colonne U (21), si je change les A par des U, la formule prend plus de 0 ou plante.
Re,
le A comme tu dis est l'index colonne donc A1:A1000 correspond à la première colonne
dans ton cas si tes valeurs sont en colonne U, la formule devient
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(U1:U1000));LIGNE(U1:U1000))));ALEA.ENTRE.BORNES(1;1)))
si ta formule renvoie 0 c'est qu'elle n'est pas déclarée en matricielle, clic sur la cellule contenant ta première formule, elle va apparaître dans la barre des formules juste au dessus des entêtes de colonnes
clic dans la barre des formules n'importe ou sur la formule et clic en même temps sur les 3 touches du clavier Ctrl, Shift et Entrée
la formule se placera entre {}
comme ceci
{=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(U1:U1000));LIGNE(U1:U1000))));ALEA.ENTRE.BORNES(1;1)))}
le A comme tu dis est l'index colonne donc A1:A1000 correspond à la première colonne
dans ton cas si tes valeurs sont en colonne U, la formule devient
=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(U1:U1000));LIGNE(U1:U1000))));ALEA.ENTRE.BORNES(1;1)))
si ta formule renvoie 0 c'est qu'elle n'est pas déclarée en matricielle, clic sur la cellule contenant ta première formule, elle va apparaître dans la barre des formules juste au dessus des entêtes de colonnes
clic dans la barre des formules n'importe ou sur la formule et clic en même temps sur les 3 touches du clavier Ctrl, Shift et Entrée
la formule se placera entre {}
comme ceci
{=INDIRECT(ADRESSE(ALEA.ENTRE.BORNES(2;MAX(SI(NON(ESTVIDE(U1:U1000));LIGNE(U1:U1000))));ALEA.ENTRE.BORNES(1;1)))}
Testée sous open office calc, cette formule marche mais avec la colonne A, pas la U (normalement, le dernier point : nommé ALEA.ENTRE.BORNES(1;1) dans mon exemple définit la colonne).
Si je remplace le 1;1 par 21;21 et/ou les U par des A, la formule renvoit soit des 0 soit une erreur.
Comment la régler pour qu'elle touche la colonne de mon choix?
Si je remplace le 1;1 par 21;21 et/ou les U par des A, la formule renvoit soit des 0 soit une erreur.
Comment la régler pour qu'elle touche la colonne de mon choix?