Страницы: Пред. 1 2
RSS
Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул, Подсчёт количества обучаючихся на оценки 4 и 5 с помощью формул
 
Еще вариант в стиле тот же профиль только в пасхальные:)
=SUM(N(MMULT(N(N(+C3:K29)>3);{1;1;1;1;1;1;1;1;1})=9))
 
всех так захватила тема про
Цитата
обучаючихся
:D
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Еще массивный вариантКод=СУММ(--(МУМНОЖ((C3:K29>3)*ЕЧИСЛО(C3:K29);ТРАНСП(СТОЛБЕЦ(C3:K29)^0))=9))
и обычныйКод=СУММ(--(МУМНОЖ((C3:K29>3)*ЕЧИСЛО(C3:K29);{1:1:1:1:1:1:1:1:1})=9))
Пожалуйста расшифруйте каждый элемент, дело в том, что я от слова совсем не понимаю эту формулу, а в моих интересах её рассказать преподавателю, это моё практическое задание. Также ещё интересно будет ли эта формула работать для подсчёт количества неаттестованных ? Если нет, то сможете ли подправить её?
 
 
Цитата
flyymann написал:
а в моих интересах её рассказать преподавателю, это моё практическое задание.
и тут самая большая опасность, скорее всего от вас ждут COUNTIFS /СЧЕТЕСЛИМН  , а вы выдаете решение на базе матричного умножения. с построчным сложением, Мне кажется , если препод и поймет формулу, то сразу раскусит что это решение не ваше.
По вопросам из тем форума, личку не читаю.
 
(C3:K29>3)*ЕЧИСЛО(C3:K29) - Двумерный массив 27х9 из нулей и единиц, где единица на месте 4 или 5
{1:1:1:1:1:1:1:1:1} - массив у которого число строк равно числу столбцов первого массива
Функция МУМНОЖ() возвращает матричное произведение двух массивов.
В результате получаем одномерный массив 27х1, у которого значения соответствуют сумме значений в строках первого массива.
При наличии в строке только 4 и/или 5 сумма равна 9
--(МУМНОЖ((C3:K29>3)*ЕЧИСЛО(C3:K29);ТРАНСП(СТОЛБЕЦ(C3:K29)^0))=9) - сравнивается каждое значение массива 27х1 с 9
Получаем массив {0:0:1:1:0:1:0:0:0:1:0:0:1:0:1:1:1:0:0:0:0:0:0:1:0:0:0} - сумма которого есть искомое значение хорошистов и пятерочников.
Изменено: АlехМ - 06.05.2024 15:42:10
Алексей М.
 
Вот  и зачем я несколько статей прочитал про функцию МУМНОЖ надо было немного подождать и АlехМ все бы объяснил гораздо быстрее.  :D
flyymann
Цитата
а в моих интересах её рассказать преподавателю, это моё практическое задание
Надо надеется на лучшее, что ваш преподаватель продвинутый и тоже на этом сайте просматривает темы. Тогда вам не придется объяснять как формула работает., он сам сообщение от АlехМ прочитал.  :D  
 
Главное рассказать преподавателю с пониманием, а не просто пересказ. Тогда хорошая оценка обеспечена.
Не раз так было у меня.
В 9 классе рассказал, как работает триггер на лампе пентод (сейчас уже не помню), в институте рассказал как алюминий деформировать магнитным полем.
В первом случае получил 5, во втором - только за этот ответ отл. за дипломную работу.  :)  
Алексей М.
 
АlехМ Ну как можно забыть как работает триггер. (В принципе без разницы на триоде,тетроде, пентоде, биполярном или полевом транзисторе)

P.S. Хотя уже не все помню. Названия всех сеток у ламп забыл.
Изменено: Евгений Смирнов - 06.05.2024 18:48:01
 
АlехМ, так надо?
Пришелец-прораб.
 
Цитата
написал:
Названия всех сеток у ламп забыл.
Я об этом, 9 класс - 1974 год.  
Алексей М.
 
