Всем привет, меня зовут Андрей!
Как решать судоку с помощью Excel? Известно, что существует очень много видов судоку. Но решение каждого из этих видов судоку можно сделать более интересным, если привлечь к этому решению Excel.
Предлагаю: всем любителям этой увлекательной головоломки судоку создать специальный файл в Excel, который будет помогать в решении судоку. Что конкретно будет в этом файле – об этом я буду достаточно подробно рассказывать в статьях моего яндекс-дзен канала. А в этой статье – первое повествование на эту тему.
Итак, создаем файл для решения судоку. Каковы должны быть его основные особенности?
- расширение файла: «Книга Excel с поддержкой макросов»;
- рекомендуемое название файла – «Судоку_2020.xlsm».
- для выбора папки для файла рекомендуем создать несколько «вложенных» папок. Например, внутри папки «Документы» - папку «Судоку», а внутри папки «Судоку» - папку «Простые_судоку». И уже в эту папку «Простые_судоку» можно записать наш файл. Почему именно так? Всё просто – в будущем для разных типов судоку мы будем создавать и другие файлы, но их все удобно хранить именно в таком виде. Потому что названия у этих файлов будут одинаковыми, а главное отличие между ними будет в расположении, то есть в той папке, в которой будет находиться данный файл.
После того, как файл создан, можно приступить к его форматированию. Во-первых, выберем лист Excel, на котором будут происходить основные вычисления. Переименуем его, назовем его Основное судоку. Данный заголовок (ярлык) вполне допустим, при присвоении заголовков листам пробелы разрешены.
Затем изменим ширину каждого столбца. Оптимальная ширина каждого столбца – 3.
После этого можно подготовить клетки для будущего судоку – добавить название («Основное судоку», а также заголовки строк и столбцов нашего судоку следующим образом:
Столбец A (речь идет о столбце Excel) нам еще понадобится в дальнейшем, поэтому он у нас пока пустой. Как мы видим, наше «основное судоку» будет размещаться в квадрате от C3 до K11 – если мы будем смотреть на заголовки строк и столбцов Excel.
Каждый квадратик судоку мы закрасили в определенный цвет – это сделано для того, чтобы было удобно отличать один квадратик (блок) от другого. Цвета для квадратиков желательно выбирать таким образом, чтобы:
- один цвет был не похож на другой, особенно если речь идет о тех квадратиках, которые расположены рядом друг с другом;
- цвета не должны быть слишком темными, чтобы можно было хорошо видеть те цифры, что будут расположены внутри этих квадратиков.
А теперь продолжим говорить о нумерации клеток внутри судоку. Хотя ячейки Excel имеют свою нумерацию (если смотреть на заголовки строк и столбцов Excel), но в то же время мы придумали и другую нумерацию для «клеток» судоку: от А1 и до З9 (зэ девять - не путать с "тридцать девять", пишется почти одинаково... - шутка) – и здесь уже буквы не латинские, а русские. Чтобы исключить возможную путаницу из-за двойных заголовков, договоримся так: «ячейка» - это ячейка Excel с латинскими буквами в заголовках, а «клетка» - это клетка судоку с русскими буквами в заголовках.
После того, как мы раскрасили каждый из «квадратиков», или блоков, судоку, можно приступить к следующему этапу – к присвоению имен разным клеткам и их группам внутри судоку. Начнем с клеток – каждой из них будет присвоено свое имя. Левая верхняя клетка судоку будет носить имя «кле_А1», остальные имена будут присвоены по этому же принципу.
Хотя нам надо присвоить 81 имя, ничего сложного в присвоении этих имен нет. Достаточно задействовать всего лишь один макрос:
Sub Имена_основного_судоку()
For i = 3 To 11
For j = 3 To 11
Cells(i, j).Select
ActiveWorkbook.Names.Add Name:="кле_" _
& Cells(i, 2).Value & Cells(2, j).Value, _
RefersToR1C1:="='" & ActiveSheet.Name & "'!R" & i & "C" & j
Next j
Next i
End Sub
Как видно, данный макрос будет называться «Имена_основного_судоку». В именах макросов пробелов быть не должно, но их можно либо пропустить совсем, либо заменить на символ пробела, то есть нижнее подчеркивание, как и было сделано в нашем случае.
Результат работы этого макроса – за несколько секунд будут присвоены все нужные нам имена.
Затем нужно присвоить имена всем строкам, столбцам и «квадратикам» внутри основного судоку. Но прежде – договоримся о принципах нумерации. Строки будем нумеровать сверху вниз, столбцы – слева направо, блоки, или «квадратики» - с левого верхнего угла и построчно. Более подробная нумерация строк, столбцов и «квадратиков» приведена на рисунке:
Итак, с нумерацией строк, столбцов и квадратиков внутри судоку все понятно.
Чтобы присвоить имена диапазонам ячеек Excel, нужно сначала выделить весь диапазон, а затем в поле имени ввести нужное нам имя этого диапазона. Как будем присваивать имена диапазонам? Первая строка судоку будет называться «стр_1», вторая – «стр_2», и так далее. Первый столбец будет носить имя «сто_1», первый квадратик – «ква_1». Всего мы должны присвоить имена для 27 диапазонов – это 9 строк, 9 столбцов и 9 квадратиков. Зачем нужны эти имена? Чтобы было гораздо удобнее решать сами судоку, более подробно мы поговорим об этом в следующих статьях.
После присвоения имен остается еще добавить одну небольшую деталь. Поскольку мы решаем судоку 9 х 9, то внутри нашего судоку могут быть целые числа от 1 до 9. Нужно выделить все клетки судоку и с помощью команды Данные→Проверка данных→Проверка данных задать нужные нам параметры:
Вот, в принципе, и всё – основное форматирование ячеек для решения судоку завершено. А что делать дальше – об этом я расскажу в следующих статьях. Поэтому всех любителей судоку приглашаю подписаться на мой канал и ждать новых статей о том, как с помощью Excel можно быстро решать судоку и о многом другом – обо всем, что имеет отношение к Excel, математике и, конечно же, судоку!