Всем привет, меня зовут Андрей!
Продолжаем решать судоку с помощью Excel.
В прошлой статье мы выяснили, как узнать, в каких ячейках судоку могут находиться кандидаты – единички, то есть цифры 1.
Напомню, что у нас было следующее «исходное», или «основное» судоку:
Вначале мы заменили пустые ячейки судоку двойными звездочками:
Затем мы для каждой клетки Excel сложили число единиц в строке, столбце и квадратике, в которых находится данная ячейка. Вот что получилось:
Как и видно из заголовка данной таблицы, в ней содержится сумма единиц. Если эта сумма единиц равна нулю, то это значит, что в аналогичной клетке судоку, если эта клетка пуста, может быть единица, то есть единица может быть кандидатом для данной клетки судоку.
Хотя в прошлой статье мы и показали это квадрат (под заголовком «единиц (стр+сто+ква)», в прошлой статье мы не указали те формулы, с помощью которых можно получить этот квадрат. В этой статье мы приводим эти формулы.
Первая формула – для ячейки AA3:
=СЧЁТЕСЛИ(стр_1;один)+СЧЁТЕСЛИ(сто_1;один)+СЧЁТЕСЛИ(ква_1;один)
Если эту формулу скопировать на весь диапазон ячеек от AA3 до AI11, то мы поначалу получим одинаковый результат для всех ячеек. Поэтому после копирования нужно будет изменить эту формулу для разных ячеек следующим образом:
- выделить строку 2, и с помощью меню вставки и замены (Ctrl+f) заменить «стр_1» на «стр_2»;
- аналогичным образом произвести замену для всех других строк;
- выделить столбец 2, и с помощью меню вставки и замены (Ctrl+f) заменить «сто_1» на «сто_2»;
- аналогичным образом произвести замену для всех других столбцов;
- выделить квадратик 2, и с помощью меню вставки и замены (Ctrl+f) заменить «ква_1» на «ква_2»;
- аналогичным образом произвести замену для всех других квадратиков.
Если мы все сделали правильно, то формула для каждой клетки судоку будет уникальной. Проверить формулу можно, выделив любую из ячеек внутри того диапазона, который нас интересует.
Также в конце прошлой статьи мы показали, как будет выглядеть квадрат, состоящий из тех клеток судоку, в которых может быть кандидат-единичка. Вот этот квадрат:
Но для этого квадрата (Кандидаты 1) мы тоже не приводили формулы в прошлой статье (она и так была достаточно длинной). Поэтому мы и приводим в данной статье все недостающие формулы.
Введем в ячейку AM3 следующую формулу:
=ЕСЛИ(И(O3="**";AA3=0);один;п)
Для столбца «Кандидаты 1» одной этой формулы вполне достаточно. Если ее скопировать, а затем вставить на весь диапазон ячеек этого квадрата, то изменится сама формула, поскольку она не содержит абсолютных ссылок.
В переводе «на русский язык» это будет означать: если:
- левая верхняя клетка судоку пустая;
- если в первой строке, в первом столбце и в первом квадратике нашего основного судоку нет ни одной единицы (их сумма равна нулю) [почему речь идет о первой строке, первом столбце и первом квадратике – потому, что ячейки AM3, AA3 и O3 представляют собой левую верхнюю часть судоку, а эта левая верхняя ячейка принадлежит к первой строке, первому столбцу и первому квадратику – об их нумерации я говорил в одной из своих прошлых статей] – то кандидатом для этой ячейки может быть единица;
- если же будет найдена хотя бы одна единица в той же строке, или в том же столбце, или в том же квадратике, где и находится эта ячейка с формулой – в нашем примере это левая верхняя клетка судоку, или же клетка судоку уже заполнена какой-то цифрой – то тогда единица не может быть кандидатом для данной клетки судоку, а в таблице «Кандидаты 1» нужно будет оставить пустоту.
В данной формуле «один» - это и есть единица. О присвоении специальных имен в данной книге я говорил в прошлой статье.
Но продолжим рассказывать о формулах. Чуть правее таблицы «Кандидаты 1» - подсчет числа единиц внутри этого квадрата. Формулы подсчета просты (для AV3):
=СЧЁТ(AM3:AU3)
Скопировав эту формулу на другие ячейки от AV4 до AV11, получим нужные нам значения.
Аналогичным образом происходит подсчет суммарных значения под квадратом «Кандидаты 1»
Формула для AM12:
=СЧЁТ(AM3:AM11)
При копировании этой формулы от AN12 до AU12 мы получим подсчет единиц в каждом из столбцов.
С тринадцатой строкой все сложнее, там идет подсчет единиц в каждом из квадратиков, поэтому формулы будут существенно отличаться. В любом случае, внутри функции «СЧЁТ» будет находиться диапазон ячеек, который нам нужен. Для первого квадратика это будут ячейки AM3:AO5, для второго – AP3:AR5, ну и так далее.
Что дальше можно делать с этими единицами? Об этом я расскажу в следующей статье.
А на этом пока всё, ждите на моем канале новые истории про то, как с помощью Excel решать судоку разных видов!