понедельник, 20 декабря 2010 г.

Судоку и Excel (функция ИНДЕКС())

Судоку – математическая игра-головоломка.
Классический вариант японского судоку – это квадрат 9 * 9 клеток, в котором необходимо расставить цифры от 1 до 9 так, чтобы в каждой строке, в каждом столбце и в каждом выделенном квадрате 3 * 3 все цифры были различны.

О том, как решать судоку можно прочитать, например, здесь.

Здесь мы рассмотрим пример использования некоторых функций Excel, помогающих решить судоку.

ИНДЕКС(массив;номер_строки;номер_столбца) - возвращает значение элемента таблицы или массива, заданного номером строки и номером столбца.
  • если используется один аргумент, номер_строки или номер_столбца, то функция вернет массив значений (строку или столбец соответственно)
  • если используются оба аргумента номер_строки и номер_столбца, то функция возвращает значение, находящееся в ячейке на пересечении указанных строки и столбца.
Схематично можно представить так




СЧЁТЕСЛИ(диапазон;критерий) - подсчитывает количество ячеек внутри диапазона, удовлетворяющих заданному критерию.


Разместим исходные данные в ячейках "A1 : I9"



Теперь мы хотим, зная номер строки и столбца какой-то ячейки нашего судоку, определить какие в этой ячейке могут быть числа.

Для начала присвоим диапазону "A1 : I9" имя "СУДОКУ".

Для примера определим количество вхождений числа 2 в строку 6
=СЧЁТЕСЛИ(ИНДЕКС(Судоку;6;);2)

Работает эта формула таким образом:
  1. ИНДЕКС(Судоку;5;) представляет из себя строку номер 6 нашей таблицы 
  2. Функция СЧЕТЕСЛИ() считает количество элементов этой строки, которые равны 2

Чтобы проверить присутствие числа 2 в столбце 3, к примеру, запишем
=СЧЁТЕСЛИ(ИНДЕКС(Судоку;;3);2)


А чтобы проверить и строку и столбец просто сложим два выражения
=СЧЁТЕСЛИ(ИНДЕКС(Судоку;6;);2)+СЧЁТЕСЛИ(ИНДЕКС(Судоку;;3);2)

Об использовании функции СМЕЩ() читайте в следующей заметке.

Похожие по тематике посты - еще почитать:

Комментариев нет:

Отправить комментарий