Questions de forum de feuille de calcul pour choisir un DVD aléatoire

J'ai une liste de mes DVD (279) dans une feuille de calcul OpenOffice (version 3.3.0) sur mon ordinateur portable Windows 7 et je veux créer une formule pour choisir au hasard un film à regarder (pour les occasions où je ne peux pas faire ma taille esprit). Cela marche:

=RANDBETWEEN(1;279) 

Mais tout ce qu'il donne est un nombre que je dois faire défiler vers le haut et vers le bas pour vérifier et il a aussi le nombre total de DVD 'hard coded'. Je souhaite afficher le nom du film (tenu dans la colonne A) de sorte que si, par exemple, le nombre était 277, le nom du film apparaîtrait, dans ce cas «X-Men 2». J'ai supposé que l'ajout de la lettre de colonne à l'avant comme ceci:

 =A(RANDBETWEEN(1;279)) 

Fonctionnerait mais il lève une erreur: # NOM?

Alors, comment puis-je …

  1. Faites-en afficher le nom du film
  2. Détectez automatiquement le numéro supérieur lorsque j'ajoute de nouveaux DVD, donc je n'ai pas besoin de le coder dans la formule?
  3. Comment puis-je le faire de sorte que je viens de cliquer sur la cellule pour régénérer un nouveau nombre aléatoire? (C'est-à-dire ne pas recalculer manuellement en appuyant sur Maj + Ctrl + F9)

Merci.

  1. Pour renvoyer la valeur de la colonne A, ligne R , vous pouvez utiliser =INDIRECT("A"& R )

  2. Pour compter le nombre de valeurs dans la colonne A, vous pouvez utiliser =COUNTA(A1:A65536)

    Donc, pour votre cas, vous pouvez utiliser =INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))

  3. Vous pourriez peut-être créer un bouton de macro qui va être recalculé pour vous. Je ne connais pas assez le langage macro de OpenOffice.org Calc pour y donner plus d'aide.

Je ne suis pas assez familier avec les internes d'OpenOffice pour vous aider avec votre troisième demande, sauf pour dire que tout simplement F9 fonctionne pour moi, aucun changement ou contrôle nécessaire. Quant aux deux autres, cependant:

 =INDIRECT(ADDRESS(RANDBETWEEN(1,MATCH("*",$A$1:$A$50000,-1)),1)) 

Remplacez le 50000 par quelque chose de plus grand si vous avez ou pense que vous aurez plus de 50000 DVD, et remplacer le 1 dans la fonction ADDRESS() si elle se trouve dans une colonne autre que A

  • Mettez la formule à partir de la réponse de Bavi_H dans la cellule B1 ( =INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536))) )
  • Améliorez la largeur et la hauteur de B1
  • Format B1 avec une police attrayante dans une grande taille, choisie afin que les longs titres de films s'adaptent toujours
  • Sélectionnez une cellule dans la colonne A et sélectionnez l'élément de menu Format > Column > Hide
  • Sélectionnez l' Tools > Macros > Record Macros
  • Appuyez sur F9 (ou Ctrl-Shift-F9)
  • Cliquez sur le bouton Stop Recording
  • Dans la Basic Macros Dialog qui apparaît, entrez un nom tel que "actualiser" dans le champ Macro name la Macro name , sélectionnez la feuille de calcul dans la zone Save macro in , cliquez sur Save et entrez un nom de module tel que "films", cliquez sur OK
  • Sélectionnez l'élément de menu View > Toolbars > Form Controls
  • Dans cette barre d'outils, assurez-vous que le bouton Design Mode est activé
  • Appuyez sur le bouton Form Design pour rendre la barre d'outils Création de formulaire visible
  • Dans la barre d'outils Form Design , désactivez le bouton Open in Design Mode
  • Dans la barre d'outils Form Controls , cliquez sur le bouton Label Field
  • Faites glisser le curseur du coin supérieur gauche de la cellule B1 vers son coin inférieur droit pour créer un champ d'étiquette de la même taille que la cellule
  • Faites un clic droit sur la cellule / étiquette et sélectionnez l'élément Control... dans le menu contextuel
  • Sélectionnez l'onglet General , puis supprimez le texte dans le champ Label
  • Sélectionnez l'onglet Events , cliquez sur le bouton ...
  • Dans la boîte de dialogue Assign Action , cliquez sur le bouton Macro...
  • Dans la boîte de dialogue Macro Selector , développez les entrées sous votre feuille de calcul dans la zone Library jusqu'à ce que vous voyiez le nom du module que vous avez utilisé plus tôt (p. Ex. "Films") et cliquez dessus
  • Dans la zone Macro name de la macro, sélectionnez la macro que vous avez créée plus tôt (p. Ex. "Rafraîchir")
  • Cliquez sur OK , cliquez sur OK puis fermez la boîte Properties en cliquant sur le bouton X dans son coin supérieur droit
  • Dans la barre d'outils Form Controls , désactivez le Design Mode
  • Maintenant, lorsque vous cliquez sur la cellule B1 le nom du film affiché devrait changer
  • Fermez les barres d'outils si vous le souhaitez
  • Avant d'enregistrer la feuille de calcul, vous pouvez accéder aux Tools > Options > OpenOffice.org Calc > View et éteindre la Window: Column Headers and Rows , Horizontal Scroll Bars , Vertical Scroll Bars et Sheet tabs pour une apparence très propre (vous pourriez avoir besoin Pour revenir sur la prochaine fois que vous créez une nouvelle feuille de calcul vierge)
  • Enregistrez votre tableur
  • ???
  • Profit

Movie Chooser

Pour simplifier, numérotez les DVD dans la colonne A et mettez les noms des DVD dans la colonne B (vous pouvez utiliser la formule A2 = A1 + 1 au numéro si vous voulez le rendre encore plus facile).

Supposons n = le nombre de lignes ci-dessus où les DVD commencent, comme si vous avez des étiquettes de colonne.

 =INDEX(B:B, RANDBETWEEN(1, MAX(A:A)) + n, 1)