Это, вероятно, будет проще с VBA, но это можно сделать с помощью формул. Я работаю в LibreOffice Calc, у которого максимальное количество символов в формуле меньше, поэтому мне нужно было использовать вспомогательные столбцы. Но вы можете объединить это в одну формулу, если хотите. Я построил это максимум из шести кубиков, но если вы будете следовать шаблону в столбцах помощника, вы можете расширить его до необходимого количества.
Ячейка A1 - это то место, куда идет ваш стартовый номер. Обычно это будет 1
за каждый кубик. Я начал с 123456
чтобы проиллюстрировать логику. Столбцы с C по H являются вспомогательными столбцами, по одному на каждую из шести кубиков. Эти клетки вычисляют следующее значение для каждого. Столбец А объединяет значения в одну строку. Введите формулы для строки 2, а затем скопируйте строку вниз, чтобы предварительно заполнить столько, сколько вам нужно (ненужные ячейки будут пустыми, и вы можете скрыть столбцы C:H, если хотите).
Формула в А2:
=IF(A1="","",C2&D2&E2&F2&G2&H2)
Тест на бланк - это то, что скрывает ненужные ячейки. Если вы хотите превратить все в одну формулу, замените формулы в C2:H2 ссылками.
Формулы в C2:H2 следующие:
C2: = IF(VALUE(LEFT(A1,1))=6,"", VALUE(LEFT(A1,1)) + OR(VALUE(MID(A1,2,1))=6))
D2: = IF(VALUE(MID(A1,2,1))=6,C2,VALUE(MID(A1,2,1))+IF(LEN(A1)>2,VALUE(MID(A1,3,1))=6,1))
E2: =IF(LEN(A1)<3,"",IF(VALUE(MID(A1,3,1))=6,D2,VALUE(MID(A1,3,1))+IF(LEN(A1)>3,VALUE(MID(A1,4,1))=6,1)))
F2: =IF(LEN(A1)<4,"",IF(VALUE(MID(A1,4,1))=6,E2,VALUE(MID(A1,4,1))+IF(LEN(A1)>4,VALUE(MID(A1,5,1))=6,1)))
G2: =IF(LEN(A1)<5,"",IF(VALUE(MID(A1,5,1))=6,F2,VALUE(MID(A1,5,1))+IF(LEN(A1)>5,VALUE(MID(A1,6,1))=6,1)))
H2: =IF(LEN(A1)<6,"",IF(VALUE(MID(A1,6,1))=6,G2,VALUE(MID(A1,6,1))+1))
Я добавил пробелы для выравнивания шаблонов формул, чтобы было легче увидеть логику; Вы можете удалить их. У вас есть минимум две кости, поэтому первые две формулы не нужно проверять, присутствуют ли они. Когда первый кубик достигает 6
, всем остальным может быть только 6
, так что это последний ряд. Функция OR в C2 вызвана тем, что LO Calc отказался от вычисления логического выражения; ИЛИ форсирует это (и ничего не ранит). Последний потенциальный кубик не должен переносить значение из следующего, поэтому его формула немного короче.
Обратите внимание, что столбцы с D по H содержат ссылку на предыдущий столбец. Если вы хотите объединить это в одну формулу, замените ссылку C2 в D2 формулой C2. Затем сделайте то же самое для каждого последующего столбца (формула будет расти при этом).
Вот вывод для двух костей: