Формирование кода успеваемости учащегося
Светлый
Дата: Пятница, 21.12.2018, 11:39 |
Сообщение № 1
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
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, если не будет других предложений.
Всё-таки не выдержал. Выставляю задачу в МШ. Задача и файл взяты отсюда Есть ведомость оценок учащихся. В ней значки: 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
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))
С проверкой на пустые строки 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))
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение С проверкой на пустые строки 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
А я не дожал. Выбор успеваемости (статуса) - 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 знак - "н*"
А я не дожал. Выбор успеваемости (статуса) - 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
Сообщение отредактировал 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
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. Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Решение 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
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;""))
После двухнедельного перерыва ещё помучил формулу. Получилось 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
Отлично.
Ответить
Сообщение Отлично. Автор - vikttur Дата добавления - 09.01.2019 в 18:10
bmv98rus
Дата: Суббота, 12.01.2019, 21:34 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4114
Репутация:
769
±
Замечаний:
0% ±
Excel 2013/2016
У меня был вариант первой части отличный от предложенных,Код
=LOOKUP(SUM(10^(3*IFERROR(MOD(224-CODE(C5:W5);9);-1)));10^{0;3;6;9};{"отл";"хор";"у";"ну"})
, но также 1ца замучала, :-)
У меня был вариант первой части отличный от предложенных,Код
=LOOKUP(SUM(10^(3*IFERROR(MOD(224-CODE(C5:W5);9);-1)));10^{0;3;6;9};{"отл";"хор";"у";"ну"})
, но также 1ца замучала, :-) bmv98rus
Замечательный Временно просто медведь , процентов на 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
Группа: Друзья
Ранг: Старожил
Сообщений: 1851
Репутация:
523
±
Замечаний:
0% ±
Excel 2013, 2016
Интересное решение. Всего один ОСТАТ. Позволил себе немного подправить формулу. Короче и без ошибки на пустой строке:Код
=ПРОСМОТР(СУММ(1000^ОСТАТ(225-КОДСИМВ(C5:W5&6);9));10^{0;3;6;9;12};{"";"отл";"хор";"у";"ну"})
Интересное решение. Всего один ОСТАТ. Позволил себе немного подправить формулу. Короче и без ошибки на пустой строке:Код
=ПРОСМОТР(СУММ(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