понедельник, 27 июня 2011 г.

Успеваемость студентов

Последнее время мне начали присылать письма с различными "каверзными" вопросами. Стараюсь на них отвечать. Этот пост - ответ на вопрос

Студенты сдают экзамены. Кто то сдал все на "отлично", кто то на "хорошо", кто то на "хорошо" и "удовлетворительно". Некоторые студенты умудрились сдать сессию с диапазонам оценок по экзаменам от 2 до 5. Как сгруппировать студентов по полученным оценкам за сессию?

Чтобы вопрос был более понятен привожу таблицу с примером.

таблица с примером 1

Если перевести задачу на язык логики, нужно проанализировать оценки полученные каждым студентом и для всех возможных комбинаций сформировать уникальный код. Это можно выполнить при помощи следующей формулы



=СЦЕПИТЬ(ЕСЛИ(СЧЁТЕСЛИ(B3:I3;5)>0;5;"");ЕСЛИ(СЧЁТЕСЛИ(B3:I3;4)>0;4;"");
ЕСЛИ(СЧЁТЕСЛИ(B3:I3;3)>0;3;"");ЕСЛИ(СЧЁТЕСЛИ(B3:I3;2)>0;2;""))

Логика формулы следующая.

Фрагмент формулы возвращает "5" если в диапазоне оценок полученных студентом есть оценка "5" и пусто, если такой оценки нет.



СЧЁТЕСЛИ(B3:I3;5)>0;5;"")

Аналогично анализируется наличие других оценок от 2 до 4.

Далее с помощью функции СЦЕПИТЬ(), полученные значения сбираются уникальную в комбинацию цифр для каждой уникальной комбинации оценок. (см. столбец "код текст")

код в текстовом формате

Полученные коды можно использовать для сортировки студентов по заданному критерию.

Функция СЦЕПИТЬ() возвращает код в текстовом формате, если нужен числовой формат то можно преобразовать код в числовой формат при помощи функции ЗНАЧЕН().



=ЗНАЧЕН(СЦЕПИТЬ(ЕСЛИ(СЧЁТЕСЛИ(B3:I3;5)>0;5;"");
ЕСЛИ(СЧЁТЕСЛИ(B3:I3;4)>0;4;"");ЕСЛИ(СЧЁТЕСЛИ(B3:I3;3)>0;3;"");
ЕСЛИ(СЧЁТЕСЛИ(B3:I3;2)>0;2;"")))

код в числовом формате

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

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