Найти сумму

Все, что вы хотели знать о программизме, но боялись спросить.
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Найти сумму

Сообщение Waterbyte »

господа ексельщики, помогите-подскажите, кто в курсе. а то туплю конкретно.

нужно найти сумму содержимого ячеек в строке номер N по тем столбцам, у которых в строке M находится величина, равная значению содержимого ячейки A. количество и взаимное расположение столбцов - переменное (зависит от значения A), поэтому тупое суммирование нужных ячеек не подходит, нужна формула. желательно бы обойтись без модулей в VBA, а то ещё и его придёццо вспоминать...
Kiseta
Графоман
Сообщения: 8081
Зарегистрирован: 22 фев 2005, 17:33

Re: Найти сумму

Сообщение Kiseta »

Waterbyte писал(а):господа ексельщики, помогите-подскажите, кто в курсе. а то туплю конкретно.

нужно найти сумму содержимого ячеек в строке номер N по тем столбцам, у которых в строке M находится величина, равная значению содержимого ячейки A. количество и взаимное расположение столбцов - переменное (зависит от значения A), поэтому тупое суммирование нужных ячеек не подходит, нужна формула. желательно бы обойтись без модулей в VBA, а то ещё и его придёццо вспоминать...
я думала денег :)

VLOOKUP в комбинации с IF пробовал?
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

Kiseta писал(а):VLOOKUP в комбинации с IF пробовал?
слова такие видел. ещё видел SUMIFS, INDEX, MATCH и прочие. применить к конкретной задаче не удалось. иначе зачем бы я тут спрашивал? как такое в аксессе сделать - знаю, а вот чтоб в екселе - затык.
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

подобрал формулу, ура. вдруг ещё кому пригодиццо:
=SUMIF(M:M,A,N:N)
одно но: она не работает, если её поместить в ячейку в строке M.
Kiseta
Графоман
Сообщения: 8081
Зарегистрирован: 22 фев 2005, 17:33

Re: Найти сумму

Сообщение Kiseta »

Waterbyte писал(а):подобрал формулу, ура. вдруг ещё кому пригодиццо:
=SUMIF(M:M,A,N:N)
одно но: она не работает, если её поместить в ячейку в строке M.
М это ж вроде колонка :? может повесишь образец? скриншот своей таблички, или если у тебя там сенситив данные, примерных данных, а то это ужос на слух табличку экселя представлять :)
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

Waterbyte писал(а):...в строке номер N по тем столбцам, у которых в строке M находится величина...
Kiseta писал(а):М это ж вроде колонка :?
а не всё ли равно? я задачу в формализованном виде ставил. M и N - это функции аргумента А, с областью значений из натурального ряда, ограниченного сверху техническими возможностями екселя.

визуально-неформально: например, просуммировать значения по одной строке в тех столбцах, в которых в другой строке находится некая переменная. впрочем, это уже не имеет значения, коль скоро решение найдено. решение инвариантно к транспонированию матрицы, сроки и столбцы можно менять местами.
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

а вот ещё ексельным гуру вопрос. не про сумму, но не открывать же новый топик из-за такой ерунды...

вот, к примеру, мне нужно сделать так, чтобы строчка N сама отслеживала, последняя она в массиве или нет, и чтобы формула в ячейке MN зависела от результата слежения таким образом, что принимала бы значение F в случае, если строчка последняя, и значение из ячейки M(N-1) в случае, если нет.

я попытался было реализовать это, но у меня там такие крокодилы получились - мамадорогая. врагу не пожелаешь. да и сам не разберусь уже через неделю. вдруг есть какое изящное решение?
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Re: Найти сумму

Сообщение tasko »

Waterbyte писал(а):а вот ещё ексельным гуру вопрос. не про сумму, но не открывать же новый топик из-за такой ерунды...

вот, к примеру, мне нужно сделать так, чтобы строчка N сама отслеживала, последняя она в массиве или нет, и чтобы формула в ячейке MN зависела от результата слежения таким образом, что принимала бы значение F в случае, если строчка последняя, и значение из ячейки M(N-1) в случае, если нет.

я попытался было реализовать это, но у меня там такие крокодилы получились - мамадорогая. врагу не пожелаешь. да и сам не разберусь уже через неделю. вдруг есть какое изящное решение?
Для строки 1 в колонку N вставляем что-то типа

Код: Выделить всё

=IF(ISBLANK(M2)=FALSE, M1, F1)
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

tasko писал(а):Для строки 1 в колонку N вставляем что-то типа

Код: Выделить всё

=IF(ISBLANK(M2)=FALSE, M1, F1)
это работает только для случая, когда в колонке N в последней строке есть последнее значение. а оно может быть вовсе и не там, а в столбце N+K. причём для разных M могут быть разные K. если удастся подобрать формулу, находящую любой столбец X, имеющий непустое значение в последней строке, тогда можно будет попробовать скормить найденный столбец формуле выше.
по крайней мере, она проще моей крокодилины
=IF(ROW()<MATCH(1E+99,X:X),M(N-1),F)
tasko
Графоман
Сообщения: 18705
Зарегистрирован: 20 июл 2003, 09:16
Откуда: Торонто

Re: Найти сумму

Сообщение tasko »

Waterbyte писал(а):это работает только для случая, когда в колонке N в последней строке есть последнее значение. а оно может быть вовсе и не там, а в столбце N+K.
Всегда полезно иметь столбец, который представляет номер строки в массиве.
Чаще всего это столбец А со значениями 1,2,3....n
Затем ссылайтесь на него во всех нужных формулах.
Типа =IF(ISBLANK($A2)=FALSE, M1, F1)
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

tasko писал(а):Всегда полезно иметь столбец, который представляет номер строки в массиве.
это да, стопицот раз уже надо было. хотя не исключаю, что в ексель давно уже встроили функцию, заменяющую такой столбец, только я про неё ещё не знаю, вот и приходиццо огороды городить...
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

Waterbyte писал(а):а вот ещё ексельным гуру вопрос. не про сумму, но не открывать же новый топик из-за такой ерунды...
на этот раз какрастаки про сумму.
как сделать running total какой-нть фигни в фильтрованных таблицах? если не фильтровать, то

Код: Выделить всё

=SUM(INDEX([фигня],1):[@фигня])
замечательно работает. а вот если фильтровать, то этой формулке на фильтры плевать с высокой колокольни. суммирует фсё подряд, невзирая. может, уже придумали какой-нть aggregate(), который игнорирует отфильтрованное? мы сами не местные, поможите, чем можете...
Аватара пользователя
Алексей K-K
Графоман
Сообщения: 11091
Зарегистрирован: 20 май 2009, 13:15

Re: Найти сумму

Сообщение Алексей K-K »

В лоб считать конечно круто, но проще создавать столбцы и строки с промежуточными и вспомогательными значениями.
Аватара пользователя
Waterbyte
Графоман
Сообщения: 47949
Зарегистрирован: 10 авг 2007, 13:43

Re: Найти сумму

Сообщение Waterbyte »

ха, я думал, что пошутил, а оно и впрямь оказалось aggregate() :)
короче, running total какой-нть фигни в фильтрованных таблицах, вдруг кому тоже пригодиццо:

Код: Выделить всё

=AGGREGATE(9,5,INDEX([фигня],1):[@фигня])
вместо 5 в параметрах можно ещё использовать 1, 3, или 7, если просто нужно выкинуть из суммирования уже отфильтрованные строки.
Алексей K-K писал(а):проще создавать столбцы и строки с промежуточными и вспомогательными значениями.
я так раньше тоже думал, но по мере усложнения структур связанных таблиц, с которыми довелось иметь дело, постепенно отказался от этого мнения, и теперь стараюсь использовать их только в режиме отладки, а потом по очереди от них избавляюсь. оккам был мужик хоть и древний, но не дурак, видимо. хотя, говорят, бритву свою он ещё раньше у пифагорейцев попятил. но это сути дела не меняет: плодя сущности, мы увеличиваем энтропию. вам, как долгожителю, это вредит в первую очередь: вам в этом всём потом жить, притом вечно...
Аватара пользователя
Алексей K-K
Графоман
Сообщения: 11091
Зарегистрирован: 20 май 2009, 13:15

Re: Найти сумму

Сообщение Алексей K-K »

Waterbyte писал(а):я так раньше тоже думал, но по мере усложнения структур связанных таблиц, с которыми довелось иметь дело, постепенно отказался от этого мнения, и теперь стараюсь использовать их только в режиме отладки, а потом по очереди от них избавляюсь. оккам был мужик хоть и древний, но не дурак, видимо. хотя, говорят, бритву свою он ещё раньше у пифагорейцев попятил. но это сути дела не меняет: плодя сущности, мы увеличиваем энтропию. вам, как долгожителю, это вредит в первую очередь: вам в этом всём потом жить, притом вечно...
Если много сущностей порождается, то стоит изменить реальность на более продвинутую, где работа с базами данных более гуманна. Мне как долгожителю давно ясно что старья надо избавляться. :D
Ответить