Цитата
написал:
=СЧЁТЕСЛИМН(C1:C29;">=4";D1:D29;">=4";E1:E29;">=4";F1:F29;">=4";G1:G29;">=4";H1:H29;">=4";I1:I29;">=4";J1:J29;">=4";K1:K29;">=4")
На счёт формулы, по которой просил описание, понял что это сложно и не подойдёт.
Вернулся к прошлой формуле, но понял, что она считает неправильно. Если во всех столбцах условие сбывается, то она считает правильно, но у меня может быть такое, что в одном столбце вообще может не сбываться условие.
 
 
Цитата
написал:
Я об этом, 9 класс - 1974 год.  
Сможешь помочь?
 
Цитата
написал:
о у меня может быть такое, что в одном столбце вообще может не сбываться условие.
На примере покажите.
По вопросам из тем форума, личку не читаю.
 
Не знаю на сколько проще,но что-то такое. Excel 2019+, массив.
Код
=СУММ(--ЕОШ(ПОИСК(B3:B29&"#";СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#")))))
  1. 1/(--C3:K29>3) а) --C3:K29 пытается преобразовать значения ячеек диапазона в число ( для "н/а" будет ошибка "#ЗНАЧ!" для остальных просто их значение); б) --C3:K29>3 то что получилось сравнивается с 3 ("#ЗНАЧ!">3 = "#ЗНАЧ!"; для остальных ИСТИНА (если 4 и 5) или ЛОЖЬ ( если 1, 2, 3));  в) 1/(--C3:K29>3) 1 делится на результат ( возможны "#ЗНАЧ!", ИСТИНА или ЛОЖЬ) для "#ЗНАЧ!" будет "#ЗНАЧ!", а логические значения при арифметических операциях преобразуются в 1 - правда, 0-ложь => 1 /ПРАВДА =1 1/ЛОЖЬ="#ДЕЛ/0!"  г) ЕЧИСЛО(1/(--C3:K29>3)) проверяет является ли числом результат для вариантов ("#ЗНАЧ!", "#ДЕЛ/0!" ) будет ЛОЖЬ а для остального (1) ИСТИНА .
  2. Смысл всего этого получить логические значения для каждой оценки и если значение ложно (то есть оценка <=3 или "н/а") добавить к имени B3:B29 знак "#" (когда производится действия 1D-массива (столбец имен)  с двумерным массивом (диапазон оценок) то каждый элемент строки (Имя) будет взаимодействовать со всеми элементами соответствующей строки 2D массива)  B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#") то есть будет сформирован 2D массив где каждый элемент это ФИО сцепленное в зависимости от выполнения условия с  "#" или пустой строкой "".
  3. СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#")) СЦЕП соединит все значения массива в одну строку.
  4. ПОИСК(B3:B29&"#";СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#"))) в полученной строке мы будем искать комбинацию ФИО# -B3:B29&"#" (поиск будет происходить для каждого имени в столбце и вернется столбец значений) если такой вариант найден, то вернется число показывающие позицию искомого в строке не найден - ошибку "#ЗНАЧ!".
  5. ЕОШ(ПОИСК(B3:B29&"#";СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#")))) - ЕОШ проверяет все значения полученного массива на принадлежность к ошибкам (за исключением #Н/Д, что в данном случае не существенно), а ошибка - это значит что для данной строки столбца не нашлось комбинации B3:B29&"#" и у ученика нет "н/а" или оценок меньше 4.
  6. --ЕОШ(ПОИСК(B3:B29&"#";СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#")))) преобразуем столбец логических значений в числа.
  7. СУММ(--ЕОШ(ПОИСК(B3:B29&"#";СЦЕП(B3:B29&ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";"#"))))) суммируем полученный результат.
 
Эта формула от ИИ нейросети?
Алексей М.
 
Цитата
АlехМ написал:
Эта формула от ИИ нейросети?
Если вопрос ко мне, то нет не ИИ. Все косяки что есть мои) Что с ней не так?
 
Цитата
написал:
1 /ПРАВДА =1
Например это

В файле примере из 27 учеников 9 учатся на 4 и 5
Ваша формула дает такой же ответ?
Алексей М.
 
Цитата
АlехМ написал:
1 /ПРАВДА =1
Только ИИ так может написать) что ПРАВДА?
Цитата
АlехМ написал:
учеников 9 учатся
а разве нет?
 
Serg091, проверить трудно ибо под рукой офиса поновее нет, а в р7 не работает
однако каков смысл добавлять # если можно просто
=СУММ(--ЕОШ(ПОИСК(B3:B29;СЦЕП(ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";B3:B29)))))

возможно сработает и так
=СУММ(--ЕОШ(ПОИСК(B3:B29;СЦЕП(ЕСЛИОШИБКА(1/(--C3:K29>3));B3:B29)))))
=SUM(--ISERR(FIND(B3:B29;CONCAT(IFERROR(1/(--C3:K29>3);B3:B29)))))

То есть важно чтоб ненашлось.
Изменено: БМВ - 08.05.2024 07:48:15 (лишняя скобка затесалась)
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
можно просто
эта работает, во всяком случае в LibreOffice. Вторая нет
 
Цитата
БМВ написал:
=СУММ(--ЕОШ(ПОИСК(B3:B29;СЦЕП(ЕСЛИ(ЕЧИСЛО(1/(--C3:K29>3));"";B3:B29)))))
Да так лучше, конечно, не проработал до конца. Не всегда можно увидеть то что перед собственным носом).
 
В Excel 2016 нет функции СЦЕП()
Алексей М.
 
Почему формула вот так считает правильно:

=СЧЁТЕСЛИМН(C3:C29;">=4";D3:D29;">=4";E3:E29;">=4";F3:F29;">=4";G3:G29;">=4";H3:H29;">=4";I3:I29;">=4";J3:J29;">=4";K3:K29;">=4")

А вот в таком неправильно:

=СЧЁТЕСЛИМН(C3:C29;"<=2";D3:D29;"<=2";E3:E29;"<=2";F3:F29;"<=2";G3:G29;"<=2";H3:H29;"<=2";I3:I29;"<=2";J3:J29;"<=2";K3:K29;"<=2")

"Формула для подсчёт неуспевающих"

В первом случае получается 9, так и есть. А вот во втором случае получается 0, если хоть немного подумать, то при наличии хотя бы одной двойки или н/а формула должна считать правильно. А там таких случаев много и всё равно 0 получается.

Как сделать подсчёт неуспевающих ?

Пожалуйста без сложных формул и желательно с объяснением всего
 
так можно посчитать неуспевающих с двойками и н/а простыми формулами
Код
=СЧЁТЗ(B3:B29)-СЧЁТЕСЛИМН(C3:C29;">2";D3:D29;">2";E3:E29;">2";F3:F29;">2";G3:G29;">2";H3:H29;">2";I3:I29;">2";J3:J29;">2";K3:K29;">2")

но так же интереснее

Код
=СУММ(Ч(МУМНОЖ(Ч(Ч(+C3:K29)<=2);{1:1:1:1:1:1:1:1:1})>0))
Изменено: АlехМ - 08.05.2024 00:01:17
Алексей М.
 
Цитата
АlехМ написал:
Ч(Ч(+C3:K29)
У меня было представление что Ч() не работает с массивами, видимо дело в волшебном "+")?
 
Есть приемы, когда массив вставляют в первый аргумент функции ВПР() и в индекс функции ИНДЕКС(). Такое получается с функцией Ч()
Под конкретный случай Ч(+массив) объяснение есть по ссылке Ч(+массив)
Алексей М.
 
Цитата
АlехМ написал:
Под конкретный случай Ч(+массив) объяснение есть по ссылке  Ч(+массив)
Спасибо.
Страницы: Пред. 1 2
Наверх