Доброго времени суток форумчане и гости форума. Нужно подсчитать только положительные значения диапазона A1:C1 на трёх листах. У меня получилась вот такая формула:
На вид какая то несуразная. Может можно её как то укоротить (упростить)?
Доброго времени суток форумчане и гости форума. Нужно подсчитать только положительные значения диапазона A1:C1 на трёх листах. У меня получилась вот такая формула:
В Декабре будет так же. Попросили просуммировать по кварталам. Про весь год пока не заикались... но думаю им захочется и за год. Сейчас начну разбираться в Вашей формуле. Как прикрепить на квартала и на весь год. СПАСИБО!
В Декабре будет так же. Попросили просуммировать по кварталам. Про весь год пока не заикались... но думаю им захочется и за год. Сейчас начну разбираться в Вашей формуле. Как прикрепить на квартала и на весь год. СПАСИБО!DrMini
Сообщение отредактировал DrMini - Среда, 30.03.2022, 14:40
1 ЯЧЕЙКА("filename";A1) - дает полный путь к файлу (включая название листа) 2 ПОИСК("]";п.1) - номер позиции закрывающейся квадратной скобки в этом пути (после нее как раз будет имя листа) 3 ПСТР(п.1;п.2+1;9) - от номера позиции из п.2 + 1 символ берем 9 символов вправо. Самое длинное название месяца Сентябрь - 8 букв, значит, 9 точно хватит. Получаем название листа, у нас это название месяца 4 "1-"&п.3 - прилепляем слева текст "1-" 5 ТЕКСТ(п.4;"М") - п.4 автоматически преобразуется в 1-е число найденного месяца текущего года. ТЕКСТом преобразуем его в цифру месяца (для мая, например, в 5) 6 "1:"&п.5 - прилепляем слева текст "1:". Получается для мая 1:5 7 ДВССЫЛ(п.6) - получаем ссылку на строки, найденные в п.6 8 СТРОКА(п.7) - дает массив номеров указанных строк. Для мая - 1:2:3:4:5 9 "1-"&п.8 - прилепляем слева текст "1-" 10 ТЕКСТ(п.9;"ММММ") - п.9 автоматически преобразуется в 1-е число найденного месяца текущего года. ТЕКСТом преобразуем его в месяц буквами (для мая, например, в Май). Получаем массив названий месяцев 11 п.10&"!RC1:RC3" - прилепляем справа текст "!RC1:RC3". RC1:RC3 - это то же самое, что и $A1:$C1, только стиль ссылок не "А1", а "RC" (см. Файл - Параметры - Формулы - Стиль ссылок). Получаем массив диапазонов для каждого листа 12 ДВССЫЛ(п.11;) - у ДВССЫЛ есть два аргумента (см. справку). Если второй ИСТИНА или отсутствует, то подразумевается стиль ссылок А1, а если ЛОЖЬ, то стиль RC. Но ЛОЖЬ можно не писать, достаточно просто поставить точку с запятой, это как бы 0, а 0 - это ЛОЖЬ. Получаем массив ссылок для каждого листа 13 СУММЕСЛИ(п.12);">0") - обычная СУММЕСЛИ, но для каждого листа своя. Получаем массив результатов СУММЕСЛИ для каждого листа по отдельности 14 СУММПРОИЗВ(п.13) - складываем полученное в п.13
1 ЯЧЕЙКА("filename";A1) - дает полный путь к файлу (включая название листа) 2 ПОИСК("]";п.1) - номер позиции закрывающейся квадратной скобки в этом пути (после нее как раз будет имя листа) 3 ПСТР(п.1;п.2+1;9) - от номера позиции из п.2 + 1 символ берем 9 символов вправо. Самое длинное название месяца Сентябрь - 8 букв, значит, 9 точно хватит. Получаем название листа, у нас это название месяца 4 "1-"&п.3 - прилепляем слева текст "1-" 5 ТЕКСТ(п.4;"М") - п.4 автоматически преобразуется в 1-е число найденного месяца текущего года. ТЕКСТом преобразуем его в цифру месяца (для мая, например, в 5) 6 "1:"&п.5 - прилепляем слева текст "1:". Получается для мая 1:5 7 ДВССЫЛ(п.6) - получаем ссылку на строки, найденные в п.6 8 СТРОКА(п.7) - дает массив номеров указанных строк. Для мая - 1:2:3:4:5 9 "1-"&п.8 - прилепляем слева текст "1-" 10 ТЕКСТ(п.9;"ММММ") - п.9 автоматически преобразуется в 1-е число найденного месяца текущего года. ТЕКСТом преобразуем его в месяц буквами (для мая, например, в Май). Получаем массив названий месяцев 11 п.10&"!RC1:RC3" - прилепляем справа текст "!RC1:RC3". RC1:RC3 - это то же самое, что и $A1:$C1, только стиль ссылок не "А1", а "RC" (см. Файл - Параметры - Формулы - Стиль ссылок). Получаем массив диапазонов для каждого листа 12 ДВССЫЛ(п.11;) - у ДВССЫЛ есть два аргумента (см. справку). Если второй ИСТИНА или отсутствует, то подразумевается стиль ссылок А1, а если ЛОЖЬ, то стиль RC. Но ЛОЖЬ можно не писать, достаточно просто поставить точку с запятой, это как бы 0, а 0 - это ЛОЖЬ. Получаем массив ссылок для каждого листа 13 СУММЕСЛИ(п.12);">0") - обычная СУММЕСЛИ, но для каждого листа своя. Получаем массив результатов СУММЕСЛИ для каждого листа по отдельности 14 СУММПРОИЗВ(п.13) - складываем полученное в п.13_Boroda_
RC1:RC3 - это текущая строка, столбцы 1:3. Поэтому такую формулу можно протягивать - текущая-то строка - это та строка, в которой сама формула и находится Можно и стилем А1, но тогда пришлось бы писать не "!A1:C1", а
Код
"!A"&СТРОКА()&":C"&СТРОКА()
гораздо больше, чем просто
Код
RC1:RC3
RC1:RC3 - это текущая строка, столбцы 1:3. Поэтому такую формулу можно протягивать - текущая-то строка - это та строка, в которой сама формула и находится Можно и стилем А1, но тогда пришлось бы писать не "!A1:C1", а