Результаты конкурса   15 июля на сайте стартовал конкурс по поиску пин кода в файле Excel. Мероприятие имело заметный резонанс в сравнении с обычной посещаемостью сайта. И я даже получил 8 правильных ответов. Вот таблица победителей конкурса:                №    |       Победитель    |              1    |         Малинин Александр (Bozhan)    |              2    |         Некто Z    |              3    |         Михаил Чамкин (MCH)    |              4    |         Пермяков Алексей    |              5    |         Сергей (skif-f)    |              6    |         Руслан (a778pm)    |              7    |         Кищенко Иван (Ivan.kh)    |              8    |         Виктор (vikttur)    |                  
   Правильный ответ   PIN код 8911 находился в формуле ячейки JAZ333111 на втором листе книги.  
   Правильный алгоритм поиска   Безусловно, способов, рано или поздно, найти PIN код много. Я описываю самый короткий и логичный в моём понимании задачи. У вас может сложится мнение, что к указанному порядоку дёйствий тяжело прийти логическим путём, однако, всё это очень субъективно и спорить об этом было бы глупо.       После открытия книги видим Лист1 с табличкой-заданием. Первым делом надо понять, есть ли в книге ещё скрытые листы. Для этого идём в редактор VBA (по Alt+F11).   
      Убеждаемся, что есть ещё один лист с именем "_" (знак подчёркивания). Поскольку его свойство Visible установлено в xlSheetVeryHidden, то сделать его видимым можно только отсюда или программно. Меняем это свойство на xlSheetVisible.        Там же свойство EnableSelection с xlNoSelection меняем на xlNoRestrictions, в противном случае ничего выделить на листе мы не сможем. Если хотите, лист можно переименовать. Я переименовал в Лист2. Редактор VBA можно закрыть.     Переходим на Лист2. Выбираем ленту ВИД.   
           Включаем видимость сетки ячеек.     Включаем видимость заголовков строк и столбцов.     Опционально можно вернуть в границы экрана горизонтальную полосу прокрутки.     Снимаем закрепление областей.     Переходим в Файл - Параметры, на странице Дополнительно включаем показ символов структуры.   
      Это не единственный способ отобразить на экране скрытые столбцы и строки. Дело в том, что я скрывал их при помощи группировки строк и столбцов и сокрытия символов группировки. По всей видимости, попытки манипулировать видимостью строк / столбцов и приводят к подвисанию Excel. Если вывести их на экран, то подвисания исчезают.           Прежде чем вы сможете воспользоваться символами структуры, вам придётся снять защиту листа. Я расчитывал, что пароль вы угадаете, так как он соответствует имени файла (quest), либо вы можете воспользоваться рецептом отсюда.   
           Через символы структуры сделайте видимыми строки и столбцы.        Теперь мы можем исследовать содержимое листа. Воспользуемся диалоговым окном Переход (F5) - Выделить. Можно поискать текстовые константы. Однако вы найдёте лишь это, не слишком напоминающее пин код:   
              Продолжаем наши изыскания и попытаемся поискать формулы.   
      И тут же мы находим их в избытке. Диапазон IWL332408 - JFF334775 просто кишит формулами вида =ЕСЛИ(ЛОЖЬ;"";""). Раз этих формул так много и они все одинаковы, то логично предположить, что злокозненный автор пытается спрятать иголку в стоге сена. Это правильная мысль и с этого момента - мы в шаге от развязки. Тут можно попробовать много способов. Например, сбросить дурное, препятствующее просмотру форматирование ячеек, заменить ЛОЖЬ на ИСТИНУ, вставить сабтоталы...           Однако, самое простое предположить, что в формулах должны быть цифровые константы и начать их искать через Поиск (Ctrl+F). Начнём искать цифру 1 и тут же находим секретную ячейку JAZ333111, содержащую заветные 4 цифры 8911. Бинго!   
             
   Спасибо всем, кто принял участие. В скором времени (конец августа) я сделаю ещё один квест, посложнее.  |