Всем привет, возник такой вопрос, необходимо посчитать сумму всех чего-то там, по дням недели. Есть таблица, в которой 1 столбец - дата, 2 столбец - число. Если запустить функцию суммаесли (диапазон, критерий, диапазон суммирования) то мне просто необходим еще один столбец, в который я пропишу =деньнед. Но этого я делать не хочу, да и места нет. Собственно вопрос, есть ли функция, которая выдает на выходе диапазон, но при ее обработке значение из этого диапазона подчиняется формуле. Как я ее себе вижу =суммаесли(ХХХ(формула(диапазон)),критерий, диапазон суммирования) или =суммаеслимн(диапазон,диапазон суммирования, деньнед(каждый) = 1)
Lisper, 1. подумайте над названием темы, то что сейчас сильно притягивает к VBA и слабо поясняет о чем вы. 2. Функции которые выдают область в ответ это Offset и indirect. 3. А нужны ли именно они вам- это надо от задачи плясать, так как то что описали делается просто использованием не функцией SUMIF
Если сильно упросить задачу то: Есть даты, штуки полторы дат, в столбик. что нужно? Например посчитать количество понедельников причем не создавая дополнительных столбцов. Ни индекс, ни офсет не подходят, ибо они просто возвращают мне диапазон, я его и так знаю. Мне нужно запихать промежуточное вычисление в формулу. Грубо говоря мне нужно сделать А1: =5 А2: =А1 + 1 (промежуточное решение в отдельной клетке) А3 = А2 + 1
Мне надо сразу сделать А3: =А1 + 1 +1 Но только не с сложением, а с счетесли ( деньнед())
Банальный пример: есть дни недели в виде числа 1,,7 =счетесли( дни-недели, 2) даст мне количество понедельников.
НО! У меня есть даты, неделей нет (и я не должен создавать новые столбцы) т.е. есть даты =счетесли (ХХХХ(диапозон дат, формула применения к датам), 2)
Функция должны быть по типу условного форматирования. В условном форматировании можно закрасить ячейки, например все выходные. =И($S4<>"";ИЛИ(ДЕНЬНЕД($S4)=7;ДЕНЬНЕД($S4)=1)) но как сделать так, чтобы я просто получил число в формуле? Есть ли такая возможность, или придется написать макрос.
Сделайте еще банальнее, как все делают. Покажите в файле-ПРИМЕРЕ (формата Excel) Как есть - Как надо З.Ы. Не лень же было столько текста набирать. Да и про название темы Вы как то упустили. Помощь в темах с нарушением Правил карается нещадно
Согласие есть продукт при полном непротивлении сторон
Вам же Казанский, показал вариант. Допилите под себя. Пока Вы не предложите (здесь же в сообщении) название темы, отражающее суть задачи, а не способ. которым Вы пытаетесь ее решить, вряд ли получите более конкретную помощь. Помощь в темах с нарушением правил жестко карается модераторами
Согласие есть продукт при полном непротивлении сторон
Причем тут сумма произведений когда мне нужно из массива дат посчитать количество понедельников без создания дополнительных столбцов (нельзя применить деньнед к диапазону! так и еще получить на выходе диапазон дней недели, чтобы их посчитать суммой произведений, я, кстати, и счетесли посчитать могу). Он написал, лишь бы написать. Ну или может тогда он соизволит написать как именно применить тут сумму произведений.
За заголовок: Подскажите формулу Function XXX(range, formula) as range
Для особо не читающих: вторым словом стоит слова формула, которая дает понять что мне нужна формула, которая будет выполнять определенные действия, а какие действия даны дальше: получает на вход диапазон, и применяемую к нему формулу (к каждой ячейки в отдельности), и возвращает диапазон.Что тут непонятно я даже хз. Пока кроме как на VBA напистаь способа не вижу, возможно его попросту и нет. Я уже и файл скинул, а вам все непонятно.
Lisper, Вы на пол тона ниже и вместо того чтоб возмущаться к совету прислушивались. Казанский, Вам все правильно написал. Просто у вас не укладывается в голове, что у этой функции есть нестандартное применение, которое многие успешно используют.
Я прочел все что там было написано, и про нестандартные применения тоже, но у меня ехсе1 ругался на то что я применяю деньнед к диапазону, видимо тут он работает по-другому, попробую как тут написано. Спасибо. PS, подскажите что такое 2 минуса? как понимаю один минус это убрать отрицательный ответ, а что такого магического делает минус номер 2?
Извиняюсь. С формулами excel работаю мало, в основном пишу все ручками. И про хитрые применения не вкурсах. Расскажите секрет одного отрицания в формуле? Судя потому, что туда можно поставить *1 и ответ получится такой же, делаю вывод что ДЕНЬНЕД($B$2:$B$25)=G3 выдает нам диапазон, но не числа, как мне бы выдало просто суммапроизвед по диапазону, а какой-то безликий диапазон, и чтобы он обрел "форму" нужно сделать с ним какое-то действие. Вот именно в этом и была проблема, что когда я пытался сделать что-то у меня выходило 0 и я тупо забил. Может у кого есть более правильно объяснение как работает эта формула?
Lisper написал: Он написал, лишь бы написать...Для особо не читающих..
Мда... БМВ, зря Вы хамам помогаете А для Вас Lisper, 'особо одаренного', повторю Тема должна кратко отражать суть ЗАДАЧИ, а не СПОСОБ (зачастую ошибочный, как и в Вашем случае), которым Вы пытаетесь ее решить. Если помогать строго по теме, то в сообщениях 2-4 Вам были даны несколько функций, которые возвращают диапазон. Что же Вы их не применили к своей задаче?
Sanja, Я до седых волос дожил и все никак не могу понять, что некоторых не перевоспитать и попытки всегда совершаю. Если результат есть , то значит я сделал мир (а в данном случае Planet :-) ) лучше. Lisper, мы и так отошли сильно от темы указанной в заголовке. Придумайте нормальное название, которое будет связано с содержимым и напишите сюда, Модаратор заменит. А так, дальнейшее обсуждение сулить нам замечаниями.
Lisper написал:Для особо не читающих... Подскажите формулу Function XXX(range, formula) as range
Для особо уверенных: Function XXX(range, formula) - функция, имеющая два параметра. Что она там должна выполнять, как работать, какой результат? Ваша тема остается для других. Как посетители по такому ОБЩЕМУ названию смогут понять, стоит ли заходить в тему?
Бан на 3 суток за хамство, тема закрыта.
Казанский, БМВ, помогать - хорошо, но стоит ли помогать людям, которые не умеют слышать других? тем более что тема будет удалена.