Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/14: Рейтинг темы: голосов - 14, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 20.07.2011
Сообщений: 93
1

Создание функции суммирования с условием

19.08.2011, 09:16. Показов 2669. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Прошу помочь всех знающих!
Как мне создать функцию следущего содержанья
БД- База данных в которой по заданному условию будет проходить операция
Имя - Одно из полей условия
Заказ - Одно из полей условия
Код - Одно из полей условия

Значить все наподобие Экзелевской функции БДСУММ()
пробовал dsum() в VBA ,но незнаю как правильно указать ему выбор по условию содержащие несколько критериев.
SumIf тоже не подошел так как там смог выбрать для условия только один критерий. Очень прошу помочь с этой задачой ,вроде простая ,но решить знаний не хватает ((
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.08.2011, 09:16
Ответы с готовыми решениями:

Написание функции суммирования
Собственно вопрос - есть 12 месяцев и столбец который суммирует квартальные показатели - как...

Задача на использование функции суммирования
Описать функцию, которая вычисляет сумму элементов k-го столбца действительной матрицы...

Функции перемножения матриц и суммирования их элементов
1. Вычисление суммы элементов нечетных строк матрицы. 2. Перемножение матриц. Операции проводить...

написать функции суммирования, вычитание, умножения и деления БЕЗ ИСПОЛЬЗОВАНИЯ арифметических операторов!
написать функции суммирования, вычитание, умножения и деления БЕЗ ИСПОЛЬЗОВАНИЯ арифметических...

6
Сумрак
19.08.2011, 11:20 2
хех.. если БД в Excel. то наврное всеже БДСумм() придется, в критерий функции передавать. Если В Ассass то проьблемы вообще нет - запрос.
Сумрак
19.08.2011, 11:27 3
Можно еще использовать СУММАЕСЛИ, это если Бд в Excele. сумма по критерию.
1 / 1 / 0
Регистрация: 20.07.2011
Сообщений: 93
19.08.2011, 17:42  [ТС] 4
Мне надо сделать это в VBA тоесть чтобы не писать каждый раз услови ведь если это таблица значени в ячейки которой разной у каждой. То придется состовлять столько же условий (( Это около 500-600 условий ((
Поэтому нужна пользовательская функция с условием ,где в поле можно задать указанную ячейку.
0
0 / 0 / 0
Регистрация: 21.05.2011
Сообщений: 3
21.08.2011, 23:58 5
Не плохо было бы получить представление - как конкретно хочешь использовать условия (все сразу или по одному) и как устроена база и итоговое суммирование по условии(ю-ям) или как?

И как понимать – (Мне надо сделать это в VBA тоесть чтобы не писать каждый раз услови ведь если это таблица значени в ячейки которой разной у каждой.)
A B C D
1 Код Товар-Имя Заказ Цена
2 (Условие) (Условие) (Условие)(Условие)
3 Код Товар-Имя Заказ Цена
4 1001 Товар-Имя 01 1 3,00
5 1002 Товар-Имя 02 2 4,00
6 1003 Товар-Имя 03 3 3,00
7 1004 Товар-Имя 04 4 4,00
8 1005 Товар-Имя 05 5 3,00
9 1006 Товар-Имя 06 6 4,00
10 1007 Товар-Имя 07 7 3,00
11 1001 Товар-Имя 01 7 4,00
12 1002 Товар-Имя 02 6 3,00
13 1003 Товар-Имя 03 5 4,00
14 1004 Товар-Имя 04 4 3,00
15 1005 Товар-Имя 05 3 4,00
16 1006 Товар-Имя 06 2 3,00
17 1007 Товар-Имя 07 1 4,00

=БДСУММ(A317;'Заказ';A12)

Если я правильно понял нет то по этому примеру распишы как нужно
0
1 / 1 / 0
Регистрация: 20.07.2011
Сообщений: 93
22.08.2011, 00:11  [ТС] 6
Нужно создать пользовательскую функцию .
Все так как вы написали ,но если будет 600 ячеек ,то для каждой придется делать свое условие и как вы думаете будет при этом работать Экзель проверяя каждый раз 600 условий и обновляясь, поэтому нужна функция независимая ,тоесть чтобы не загромождать лист .
Пример:
А В С Д
Код №Заказа Имя Выработка
0001 ХХ-1 Сэм 60
0002 ХХ-2 Сэм 50
0001 ХХ-1 Сэм 60
0001 ХХ-3 Сэм 45
БДСУММ(А2:Д6;'Выработка';условие)
Условие:
Код №Заказа Имя
0001 ХХ-1 Сэм

Теперь нужно добавить в функцию БДСУММ 4 поля БД , КОд, №Заказа, Имя
Чтобы не писать условие а указывать его сразу в функции.
0
Alex77
22.08.2011, 08:53 7
Но здесь же всего три условия а не 600
У меня было похожая задача
Можно хе просто в цикле проверять содержание трёх ячеек

Типа
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function SUM(Kod, Zakaz, Ima)
 
dim i, Rk
Const R = 65536:
Rk = Columns('A').Rows(R).End(xlUp).Row
 
For i=1 to Rk
if Range('A' + i).Value = Kod _
And  Range('B' + i).Value = Zakaz _
And  Range('C' + i).Value = Ima then
SUM = SUM + Range('D' + i).Value  
End if
next i
End Function
Kod, Zakaz, Ima можно брать с листа в каких то ячейках, рдом кнопочка для запуска макроса, а результат выводить кудо захочешь: хоть в ячейку хоть в Msgbox

Если, конечно я правилино понял суть выпроса.

РАБОТОСПОСОБНОСТЬ КОДА НЕ ПРОВЕРЯЛ - ВОЗМОЖНЫ СИНТАКСИЧЕСКИЕ ОШИБКИ
22.08.2011, 08:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.08.2011, 08:53
Помогаю со студенческими работами здесь

Составить процедуру для приближенного вычисления заданной функции y=f(x) путем суммирования членов заданного ряда
Здравствуйте. Второй день не могу составить процедуру программы для заданного ряда. Если кто сможет...

Создание сортировки с условием
Добрый вечер, дорогие форумчата! У меня вот к вам вопрос: есть массив записей с атрибутами,...

Создание таблицы с условием
Добавление специальности. Если на указанном факультете количество специальностей не превышает...

Создание триггера с условием
В общем мне нужно создать триггер AFTER INSERT. Есть две таблицы Группы(Группа, Факультет,...

Создание оператора с условием
Функция это первое задание, а рисунок второе.

Создание цикла с условием
Добрый день! Возникли вопросы как запрограммировать код и возможно ли это сделать в Wolfram...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru