Excel выборка с сумированием

Программирование на Visual Basic for Applications
Lionzi
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 12.09.2003 (Пт) 10:19

Excel выборка с сумированием

Сообщение Lionzi » 06.04.2005 (Ср) 10:40

Здравствуйте, прошу помоши.

Необходимо сделать выборку по столбцу kod, при соответствии значения заданному происходит суммирование из столбца sum но только по tabn, т.е. примерно:
если kod = 35 или 6 или 19 то сумма по tabn = (748,32+2356+1388), а остальные значения игнорируются.
При этом надо прсчитывать каждый различный tabn.

A; B; C; D;
TABN; NAME; KOD; SUM;
5; БЕЛЫХ С.И.; 35; 748,32;
5; БЕЛЫХ С.И.; 6; 2356,00;
5; БЕЛЫХ С.И.; 19; 1388,00;
5; БЕЛЫХ С.И.; 32; 1044,00;
5; БЕЛЫХ С.И. ; 80; 1005,30;
6; БУЛАНКИН В.В.; 72; 1000,00;
6; БУЛАНКИН В.В.; 32; 1618,00;
7; БЕКЛЕМЫШЕВ; 56; 837,92;
7; БЕКЛЕМЫШЕВ; 4; 2300,00;
9; ДЕГТЕВ А.В. ; 4; 1231,79;
9; ДЕГТЕВ А.В. ; 6; 1273,00;
9; ДЕГТЕВ А.В. ; 72; 800,00;
9; ДЕГТЕВ А.В.; 90; 0,87;

PS: В качестве разделителя использовал ";" т.к. пробелы, табулы исчезают.

Заранее благодарен, Александр.
Ну что взять с чайника, кроме кипятка?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 06.04.2005 (Ср) 10:49

Можно обойтись встроенными средствами Excel - вставить еще один столбец, в котором будет стоять 1, если строку нужно суммировать и 0, если не нужно. Потом использовать либо функцию СУММЕСЛИ, либо СУММПРОИЗВ.

Lionzi
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 12.09.2003 (Пт) 10:19

Сообщение Lionzi » 06.04.2005 (Ср) 11:16

проше говоря получится
Код: Выделить всё
=ЕСЛИ(A:A=5;СУММЕСЛИ(F:F;1;D:D);0)


Проблема в том, что для каждого TABN нужно получить свою сумму по нужным KOD, если просто прописывать СУММЕСЛИ то прийдется писать все 7000 раз, что не есть гуд. Потом, TABN могут добавляться или убираться.

Да, таблица экспортируется из другой программы, т.е. прописать автоматическое добавление формулы не предоставляется возможным.
Ну что взять с чайника, кроме кипятка?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2005 (Ср) 11:22

Можно еще проще -- сводная таблица.
Lasciate ogni speranza, voi ch'entrate.

Lionzi
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 12.09.2003 (Пт) 10:19

Сообщение Lionzi » 06.04.2005 (Ср) 11:44

А как в сводной таблице задать условие, суммировать только нужные мне KOD?
Ну что взять с чайника, кроме кипятка?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 06.04.2005 (Ср) 11:59

Задать фильтр.
Lasciate ogni speranza, voi ch'entrate.

Lionzi
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 12.09.2003 (Пт) 10:19

Сообщение Lionzi » 06.04.2005 (Ср) 12:51

Чувствую себя дураком.
Так, вроде разобрался со сводной таблицей получилось следущее:
в первой строке считает итоговую сумму
ниже показывает из каких чисел она просчитывается.
Как можно скопировать только итоговые значения в новую таблицу?
Ну что взять с чайника, кроме кипятка?

Ser Artur
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 23
Зарегистрирован: 10.10.2005 (Пн) 13:03

Сообщение Ser Artur » 11.10.2005 (Вт) 7:41

А я предложу следующее
Код: Выделить всё
Function sumRangeColor(iObrazets, iDiapazon) As Double
   
iColor = iObrazets.Interior.ColorIndex

For Each iCell In iDiapazon
    If iCell.Interior.ColorIndex = iColor Then
       If IsNumeric(iCell) = True Then
          sumRangeColor = sumRangeColor + iCell
       End If
    End If
Next

End Function


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 86

    TopList