
Tengo una lista de mis (279) DVD en una hoja de cálculo de OpenOffice (versión 3.3.0) en mi computadora portátil con Windows 7 y quiero crear una fórmula para elegir al azar una película para ver (para ocasiones en las que no puedo recuperar mi mente). Esto funciona:
=RANDBETWEEN(1;279)
Pero todo lo que me da es un número que luego tengo que desplazarme hacia arriba y hacia abajo para verificar y también tiene el número total de DVD "codificados". Quiero mostrar el nombre de la película (que se encuentra en la columna A) de modo que si, por ejemplo, el número fuera 277, aparezca el nombre de la película, en este caso 'X-Men 2'. Supuse que simplemente agregaría la letra de la columna al frente de esta manera:
=A(RANDBETWEEN(1;279))
funcionaría pero arroja un error: #NOMBRE?
Entonces, ¿cómo puedo...?
- Haz que muestre el nombre de la película.
- ¿Detectar automáticamente el número superior a medida que agrego nuevos DVD para no tener que codificarlo en la fórmula?
- ¿Cómo puedo hacer para que simplemente haga clic en la celda para regenerar un nuevo número aleatorio? (es decir, no es necesario volver a calcular manualmente presionando Shift+Ctrl+F9)
Gracias.
Respuesta1
Para devolver el valor de la columna A, filaR, puedes usar
=INDIRECT("A"&
R)
Para contar el número de valores en la columna A, puede utilizar
=COUNTA(A1:A65536)
Entonces, para tu caso, podrías usar
=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))
Es posible que pueda crear un botón de macro que vuelva a calcular por usted. No sé lo suficiente sobre el lenguaje de macros de OpenOffice.org Calc para brindar más ayuda.
Respuesta2
No estoy lo suficientemente familiarizado con los aspectos internos de OpenOffice para ayudarlo con su tercera solicitud, aparte de decir que simplemente F9 funciona para mí, sin necesidad de cambios ni control. En cuanto a los otros dos, sin embargo:
=INDIRECT(ADDRESS(RANDBETWEEN(1,MATCH("*",$A$1:$A$50000,-1)),1))
Reemplace 50000
con algo más grande si tiene o cree que tendrá más de 50000 DVD, y reemplace 1
en la ADDRESS()
función si está en una columna distinta a A
.
Respuesta3
- Pon la fórmula de la respuesta de Bavi_H en la celda
B1
(=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))
) - Haz que el ancho y el alto sean
B1
bonitos y grandes. - Formato
B1
con una fuente atractiva y de gran tamaño, elegida para que los títulos de películas largos sigan cabiendo - Seleccione cualquier celda en la columna
A
y seleccione el elemento del menúFormat > Column > Hide
- Seleccione el
Tools > Macros > Record Macros
elemento del menú - Presione F9 (o Ctrl-Shift-F9)
- Haga clic en el
Stop Recording
botón - En lo
Basic Macros Dialog
que aparece, escriba un nombre como "actualizar" en elMacro name
campo, seleccione la hoja de cálculo en elSave macro in
cuadro, haga clicSave
e ingrese un nombre de módulo como "películas", haga clicOK
- Seleccione el elemento del menú
View > Toolbars > Form Controls
- En esa barra de herramientas, asegúrese de que el
Design Mode
botón esté activado - Presione el
Form Design
botón para hacer visible la barra de herramientas de Diseño de formulario - Dentro de la
Form Design
barra de herramientas, apaga elOpen in Design Mode
botón - En la
Form Controls
barra de herramientas, haga clic en elLabel Field
botón - Arrastre el cursor desde la esquina superior izquierda de la celda B1 hasta su esquina inferior derecha para crear un campo de etiqueta del mismo tamaño que la celda.
- Haga clic derecho en la celda/etiqueta y seleccione el
Control...
elemento en el menú contextual - Seleccione la
General
pestaña y luego elimine el texto delLabel
campo. - Seleccione la
Events
pestaña, haga clic en el...
botón - En el
Assign Action
cuadro de diálogo, haga clic en elMacro...
botón - En el
Macro Selector
cuadro de diálogo, expanda las entradas debajo de su hoja de cálculo en elLibrary
cuadro hasta que vea el nombre del módulo que usó anteriormente (por ejemplo, "películas") y haga clic en él. - En el
Macro name
cuadro, seleccione la macro que creó anteriormente (por ejemplo, "actualizar") - Haga clic
OK
, haga clicOK
y luego cierre elProperties
cuadro haciendo clic en elX
botón en la esquina superior derecha - En la
Form Controls
barra de herramientas, desactivaDesign Mode
- Ahora, cuando haces clic en la celda,
B1
el nombre de la película que se muestra allí debería cambiar. - Cierra las barras de herramientas si quieres.
- Antes de guardar la hoja de cálculo, puede ingresar
Tools > Options > OpenOffice.org Calc > View
y desactivarWindow:
Column Headers and Rows
,Horizontal Scroll Bars
y para obtener una apariencia muy limpia (es posible que deba volver a activarlos la próxima vez que cree una nueva hoja de cálculo en blanco)Vertical Scroll Bars
.Sheet tabs
- Guarde su hoja de cálculo
- ???
- Ganancia
Respuesta4
Para hacerlo más fácil, numera los DVD en la columna A y pon los nombres de los DVD en la columna B (puedes usar la fórmula A2 = A1 + 1
para numerar si quieres hacerlo aún más fácil).
Supongamos que n = el número de filas encima de donde comienzan los DVD, por ejemplo, si tiene etiquetas de columna.
=INDEX(B:B, RANDBETWEEN(1, MAX(A:A)) + n, 1)