Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2016, 08:03   #1
Vlad_SPb
Новичок
Джуниор
 
Регистрация: 27.01.2016
Сообщений: 1
По умолчанию Выбрать по критерию и суммировать последние пять

Есть таблица из двух столбцов. Столбец A "Наименование товара" и столбец B "Цена". В столбце А Перечислены товары, например: апельсины, мандарины, яблоки, груши и т.п, причём вперемешку и строк в таблице очень много (несколько сотен). Таблица постоянно дополняется новыми данными.
Выглядит так:

A B
Яблоки 150
Апельсины 300
Груши 220
Мандарины 290
Груши 280
Мандарины 310
Мандарины 300
Яблоки 120
Яблоки 190
Апельсины 280

Рядом нужно создать маленькую табличку, в которой будет подсчитываться сумма последних пяти закупок того или иного товара, например апельсины. И ещё сумма пяти закупок, предшествующих последним пяти. Т.е. это будет таблица сравнения сумм последних пяти закупок и пяти закупок предшествующих этим пяти последним (для определённого товара). Выглядеть это будет примерно так:

C D
Апельсины (последние пять закупок) 1468
Апельсины (предыдущие пять закупок) 1295

Конечно там ещё и среднее должно высчитываться, и процент, и таблица посложнее, но это я все смогу сделать, мне бы только с этими злосчастными пятью последними закупками разобраться.
Как посчитать все апельсины я знаю: СУММЕСЛИ(A1:A10000;C1;B1:D10000). А вот как заставить Excel просматривать диапазон A1:A10000 с конца и выбирать только последние пять и пять предыдущих, никак не могу сообразить.
Надеюсь, что кто-нибудь поможет.
Vlad_SPb вне форума Ответить с цитированием
Старый 27.01.2016, 13:40   #2
peq
Форумчанин
 
Регистрация: 01.03.2009
Сообщений: 230
По умолчанию

немного подумал.. возможно решение не оптимальное, но я сделал бы файл так.

сводную таблицу я бы поставил, т.к. она процессор ест меньше, чем формулы, а актуальность и целостность данных проверять каждый каждый раз будет надо.

выводить лучше последние 10 целиком, а потом только только суммировать, т.к. дельты все равно надо будет как-то понимать самому и объяснять конечному получателю отчета. а они могут быть не такие, какими их люди ожидают увидеть хотя бы по причине отсутствия значений в предыдущей 5.
Вложения
Тип файла: xlsx задача_333.xlsx (23.8 Кб, 13 просмотров)
peq вне форума Ответить с цитированием
Старый 27.01.2016, 14:27   #3
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

N - последних чисел кот надо суммировать
Код:
Function СумаПоследних(strSource As String, N as integer)
    Dim Count As Integer
    Dim lastRow As Integer, Sum As Integer
    Count = 0: Sum = 0
    lastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
    Do While Count < N And lastRow > 2
        If ActiveSheet.Cells(lastRow, 1) = strSource Then
            Count = Count + 1
            Sum = Sum + ActiveSheet.Cells(lastRow, 2)
        End If
        lastRow = lastRow - 1
    Loop
    СумаПоследних = Sum
End Function
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выбрать последние цены andrew_jr20 SQL, базы данных 14 28.09.2011 11:15
выбрать из строк последние, идущие после ключевой строки SarahConner Microsoft Office Excel 8 29.12.2010 22:42
Как выбрать минимальное значение по критерию Androgen13 Microsoft Office Excel 1 16.09.2010 15:30
Как из нескольких файлов *.xls выбрать нужные данные суммировать их и скопировать в уже готовую форму Иван123456 Microsoft Office Excel 2 07.08.2009 21:50
Выбрать цифры и суммировать в Экселе Please_please_me Microsoft Office Excel 2 21.02.2009 05:24