Ребята и девчата, помогите, плиз, не ударить фэйсом в sheet shit Попросили меня наши энергетики, как знатока Excel , помочь наладить им учёт качества аккумуляторов (АКБ) в их бесперебойниках (ИБП). Слабо структурированные и разбросанные по отдельным файлам таблички замеров АКБ я в один файл свёл, а вот с вычислением по месяцам качества АКБ по группам возникла проблема. Дело в том, что по месяцам при замене АКБ на новые номинальная ёмкость может изменяться. Кроме того, может изменяться и количество АКБ в линейке. Да ещё и Руководство велело сделать изменяемыми границы критериев сортировки на НОРМАЛЬНЫЕ-ХОРОШИЕ-НЕУДОВЛЕТВОРИТЕЛЬНЫЕ (вопреки требованиям стандарта IEEE). С условным форматированием ячеек проблем не возникло, а вот когда я попытался посчитать количество АКБ по критерию функцией СЧЁТЕСЛИ возникли проблемы с тем, что критерий в ней задаётся так, что применить в нём вычисления со ссылкой на ячейки невозможно (при вычислениях там в критерии должна быть текстовая переменная). Попробовал вычислять, суммируя формулой массива результаты ИСТИНА/ЛОЖЬ по каждой из ячеек - НЕ ПОЛУЧИЛОСЬ (ну не понимаю я толком формулы массивов...) В общем, всё описано в примере.
Ребята и девчата, помогите, плиз, не ударить фэйсом в sheet shit Попросили меня наши энергетики, как знатока Excel , помочь наладить им учёт качества аккумуляторов (АКБ) в их бесперебойниках (ИБП). Слабо структурированные и разбросанные по отдельным файлам таблички замеров АКБ я в один файл свёл, а вот с вычислением по месяцам качества АКБ по группам возникла проблема. Дело в том, что по месяцам при замене АКБ на новые номинальная ёмкость может изменяться. Кроме того, может изменяться и количество АКБ в линейке. Да ещё и Руководство велело сделать изменяемыми границы критериев сортировки на НОРМАЛЬНЫЕ-ХОРОШИЕ-НЕУДОВЛЕТВОРИТЕЛЬНЫЕ (вопреки требованиям стандарта IEEE). С условным форматированием ячеек проблем не возникло, а вот когда я попытался посчитать количество АКБ по критерию функцией СЧЁТЕСЛИ возникли проблемы с тем, что критерий в ней задаётся так, что применить в нём вычисления со ссылкой на ячейки невозможно (при вычислениях там в критерии должна быть текстовая переменная). Попробовал вычислять, суммируя формулой массива результаты ИСТИНА/ЛОЖЬ по каждой из ячеек - НЕ ПОЛУЧИЛОСЬ (ну не понимаю я толком формулы массивов...) В общем, всё описано в примере.Alex_ST
Серёга, замеренную ёмкость нужно сравнивать не с НОРМ (это процент от номинальной ёмкости) а с номинальной ёмкостью ряда, умноженной на НОРМ А вот за конкатенацию внутри критерия типа "<="&$P3 СПАСИБО! Как сам не сообразил? Сделал в учёте нормальных в ячейке
Код
В25 =СЧЁТЕСЛИ (B4:B23;">="&B$1*НОРМ)
и всё заработало без всяких формул массива! Спасибо. Вопрос снят.
Серёга, замеренную ёмкость нужно сравнивать не с НОРМ (это процент от номинальной ёмкости) а с номинальной ёмкостью ряда, умноженной на НОРМ А вот за конкатенацию внутри критерия типа "<="&$P3 СПАСИБО! Как сам не сообразил? Сделал в учёте нормальных в ячейке
Код
В25 =СЧЁТЕСЛИ (B4:B23;">="&B$1*НОРМ)
и всё заработало без всяких формул массива! Спасибо. Вопрос снят.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 08.07.2021, 14:47
Да я сразу предложил всё сделать в VBA, но у них у всех макросы запрещены высочайшей директивой... Ну я и начал всё делать чисто формулами, а про конкатенацию почему-то даже и не вспомнил. Но я им там, конечно, и накрутил! И именованные диапазоны, и вычисления внутри формул имён, формулы на 3 строки из-за защиты от всяких ошибок, и … Самому не дай Бог потом через пару месяцев разбираться… То ли дело VBA! Если не ленишься и соблюдаешь хороший стиль программирования (включаешь Оption Explicit, даёшь осмысленные имена переменным, избегаешь по возможности отсутствия размерности, пишешь комментарии), то потом и через год-два разобраться в своей разработке не так уж и сложно.
Да я сразу предложил всё сделать в VBA, но у них у всех макросы запрещены высочайшей директивой... Ну я и начал всё делать чисто формулами, а про конкатенацию почему-то даже и не вспомнил. Но я им там, конечно, и накрутил! И именованные диапазоны, и вычисления внутри формул имён, формулы на 3 строки из-за защиты от всяких ошибок, и … Самому не дай Бог потом через пару месяцев разбираться… То ли дело VBA! Если не ленишься и соблюдаешь хороший стиль программирования (включаешь Оption Explicit, даёшь осмысленные имена переменным, избегаешь по возможности отсутствия размерности, пишешь комментарии), то потом и через год-два разобраться в своей разработке не так уж и сложно.Alex_ST