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

Судоку и Excel (функция СМЕЩ())

В предыдущей заметке было рассмотрено использование функции ИНДЕКС() при разгадывании судоку.

В этой заметке рассмотрим использование функции

СМЕЩ(ссылка ; смещ_по_строкам; смещ_по_столбцам; высота;ширина) - возвращает ссылку на диапазон, отстоящий от ячейки или диапазона ячеек на заданное число строк и столбцов. Возвращаемая ссылка может быть отдельной ячейкой или диапазоном ячеек. Можно задавать количество возвращаемых строк и столбцов.
Схематично можно представить так:



Итак, у нас есть диапазон "A1 : I9"



Теперь, чтобы проверить присутствие числа 2 в строке 6, к примеру, запишем
=СЧЁТЕСЛИ(СМЕЩ($A$1; 6-1; 0; 1; 9); 2)

Разберем эту формулу:
  1. СМЕЩ($A$1; 6-1; 0; 1; 9) представляет из себя строку номер 6 нашей таблицы
  2. Функция СЧЁТЕСЛИ() считает количество элементов этой строки, которые равны 2

Чтобы проверить присутствие числа 2 в столбце 3, запишем
=СЧЁТЕСЛИ(СМЕЩ($A$1; 0; 3-1; 9; 1); 2)


Чтобы проверить присутствие числа в выделенном квадрате 3 * 3, которому принадлежит ячейка на пересечении строки 6 и столбца 3, пишем
=СЧЁТЕСЛИ(СМЕЩ($A$1; ОКРУГЛВНИЗ((6-1)/3;)*3; ОКРУГЛВНИЗ((3-1)/3;)*3; 3; 3); 2)

Разберем эту формулу:

  1. Функция ОКРУГЛВНИЗ((6-1)/3)*3 возвратит нам число 3
  2. Функция ОКРУГЛВНИЗ((3-1)/3;)*3 вернет нам 0
  3. Функция СМЕЩ() становится на ячейку A4 и выделяет диапазон "A4 : C6"
  4. Функция СЧЁТЕСЛИ() считает количество элементов этого диапазона, которые равны 2

Чтобы проверить можно ли число 2 нашего судоку вписать в строку 5 столбец 3, просуммируем все три верхних выражения. Если получим 0, значит можно.

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

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

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