Последнее время мне начали присылать письма с различными "каверзными" вопросами. Стараюсь на них отвечать. Этот пост - ответ на вопрос
Студенты сдают экзамены. Кто то сдал все на "отлично", кто то на "хорошо", кто то на "хорошо" и "удовлетворительно". Некоторые студенты умудрились сдать сессию с диапазонам оценок по экзаменам от 2 до 5. Как сгруппировать студентов по полученным оценкам за сессию?
Чтобы вопрос был более понятен привожу таблицу с примером.
Если перевести задачу на язык логики, нужно проанализировать оценки полученные каждым студентом и для всех возможных комбинаций сформировать уникальный код. Это можно выполнить при помощи следующей формулы
=СЦЕПИТЬ(ЕСЛИ(СЧЁТЕСЛИ(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;""))) |
Комментариев нет:
Отправить комментарий