Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Формирование кода успеваемости учащегося - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » Формирование кода успеваемости учащегося
Формирование кода успеваемости учащегося
Понравилось?
Светлый Дата: Пятница, 21.12.2018, 11:39 | Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Всё-таки не выдержал. Выставляю задачу в МШ.
Задача и файл взяты отсюда
Есть ведомость оценок учащихся. В ней значки: 2, 3, 4, 5, "н\а" =2, "а" =5.
Надо сформировать коды:
отл - только 5 или а
хор - только 4, 5 или а
у - есть 3, но нет 2 и н\а
ну - есть 2 и/или н\а
Если наинизшая оценка единственная (можно подтянуть), то к коду добавляется 1: ну1, у1, хор1.
В файле формула 300 символов. В вышеупомянутой теме есть мои решения до 162 символов.
Я нашёл решение с учётом пустых строк 139 символов.
Очень мне интересно, можно ли найти решение ещё короче. Может быть, построенное на других принципах и функциях.
Константы "отл", "хор", "у", "ну", "н\а", "а" входят в формулу.
Вскрываться предлагаю через две недели 07.01.2019, если не будет других предложений.
К сообщению приложен файл: kody.xlsx (28.6 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеВсё-таки не выдержал. Выставляю задачу в МШ.
Задача и файл взяты отсюда
Есть ведомость оценок учащихся. В ней значки: 2, 3, 4, 5, "н\а" =2, "а" =5.
Надо сформировать коды:
отл - только 5 или а
хор - только 4, 5 или а
у - есть 3, но нет 2 и н\а
ну - есть 2 и/или н\а
Если наинизшая оценка единственная (можно подтянуть), то к коду добавляется 1: ну1, у1, хор1.
В файле формула 300 символов. В вышеупомянутой теме есть мои решения до 162 символов.
Я нашёл решение с учётом пустых строк 139 символов.
Очень мне интересно, можно ли найти решение ещё короче. Может быть, построенное на других принципах и функциях.
Константы "отл", "хор", "у", "ну", "н\а", "а" входят в формулу.
Вскрываться предлагаю через две недели 07.01.2019, если не будет других предложений.

Автор - Светлый
Дата добавления - 21.12.2018 в 11:39
Светлый Дата: Понедельник, 07.01.2019, 11:13 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
С проверкой на пустые строки 139 символов:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н\а"});{1:1})-1)+2;;{0:0:"хор":"у":"ну"}&1;{"":"отл":"хор":"у":"ну"}))
Без проверки 129 символов:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{5;"а":4;9:3;9:2;"н\а"});{1:1})-1)+2;;{0:"хор":"у":"ну"}&1;{"отл":"хор":"у":"ну"}))
С дополнительными ячейками 93 символа:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;X$34:Y$38);{1:1})-1)+2;;Z$34:Z$38&1;Z$34:Z$38))
К сообщению приложен файл: kody_otv.xlsx (33.6 Kb)


Программировать проще, чем писать стихи.
 
Ответить
СообщениеС проверкой на пустые строки 139 символов:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н\а"});{1:1})-1)+2;;{0:0:"хор":"у":"ну"}&1;{"":"отл":"хор":"у":"ну"}))
Без проверки 129 символов:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{5;"а":4;9:3;9:2;"н\а"});{1:1})-1)+2;;{0:"хор":"у":"ну"}&1;{"отл":"хор":"у":"ну"}))
С дополнительными ячейками 93 символа:
Код
=ПРОСМОТР("я";ВЫБОР(ЗНАК(МУМНОЖ(СЧЁТЕСЛИ(C5:W5;X$34:Y$38);{1:1})-1)+2;;Z$34:Z$38&1;Z$34:Z$38))

Автор - Светлый
Дата добавления - 07.01.2019 в 11:13
vikttur Дата: Понедельник, 07.01.2019, 12:34 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

А я не дожал. Выбор успеваемости (статуса) - 99 знаков, а вот доп. единичка все портит - 168
Код
=ВЫБОР(ПРОСМОТР(9;СЧЁТЕСЛИ(C5:W5;{"";"а";5;4;3;2;"н*"})^0*{5;4;4;3;2;1;1});"ну";"у";"хор";"отл";"")   
&ЕСЛИ(ПРАВБ(СУММ(СЧЁТЕСЛИ(C5:W5;{4;3;2;"н*"})/10^{2;3;4;4}))="1";1;"")

Если скомбинировать решения, получится короче короткой. Уже вижу -1 знак - "н*"


Сообщение отредактировал vikttur - Понедельник, 07.01.2019, 12:45
 
Ответить
СообщениеА я не дожал. Выбор успеваемости (статуса) - 99 знаков, а вот доп. единичка все портит - 168
Код
=ВЫБОР(ПРОСМОТР(9;СЧЁТЕСЛИ(C5:W5;{"";"а";5;4;3;2;"н*"})^0*{5;4;4;3;2;1;1});"ну";"у";"хор";"отл";"")   
&ЕСЛИ(ПРАВБ(СУММ(СЧЁТЕСЛИ(C5:W5;{4;3;2;"н*"})/10^{2;3;4;4}))="1";1;"")

