
Eu tenho uma lista dos meus (279) DVDs em uma planilha do OpenOffice (versão 3.3.0) no meu laptop com Windows 7 e quero criar uma fórmula para escolher aleatoriamente um filme para assistir (para ocasiões em que não consigo inventar meu mente). Isso funciona:
=RANDBETWEEN(1;279)
Mas tudo o que ele fornece é um número que eu tenho que rolar para cima e para baixo para verificar e também tem o número total de DVDs 'codificados'. Quero exibir o nome do filme (que está na coluna A) para que se, por exemplo, o número fosse 277, aparecesse o nome do filme, neste caso 'X-Men 2'. Presumi que bastaria adicionar a letra da coluna na frente assim:
=A(RANDBETWEEN(1;279))
funcionaria, mas gera um erro: #NAME?
Então, como posso...
- Faça com que exiba o nome do filme
- Detectar automaticamente o número superior à medida que adiciono novos DVDs, para não precisar codificá-lo na fórmula?
- Como posso fazer com que apenas clique na célula para gerar novamente um novo número aleatório? (ou seja, não é necessário recalcular manualmente pressionando Shift+Ctrl+F9)
Obrigado.
Responder1
Para retornar o valor da coluna A, linhaR, você pode usar
=INDIRECT("A"&
R)
Para contar o número de valores na coluna A, você pode usar
=COUNTA(A1:A65536)
Então, para o seu caso, você poderia usar
=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))
Você pode criar um botão macro que recalculará para você. Não sei o suficiente sobre a linguagem macro do OpenOffice.org Calc para fornecer mais ajuda.
Responder2
Não estou familiarizado o suficiente com os componentes internos do OpenOffice para ajudar com sua terceira solicitação, a não ser para dizer que simplesmente F9 funciona para mim, sem necessidade de mudança ou controle. Quanto aos outros dois, porém:
=INDIRECT(ADDRESS(RANDBETWEEN(1,MATCH("*",$A$1:$A$50000,-1)),1))
Substitua o 50000
por algo maior se você tiver ou achar que terá mais de 50.000 DVDs, e substitua o 1
na ADDRESS()
função se estiver em uma coluna diferente de A
.
Responder3
- Coloque a fórmula da resposta de Bavi_H na célula
B1
(=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))
) - Faça com que a largura e a altura sejam
B1
boas e grandes - Formato
B1
com uma fonte atraente em tamanho grande, escolhido para que títulos longos de filmes ainda caibam - Selecione qualquer célula na coluna
A
e selecione o item de menuFormat > Column > Hide
- Selecione o
Tools > Macros > Record Macros
item do menu - Pressione F9 (ou Ctrl-Shift-F9)
- Clique no
Stop Recording
botão - No
Basic Macros Dialog
que aparece, digite um nome como "atualizar" noMacro name
campo, selecione a planilha naSave macro in
caixa, cliqueSave
e insira um nome de módulo como "filmes", clique emOK
- Selecione o item do menu
View > Toolbars > Form Controls
- Nessa barra de ferramentas, certifique-se de que o
Design Mode
botão esteja ativado - Pressione o
Form Design
botão para tornar a barra de ferramentas Form Design visível - Na
Form Design
barra de ferramentas, desligue oOpen in Design Mode
botão - Na
Form Controls
barra de ferramentas, clique noLabel Field
botão - Arraste o cursor do canto superior esquerdo da célula B1 para o canto inferior direito para criar um campo de rótulo do mesmo tamanho da célula
- Clique com o botão direito na célula/rótulo e selecione o
Control...
item no menu de contexto - Selecione a
General
guia e exclua o texto doLabel
campo - Selecione a
Events
aba, clique no...
botão - Na
Assign Action
caixa de diálogo, clique noMacro...
botão - Na
Macro Selector
caixa de diálogo, expanda as entradas da sua planilha naLibrary
caixa até ver o nome do módulo que você usou anteriormente (por exemplo, "filmes") e clique nele - Na
Macro name
caixa, selecione a macro que você criou anteriormente (por exemplo, "atualizar") - Clique em
OK
, cliqueOK
e feche aProperties
caixa clicando noX
botão no canto superior direito - Na
Form Controls
barra de ferramentas, desligueDesign Mode
- Agora, quando você clica na célula,
B1
o nome do filme exibido deve mudar - Feche as barras de ferramentas se desejar
- Antes de salvar a planilha, você pode desativar
Tools > Options > OpenOffice.org Calc > View
e desativarWindow:
Column Headers and Rows
, e para obter uma aparência bem limpa (talvez seja necessário ativá-los novamente na próxima vezHorizontal Scroll Bars
que criar uma nova planilha em branco)Vertical Scroll Bars
Sheet tabs
- Salve sua planilha
- ???
- Lucro
Responder4
Para facilitar, numere os DVDs na coluna A e coloque os nomes dos DVDs na coluna B (você pode usar a fórmula A2 = A1 + 1
para numerar se quiser facilitar ainda mais).
Suponha que n = o número de linhas acima de onde os DVDs começam, como se você tivesse rótulos de coluna.
=INDEX(B:B, RANDBETWEEN(1, MAX(A:A)) + n, 1)