3

У меня есть электронная таблица, созданная в OpenOffice (V3.3.0 в Windows 7 32-разрядная версия), которую я использую в качестве базы данных моей коллекции DVD. После того, как я задаю вопрос в SuperUser, у меня есть его, чтобы он мог вывести случайный заголовок из моей коллекции, когда я не могу решить, что смотреть. Он использует следующую формулу:

=INDIRECT("A"&RANDBETWEEN(2;COUNTA(A1:A1048576)))

Это выбирает случайное значение между началом и концом моего DVD и отображает имя. Это прекрасно работает, но теперь я хочу расширить его, чтобы сделать его немного более сложным.

Каждый раз, когда я смотрю DVD, я отмечаю дату в столбце таблицы. Теперь я хочу, чтобы случайный выбор выбрал тот, который я не видел, скажем, в последние шесть месяцев.

Я могу расширить это в будущем, например, чтобы выбрать случайную, которую я не видел за последние 6 месяцев И это комедия (у меня также есть колонка жанра фильма).

Любые указания о том, как это сделать, будут с благодарностью приняты.

2 ответа2

2

Теперь вам нужно добавить еще один столбец, содержащий дату вашего последнего просмотра указанного фильма, а также жанр. Я не знаю, как это автоматизировать, но вы можете продолжать пересчитывать формулу, пока не будет найден случайный выбор.

Что вам нужно сделать, это добавить несколько предложений IF чтобы увидеть, соответствует ли выбранный фильм жанру, который вы хотите, и если последняя дата воспроизведения превышает определенную дату с этого момента.

Для этого я бы ввел свои критерии в несколько ячеек и сохранил случайное местоположение ячейки в другой. Затем вы можете сделать что-то вроде:

=IF((Last Watched - Today) > 6 Months, IF(Genre = Selected Genre, TITLE))

Чтобы получить эти значения, вы можете использовать функцию OFFSET чтобы сместить ваш INDIRECT на определенное количество строк / столбцов. По сути, вы бы заменили значения, которые я поместил в эту формулу, на новое значение OFFSET . Единственное предостережение в отношении этого метода заключается в том, что вы не гарантируете получение заголовка каждый раз - возможно, вам придется продолжать пересчитывать случайную ячейку, пока она не найдет ячейку, соответствующую вашим критериям (я не знаю, как это автоматизировать. макушка без макроса).


Просто для более подробной информации, допустим, вы поместили случайную ячейку, содержащую заголовок DVD, в ячейку A1 . Вы можете заменить TITLE в предыдущей формуле на INDIRECT(A1) . Если жанр находится в столбце рядом с ним, замените его на OFFSET(INDIRECT(A1), 0, 1) . Затем вы можете обновить только случайное значение в ячейке A1, и оно будет автоматически соответствовать вашим критериям. Кроме того, вы можете установить свои критерии в ряде статических ячеек, чтобы вы могли обновлять их также на лету.

0
  1. Во-первых, отфильтруйте список DVD-дисков в меньший список "Давно не смотрел", используя те же условия, что и в "Дыхании": что-то вроде =FILTER(A1:A1048576, (Last Watched - Today) > 6 Months, (Genre = Selected Genre, TITLE))
  2. Затем примените существующую функцию случайного селектора - =INDIRECT("B"&RANDBETWEEN(2;COUNTA(B1:B1048576))) , измененную на столбец B (новый отфильтрованный список), - чтобы найти только один фильм для просмотра.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .