Страницы: 1
RSS
[ Закрыто ] Подскажите формулу Function XXX(range, formula) as range
 
Всем привет, возник такой вопрос, необходимо посчитать сумму всех чего-то там, по дням недели.
Есть таблица, в которой 1 столбец - дата, 2 столбец - число.
Если запустить функцию суммаесли (диапазон, критерий, диапазон суммирования) то мне просто необходим еще один столбец, в который я пропишу =деньнед. Но этого я делать не хочу, да и места нет. Собственно вопрос, есть ли функция, которая выдает на выходе диапазон, но при ее обработке значение из этого диапазона подчиняется формуле.
Как я ее себе вижу  =суммаесли(ХХХ(формула(диапазон)),критерий, диапазон суммирования)
или =суммаеслимн(диапазон,диапазон суммирования, деньнед(каждый) = 1)
Изменено: Lisper - 17.01.2018 06:52:18
 
Lisper,
1. подумайте над названием темы, то что сейчас сильно притягивает к VBA и слабо поясняет о чем вы.
2. Функции которые выдают область в ответ это Offset и indirect.
3. А нужны ли именно они вам- это надо от задачи плясать, так как то что описали делается просто использованием не функцией SUMIF
Изменено: БМВ - 17.01.2018 09:11:10
По вопросам из тем форума, личку не читаю.
 
2а. ИНДЕКС()
4. Файл-пример. Как есть - Как надо
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
ИНДЕКС()
ну да не стал усложнять ,  но тогда  чтоб у ж чтоб совсем запутать :-)  ИНДЕКС():ИНДЕКС()  :-)
По вопросам из тем форума, личку не читаю.
 
Если сильно упросить задачу то:
Есть даты, штуки полторы дат, в столбик.
что нужно?
Например посчитать количество понедельников причем не создавая дополнительных столбцов.
Ни индекс, ни офсет не подходят, ибо они просто возвращают мне диапазон, я его и так знаю. Мне нужно запихать промежуточное вычисление в формулу.
Грубо говоря мне нужно сделать
А1:     =5
А2:     =А1 + 1 (промежуточное решение в отдельной клетке)
А3      = А2 + 1

Мне надо сразу сделать А3:  =А1 + 1 +1
Но только не с сложением, а с счетесли ( деньнед())



Банальный пример:
есть дни недели в виде числа 1,,7
=счетесли( дни-недели, 2) даст мне количество понедельников.

НО!
У меня есть даты, неделей нет (и я не должен создавать новые столбцы)
т.е. есть  даты
=счетесли (ХХХХ(диапозон дат, формула применения к датам), 2)

Функция должны быть по типу условного форматирования. В условном форматировании можно закрасить ячейки, например все выходные.
=И($S4<>"";ИЛИ(ДЕНЬНЕД($S4)=7;ДЕНЬНЕД($S4)=1))
но как сделать так, чтобы я просто получил число в формуле? Есть ли такая возможность, или придется написать макрос.
Изменено: Lisper - 17.01.2018 13:04:58
 
Цитата
Lisper написал: Банальный пример
Сделайте еще банальнее, как все делают. Покажите в файле-ПРИМЕРЕ (формата Excel) Как есть - Как надо
З.Ы. Не лень же было столько текста набирать. Да и про название темы Вы как то упустили. Помощь в темах с нарушением Правил карается нещадно
Согласие есть продукт при полном непротивлении сторон
 
Lisper, СУММПРОИЗВ http://www.planetaexcel.ru/techniques/25/2609/
 
файл прикрепил постом выше, тут чудом не работает.
 
ап
 
Вам же Казанский, показал вариант. Допилите под себя. Пока Вы не предложите (здесь же в сообщении) название темы, отражающее суть задачи, а не способ. которым Вы пытаетесь ее решить, вряд ли получите более конкретную помощь. Помощь в темах с нарушением правил жестко карается модераторами
Согласие есть продукт при полном непротивлении сторон
 
Причем тут сумма произведений когда мне нужно из массива дат посчитать количество понедельников без создания дополнительных столбцов (нельзя применить деньнед к диапазону! так и еще получить на выходе диапазон дней недели, чтобы их посчитать суммой произведений, я, кстати, и счетесли посчитать могу).
Он написал, лишь бы написать. Ну или может тогда он соизволит написать как именно применить тут сумму произведений.

