July 4, 2020

Генератор символов и кодов в Google Таблицах. Функция СИМВОЛ

Итак, вы хотите генерировать случайный символ из определенного набора или, что интереснее, целый код — например, что-то в духе BT-7392 или NS-3659. Я использую это для создания учебных примеров для курсов и задачек. Но это не так важно - главное, что мы рассмотрим несколько функций, которые позволяют эту задачу легко решить.

Функция СИМВОЛ

У каждого символа есть свой код. Функция СИМВОЛ / CHAR с единственным аргументом - этим самым кодом - возвращает символ.

Например, СИМВОЛ(10) - это переход на следующую строку.

Чтобы узнать код символа, можно воспользоваться обратной функцией КОДСИМВ / CODE, ее аргумент - символ, а возвращает она его код.

Чтобы посмотреть, какие символы бывают и с какими кодами, проще всего сформировать последовательность чисел от 1 до какого-нибудь большого числа и для каждого из них посмотреть на результат функции СИМВОЛ:

Одной формулой массива можно сделать это так, чтобы не возиться с протягиванием:

=ArrayFormula(СИМВОЛ(SEQUENCE(10000;1;1;1)))

Подробнее про функцию SEQUENCE, которая здесь возвращает 10000 строк с числами от 1 до 10000, можно прочитать здесь.

Теперь у вас 10000 символов, можно посмотреть, что есть и использовать в своих таблицах, например, для условного форматирования (выполнение / невыполнение плана и т.д.)

Каких только символов нет. Можно сформировать и больше 10000, но дальше начнутся иероглифы.

Генерация случайного символа

Итак, вы уже знаете, как выяснить номера кодов. Допустим, вам нужны прописные латинские буквы от A до Z - в нашем сформированном столбце мы видим, что это символы от 65 до 90.

Подставим в функцию СИМВОЛ другую функцию - СЛУЧМЕЖДУ / RANDBETWEEN, генерирующую число в заданном диапазоне. А если вам нужно несколько случайных букв, соедините их амперсандом &:

=СИМВОЛ(СЛУЧМЕЖДУ(65;90))&СИМВОЛ(СЛУЧМЕЖДУ(65;90))

Если мы хотим добавить к этому фиксированный символ, например, дефис - все просто, добавляем его с помощью того же амперсанда, тут даже СИМВОЛ не нужна, просто заключите нужный символ в кавычки. Ну а чтобы добавить к этому добру еще и цифры, достаточно будет СЛУЧМЕЖДУ(1;9) - она будет возвращать случайное число от 1 до 9, то есть случайную цифру:

=СИМВОЛ(СЛУЧМЕЖДУ(65;90))&СИМВОЛ(СЛУЧМЕЖДУ(65;90))&"-"&СЛУЧМЕЖДУ(1;9)&СЛУЧМЕЖДУ(1;9)
Этот монстр возвращает две случайных буквы, дефис и две случайных цифры

А если хотите сразу два кода в одной ячейке, да на разных строках - повторите всю конструкцию, а между повторами поставьте СИМВОЛ(10). Эта формула есть в файле-примере, как и все остальное.

P.S. Обратите внимание, что при любом пересчете таблицы (после изменений, от ввода данных до нажатия Del на пустой ячейке) функции, генерирующие случайные числа, будут обновляться, а значит - и наши коды тоже. Если нужно их зафиксировать, сформируйте нужное вам количество и сохраните их как значения (с помощью специальной вставки, горячих клавиш Ctrl+Shift+V или скрипта). Скрипт, сохраняющий данные как значения, мы добавили к таблице с примером. Копируйте ее себе на диск, изучайте.