Если скомбинировать решения, получится короче короткой. Уже вижу -1 знак - "н*"

Автор - vikttur
Дата добавления - 07.01.2019 в 12:34
Светлый Дата: Среда, 09.01.2019, 06:01 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Решение vikttur натолкнуло ещё на один вариант:
Код
=ВЫБОР(ДЛСТР(СУММ(СЧЁТЕСЛИ(C5:W5;{"а";5;4;3;2;"н*"})/10^{1;1;2;3;4;4}));;;"отл";"хор";"у";"ну")&ЕСЛИ(ПРАВБ(СУММ(СЧЁТЕСЛИ(C5:W5;{4;3;2;"н*"})/10^{2;3;4;4}))="1";1;"")
Но тоже считает неправильно, если количество одинаковых оценок больше 9.


Программировать проще, чем писать стихи.
 
Ответить
СообщениеРешение vikttur натолкнуло ещё на один вариант:
Код
=ВЫБОР(ДЛСТР(СУММ(СЧЁТЕСЛИ(C5:W5;{"а";5;4;3;2;"н*"})/10^{1;1;2;3;4;4}));;;"отл";"хор";"у";"ну")&ЕСЛИ(ПРАВБ(СУММ(СЧЁТЕСЛИ(C5:W5;{4;3;2;"н*"})/10^{2;3;4;4}))="1";1;"")
Но тоже считает неправильно, если количество одинаковых оценок больше 9.

Автор - Светлый
Дата добавления - 09.01.2019 в 06:01
Светлый Дата: Среда, 09.01.2019, 13:29 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
После двухнедельного перерыва ещё помучил формулу. Получилось 113 символов:
Код
=ПРОСМОТР("я";{"":"отл":"хор":"у":"ну"}&ВЫБОР(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н*"});{1:1})+1;"";1))
Или даже 112:
Код
=ПРОСМОТР("я";{"":"отл":"хор":"у":"ну"}&ЕСЛИ(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н*"});{1:1})=1;1;""))
*С дополнительными ячейками 78 символов:
Код
=ПРОСМОТР("я";Z$34:Z$38&ЕСЛИ(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;X$34:Y$38);{1:1})=1;1;""))


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Среда, 09.01.2019, 13:45
 
Ответить
СообщениеПосле двухнедельного перерыва ещё помучил формулу. Получилось 113 символов:
Код
=ПРОСМОТР("я";{"":"отл":"хор":"у":"ну"}&ВЫБОР(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н*"});{1:1})+1;"";1))
Или даже 112:
Код
=ПРОСМОТР("я";{"":"отл":"хор":"у":"ну"}&ЕСЛИ(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;{0;"":5;"а":4;9:3;9:2;"н*"});{1:1})=1;1;""))
*С дополнительными ячейками 78 символов:
Код
=ПРОСМОТР("я";Z$34:Z$38&ЕСЛИ(1/МУМНОЖ(СЧЁТЕСЛИ(C5:W5;X$34:Y$38);{1:1})=1;1;""))

Автор - Светлый
Дата добавления - 09.01.2019 в 13:29
vikttur Дата: Среда, 09.01.2019, 18:10 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Отлично.
 
Ответить
СообщениеОтлично.

Автор - vikttur
Дата добавления - 09.01.2019 в 18:10
bmv98rus Дата: Суббота, 12.01.2019, 21:34 | Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4106
Репутация: 768 ±
Замечаний: 0% ±

Excel 2013/2016
У меня был вариант первой части отличный от предложенных,
Код
=LOOKUP(SUM(10^(3*IFERROR(MOD(224-CODE(C5:W5);9);-1)));10^{0;3;6;9};{"отл";"хор";"у";"ну"})
, но также 1ца замучала, :-)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеУ меня был вариант первой части отличный от предложенных,
Код
=LOOKUP(SUM(10^(3*IFERROR(MOD(224-CODE(C5:W5);9);-1)));10^{0;3;6;9};{"отл";"хор";"у";"ну"})
, но также 1ца замучала, :-)

Автор - bmv98rus
Дата добавления - 12.01.2019 в 21:34
Светлый Дата: Воскресенье, 13.01.2019, 01:04 | Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
вариант первой части
Интересное решение. Всего один ОСТАТ. Позволил себе немного подправить формулу. Короче и без ошибки на пустой строке:
Код
=ПРОСМОТР(СУММ(1000^ОСТАТ(225-КОДСИМВ(C5:W5&6);9));10^{0;3;6;9;12};{"";"отл";"хор";"у";"ну"})


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Воскресенье, 13.01.2019, 01:04
 
Ответить
Сообщение
вариант первой части
Интересное решение. Всего один ОСТАТ. Позволил себе немного подправить формулу. Короче и без ошибки на пустой строке:
Код
=ПРОСМОТР(СУММ(1000^ОСТАТ(225-КОДСИМВ(C5:W5&6);9));10^{0;3;6;9;12};{"";"отл";"хор";"у";"ну"})

Автор - Светлый
Дата добавления - 13.01.2019 в 01:04
Мир MS Excel » Работа и общение » Мозговой штурм » Формирование кода успеваемости учащегося
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!