За заголовок:
Подскажите формулу Function XXX(range, formula) as range

Для особо не читающих: вторым словом стоит слова формула, которая дает понять что мне нужна формула, которая будет выполнять определенные действия, а какие действия даны дальше: получает на вход диапазон, и применяемую к нему формулу (к каждой ячейки в отдельности), и возвращает диапазон.Что тут непонятно я даже хз. Пока кроме как на VBA напистаь способа не вижу, возможно его попросту и нет. Я уже и файл скинул, а вам все непонятно.
Изменено: Lisper - 18.01.2018 12:35:35
 
Lisper, Вы на пол тона ниже и вместо того чтоб возмущаться к совету прислушивались. Казанский, Вам все правильно написал. Просто у вас не укладывается в голове, что у этой функции есть нестандартное применение, которое многие успешно используют.
 
По вопросам из тем форума, личку не читаю.
 
Я прочел все что там было написано, и про нестандартные применения тоже, но у меня ехсе1 ругался на то что я применяю деньнед к диапазону, видимо тут он работает по-другому, попробую как тут написано. Спасибо.
PS, подскажите что такое 2 минуса? как понимаю один минус это убрать отрицательный ответ, а что такого магического делает минус номер 2?
Изменено: Lisper - 18.01.2018 12:51:14
 
А теперь посмотрите на название темы , это
Цитата
БМВ написал:
3. А нужны ли именно они вам- это надо от задачи плясать, так как то что описали делается просто использованием не функцией SUMIF
и решите от чего отталкивались и к чему пришли. Правда ведь не одно и тоже .

А за это
Цитата
Lisper написал:
Он написал, лишь бы написать. Ну или может тогда он соизволит
я б рекомендовал извинится.
По вопросам из тем форума, личку не читаю.
 
Извиняюсь. С формулами excel работаю мало, в основном пишу все ручками. И про хитрые применения не вкурсах.
Расскажите секрет одного отрицания в формуле?
Судя потому, что туда можно поставить *1 и ответ получится такой же, делаю вывод что ДЕНЬНЕД($B$2:$B$25)=G3 выдает нам диапазон, но не числа, как мне бы выдало просто суммапроизвед по диапазону, а какой-то безликий диапазон, и чтобы он обрел "форму" нужно сделать с ним какое-то действие. Вот именно в этом и была проблема, что когда я пытался сделать что-то у меня выходило 0 и я тупо забил. Может у кого есть более правильно объяснение как работает эта формула?
Изменено: Lisper - 18.01.2018 13:06:13
 
Цитата
Lisper написал: Он написал, лишь бы написать...Для особо не читающих..
Мда...
БМВ,  зря Вы хамам помогаете
А для Вас Lisper,  'особо одаренного', повторю Тема должна кратко отражать суть ЗАДАЧИ, а не СПОСОБ (зачастую ошибочный, как и в Вашем случае), которым Вы пытаетесь ее решить. Если помогать строго по теме, то в сообщениях 2-4 Вам были даны несколько функций, которые возвращают диапазон. Что же Вы их не применили к своей задаче?
Изменено: Sanja - 18.01.2018 13:17:42
Согласие есть продукт при полном непротивлении сторон
 
Sanja, Я до седых волос дожил и все никак не могу понять, что некоторых не перевоспитать и попытки всегда совершаю. Если результат есть , то значит я сделал мир  (а в данном случае Planet :-) ) лучше.
Lisper,  мы и так отошли сильно от темы указанной в заголовке. Придумайте нормальное название, которое будет связано с содержимым и напишите сюда, Модаратор заменит. А так, дальнейшее обсуждение сулить нам замечаниями.
По вопросам из тем форума, личку не читаю.
 
Цитата
Lisper написал:Для особо не читающих...
Подскажите формулу Function XXX(range, formula) as range
Для особо уверенных:
Function XXX(range, formula)  - функция, имеющая два параметра. Что она там должна выполнять, как работать, какой результат?
Ваша тема остается для других. Как посетители по такому ОБЩЕМУ названию смогут понять, стоит ли заходить в тему?

Бан на 3 суток за хамство, тема закрыта.

Казанский, БМВ, помогать - хорошо, но стоит ли помогать людям, которые не умеют слышать других? тем более что тема будет удалена.
Страницы: 1
Наверх