пятница, 30 декабря 2011 г.

Уникальный идентификатор списка

Пусть у нас есть какой-либо список, к примеру фамилий, и мы хотим каждому элементу присвоить уникальный номер.

Сделать это можно следующим образом.

Первому элементу присваиваем номер 1.

Для второго и последующих составляем формулу пользуясь таким алгоритмом: если элемент встречается в списке первый раз, то присваиваем ему очередной номер, если это не первое появление, то у него идентификатор уже есть в списке выше.

Чтобы проверить первое ли это появление элемента используем комбинацию функций ЕНД(ПОИСКПОЗ()).

Если это первое появление, то ПОИСКПОЗ() вернет #Н/Д, а функция ЕНД(#Н/Д) вернет ИСТИНА и мы смело присваиваем элементу номер МАКС() среди верхних идентификаторов плюс 1.

Если это не первое появление, то ЕНД(ПОИСКПОЗ()) возвращает ЛОЖЬ и мы через функцию ВПР() находим уже имеющийся у элемента идентификатор.

В конечном итоге получаем такую формулу (для второго элемента):
=ЕСЛИ(ЕНД(ПОИСКПОЗ(C3;C$2:C2;0));МАКС(D$2:D2)+1;ВПР(C3;C$2:D2;2;ЛОЖЬ))

Дальше просто копируем эту формулу.


среда, 28 декабря 2011 г.

Месяц, квартал, полугодие

Пусть в ячейке A1 находится дата в числовом формате.

Тогда чтобы определить месяц, воспользуемся следующей формулой:
=МЕСЯЦ(A1)

Чтобы определить квартал года по дате пишем:
=ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/3;0)

Для определения полугодия:
=ОКРУГЛВВЕРХ(МЕСЯЦ(A1)/6;0)

В последних двух примерах использована функция ОКРУГЛВВЕРХ(), которая округляет число до ближайшего большего по модулю.

вторник, 27 декабря 2011 г.

Редактирование формул

При редактировании формулы в окне "присвоение имени" или в строке формул возможны 2 состояния:
режим "правки" и режим "ввод".

При режиме "ввод" нажатие клавиш влево, вправо и прочее вызывает перемещение по активному листу книги, а при режиме "правка" - перемещение по самой строке формул.

Особенность функции СУММ

При использовании функции СУММ() пустые ячейки, логические значения, тексты и значения ошибок в массиве или ссылке игнорируются, а учитываются только числа.

Благодаря этому получаем следующее:


Во втором случае получаем ошибку.

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

Функция МОДА

Функция МОДА() возвращает наиболее часто встречающееся числовое значение указанного диапазона. Если несколько значений встречается наиболее часто и одинаковое количество раз, то вернется первое из этих значений. Не числовые значения игнорируются.

Удобнее эту функцию использовать для проверки диапазона на уникальность значений.

Т.е. у нас есть диапазон, в котором каждое число должно встречаться ровно один раз. Тогда функция МОДА(диапазон) вернет ошибку #Н/Д если значения уникальны.

В Excel 2010 функция МОДА() оставлена для совместимости с предыдущими версиями и добавлены две новые функции МОДА.НСК(), возвращающая массив наиболее часто встречающихся значений, и МОДА.ОДН(), возвращающая одно наиболее часто встречающееся число.

Если диапазон (к примеру  A1:A20) содержит не только числовые данные, то можно воспользоваться такой конструкцией:
=ИНДЕКС(A1:A20;ПОИСКПОЗ(МАКС(СЧЁТЕСЛИ(A1:A20;A1:A20));СЧЁТЕСЛИ(A1:A20;A1:A20);0))

Эта формула использует массивы, поэтому после ввода жмем CTRL+SHIFT+ENTER.