Вопросы в электронной таблице для выбора случайного DVD

Вопросы в электронной таблице для выбора случайного DVD

У меня есть список моих (279) DVD в таблице OpenOffice (версия 3.3.0) на моем ноутбуке с Windows 7, и я хочу создать формулу для случайного выбора фильма для просмотра (для случаев, когда я не могу определиться). Это работает:

=RANDBETWEEN(1;279)

Но все, что он дает, это число, которое я должен затем прокручивать вверх и вниз, чтобы проверить, и в нем также есть общее количество DVD, "жестко закодированное". Я хочу отобразить название фильма (хранящееся в столбце A), так что если, например, число было 277, то появится название фильма, в данном случае "Люди Икс 2". Я предполагал, что просто добавлю букву столбца спереди, вот так:

=A(RANDBETWEEN(1;279))

сработало бы, но выдает ошибку: #ИМЯ?

Итак, как я могу...

  1. Сделать так, чтобы отображалось название фильма
  2. Автоматически определять верхнее число при добавлении новых DVD-дисков, чтобы мне не приходилось жестко кодировать его в формуле?
  3. Как сделать так, чтобы мне просто щелкнуть по ячейке, чтобы сгенерировать новое случайное число? (т.е. не нужно было бы пересчитывать вручную, нажимая Shift+Ctrl+F9)

Спасибо.

решение1

  1. Чтобы вернуть значение из столбца A, строкар, вы можете использовать=INDIRECT("A"&р)

  2. Чтобы подсчитать количество значений в столбце A, вы можете использовать=COUNTA(A1:A65536)

    Так что в вашем случае вы могли бы использовать=INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536)))

  3. Вы могли бы сделать кнопку макроса, которая будет пересчитывать для вас. Я недостаточно хорошо знаю макроязык OpenOffice.org Calc, чтобы предоставить больше помощи.

решение2

Я недостаточно знаком с внутренним устройством OpenOffice, чтобы помочь с вашим третьим запросом, за исключением того, что для меня работает простое нажатие F9, не требуется никаких shift или control. Что касается двух других, то:

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

Замените 50000на что-то большее, если у вас есть или вы думаете, что у вас будет более 50000 DVD, и замените 1в ADDRESS()функции, если она находится в столбце, отличном от A.

решение3

  • Поместите формулу из ответа Bavi_H в ячейку B1( =INDIRECT("A"&RANDBETWEEN(1;COUNTA(A1:A65536))))
  • Сделайте ширину и высоту B1красивыми и большими
  • Формат B1с привлекательным шрифтом большого размера, выбранным таким образом, чтобы длинные названия фильмов все равно помещались.
  • Выберите любую ячейку в столбце Aи выберите пункт меню.Format > Column > Hide
  • Выберите Tools > Macros > Record Macrosпункт меню
  • Нажмите F9 (или Ctrl-Shift-F9)
  • Нажмите на Stop Recordingкнопку
  • В Basic Macros Dialogпоявившемся окне введите в поле имя, например «обновить» Macro name, выберите в поле электронную таблицу Save macro in, щелкните Saveи введите имя модуля, например «фильмы», щелкнитеOK
  • Выберите пункт менюView > Toolbars > Form Controls
  • На этой панели инструментов убедитесь, что Design Modeкнопка включена.
  • Нажмите Form Designкнопку, чтобы сделать видимой панель инструментов «Дизайн формы».
  • На Form Designпанели инструментов отключите Open in Design Modeкнопку
  • На Form Controlsпанели инструментов нажмите на Label Fieldкнопку
  • Перетащите курсор из верхнего левого угла ячейки B1 в ее нижний правый угол, чтобы создать поле метки того же размера, что и ячейка.
  • Щелкните правой кнопкой мыши по ячейке/метке и выберите Control...пункт из контекстного меню.
  • Выберите Generalвкладку, затем удалите текст из Labelполя.
  • Выберите Eventsвкладку, нажмите на ...кнопку
  • В Assign Actionдиалоговом окне нажмите на Macro...кнопку
  • В Macro Selectorдиалоговом окне разверните записи под вашей таблицей в Libraryполе, пока не увидите имя модуля, которое вы использовали ранее (например, «фильмы»), и щелкните по нему.
  • В Macro nameполе выберите макрос, который вы создали ранее (например, «refresh»).
  • Нажмите OK, OKзатем нажмите и закройте Propertiesокно, нажав на Xкнопку в правом верхнем углу.
  • На Form Controlsпанели инструментов отключитеDesign Mode
  • Теперь при нажатии на ячейку B1отображаемое там название фильма должно измениться.
  • Закройте панели инструментов, если хотите.
  • Прежде чем сохранить электронную таблицу, вы можете отключить Tools > Options > OpenOffice.org Calc > View, Window: Column Headers and Rows, Horizontal Scroll Barsи Vertical Scroll Barsдля Sheet tabsболее аккуратного внешнего вида (вам может потребоваться включить их снова, когда вы в следующий раз создадите новую пустую электронную таблицу).
  • Сохраните вашу электронную таблицу
  • ???
  • Выгода

Выбор фильма

решение4

Чтобы упростить задачу, пронумеруйте DVD-диски в столбце A и укажите названия DVD-дисков в столбце B (вы можете использовать формулу A2 = A1 + 1для нумерации, если хотите сделать задачу еще проще).

Предположим, что n = количество строк выше того места, где начинаются DVD-диски, например, если у вас есть заголовки столбцов.

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

Связанный контент