Новая виртуальная игральная кость
(описание используемых условных обозначений, а также список других публикаций канала по теме электронных таблиц, находится здесь).
06.06.2021 на сайте exceltip.ru была опубликована статья, представляющая модифицированную версию моей заметки «Имитация игральной кости». В этой статье описан новый вариант создания в среде Microsoft Excel 2016 игрального кубика, отличающийся другим способом визуализации «граней» кости. Так как упомянутый сайт посвящён работе именно с Excel, то ниже будет рассказано про реализацию этого нового способа изготовления виртуального игрального кубика при помощи LibreOffice Calc.
Хочется порекомендовать хотя бы бегло ознакомиться с содержимым указанной статьи, поскольку на неё будет опираться изложение в настоящей заметке. Также следует напомнить, что некоторые действия и операции, используемые ниже, ранее уже разъяснялись в Пособии и других заметках на канале.
Итак, создаём новую книгу и на её листе объединяем ячейки диапазона “A1:C15” при помощи кнопки «Объединить и центрировать ячейки» (см. заметку «Ищем аллитерации в стихах»):
После этого в ячейке “B17” помещаем формулу, которая будет выдавать случайное целое число от 1 до 6. Как и в случае статьи на exceltip.ru, здесь также возможны два варианта.
Вариант 1-1
Формула может быть такой (описание алгоритма её работы приведено в заметке «Имитация игральной кости»):
=INT(RAND()*6+1)
Вариант 1-2
Получить число в интервале от 1 до 6 можно иначе:
=RANDBETWEEN(1;6)
Применённая функция возвращает случайное целое из диапазона между двумя заданными ей в качестве аргументов числами.
Следует отметить, что RANDBETWEEN( ; ), как и RAND(), выдаёт новое значение каждый раз при изменении данных в листе (в том числе – при нажатии клавиши [Delete], когда выделенная ячейка является пустой).
* * *
Для визуализации граней воспользуемся специальными символами Юникода, благо что приложения LibreOffice умеют с ними работать:
⚀ ⚁ ⚂ ⚃ ⚄ ⚅
Вариант 2-1
Заполните ячейки в диапазоне “A19:A24” числами 1 до 6, в ячейках диапазона “B19:B24” поместите соответствующие знаки-грани, а в ячейке “C19” – формулу вида:
=IF(A19=B$17;B19;"")
Далее эту формулу нужно будет при помощи маркера заполнения размножить вниз, до “C24”. В результате всех этих манипуляций в одной из ячеек диапазона “C19:C24” будет отображаться символ грани кубика, соответствующий числу в “B17”, а остальные ячейки при этом будут выглядеть пустыми:
Теперь нужно сделать так, чтобы в ячейке “A1” (объединённый диапазон ячеек “A1:C15”) отображался видимый символ из диапазона “C19:C24”, для чего введём в неё формулу, для записи которой можно предложить парочку вариаций.
Подвариант 2-1a
Допустимо воспользоваться символом «амперсанд» &, работа которого в составе формулы сводится к соединению (конкатенации) строк:
=C19&C20&C21&C22&C23&C24
Подвариант 2-1b
Можно применить функцию CONCATENATE( ; ; …), которая умеет объединять несколько текстовых строк в одну:
=CONCATENATE(C19;C20;C21;C22;C23;C24)
Функции CONCATENATE( ; ; …) в Excel соответствует СЦЕПИТЬ( ; ; …), работающая аналогично.
Вариант 2-2
Формулы способны содержать в себе символы Юникода, поэтому в “A1” можно поместить следующее выражение из пяти вложенных функций IF:
=IF(B17=1;"⚀";IF(B17=2;"⚁";IF(B17=3;"⚂";IF(B17=4;"⚃";IF(B17=5;"⚄";"⚅")))))
Вне зависимости от использованных вариантов для акцента на графическом отображении «выпавшей» грани кубика в “A1” лучше установить кегль (размер шрифта) побольше, например 250 пт, после чего имитация игральной кости будет готова.
Второй кубик при необходимости создаётся копированием и вставкой диапазона ячеек, содержащих формулы (при использовании Варианта 2‑1 вставку нужно выполнять строго справа, без смещения по вертикали, поскольку этого требует синтаксис использованных формул):
Напоследок нужно упомянуть о сохранности в рабочем состоянии формул. Наряду с группировкой (Пособие, с. 19) и защитой ячеек (Пособие, с. 55) ещё одним способом избежать случайного их повреждения является сокрытие нужных строк (или столбцов), для чего следует их выделить, щёлкнуть по их заголовкам правой кнопкой мыши и в появившемся контекстном меню выбрать необходимый пункт:
Обратное действие (показ скрытого) выполняется аналогично, с предварительным выделением диапазона строк, содержащих «спрятанные».