Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сформировать критерий для БДСУММ() в формуле / 12 сообщений из 12, страница 1 из 1
06.12.2007, 18:32:21
    #34992435
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Hello, All!!!

Подскажите, существует ли какая-нибудь возможность сформировать критерий для функции БДСУММ() не используя реальный диапазон. Т.е. что-то вроде:
=БДСУММ(База;"Результат";{"Поле";"Значение"}) ?
...
Рейтинг: 0 / 0
06.12.2007, 19:13:50
    #34992532
DaniilK
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Возможно, Вам поможет это:

Пример подсчёта (мин, макс, сумм и т.д.) согласно нескольким заданным/выбранным условиям. В примере использованы функции базы данных в которых, в качестве критерия отбора, использованы формулы. 24-12-06

http://www.msoffice.nm.ru/samples/#samples9
...
Рейтинг: 0 / 0
06.12.2007, 19:59:15
    #34992619
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
kyberHello, All!!!

Подскажите, существует ли какая-нибудь возможность сформировать критерий для функции БДСУММ() не используя реальный диапазон. Т.е. что-то вроде:
=БДСУММ(База;"Результат";{"Поле";"Значение"}) ?

Такой возможности нет :-(

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
06.12.2007, 20:17:36
    #34992647
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
DaniilK , к сожалению, мне это не поможет...
Но честно ОФИГЕЛ, когда увидел этот пример... Большое спасибо!!! Кто-нибудь знает, как это работает?

KL (XL) , увы... БДСУММ() - какая-то необычная функция, критерием в ней может выступать исключительно ссылка на диапазон...

Э-э-х... так часто в Экселе не хватает самого обычного SQL... :( Да-да... знаю-знаю: можно написать свою функцию, можно юзать, скажем, ADO через VBA... Но мне нужно что-то, что работало бы без лишних надстроек и настроек, разрешения макросов и т.д., чтобы гарантированно могли работать люди, слабо знакомые с Экселем, при чем на разных машинах...

Может как-то можно сваять QueryTable, которая бы ВСЕГДА использовала в качестве источника данных этот же файл (Т.е. независимо от пути, по которому этот файл лежит. Вариант макросом в свойствах QueryTable прописывать путь к этому же файлу не подходит)?
...
Рейтинг: 0 / 0
06.12.2007, 20:19:48
    #34992650
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
DaniilK
функции базы данных в которых, в качестве критерия отбора, использованы формулы.

1) это не совсем так - в качестве критерия отбора в функциях использованы диапазоны содержащие формулы ;-)

2) подобные формулы (обратите внимание на то, что ссылки в них относительные и в качестве заголовка - пустая ячейка) значительно замедляют пересчет, т.к. считают результат ячейка за ячейкой [наподобие СУМПРОИЗВ(--(...);--(...))] в отличие от родного алгоритма функций баз данных. Кстати, это решение пока не будет работать с относительными ссылками в XL2007 из-за недавно обнаруженного бага.

3) СУМПРОИЗВ в этом смысле наверно лучшая альтернатива, т.к. хоть и замедляет расчеты как в пункте два, по крайней мере экономит место.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
06.12.2007, 20:23:41
    #34992654
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
kyberувы... БДСУММ() - какая-то необычная функция, критерием в ней может выступать исключительно ссылка на диапазон...
... Но мне нужно ... чтобы гарантированно могли работать люди, слабо знакомые с Экселем, при чем на разных машинах...
А чем в данном случае диапазоны не устраивает? Можно пример задачи, которую не удается решить?

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
06.12.2007, 20:43:09
    #34992679
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
KL (XL)А чем в данном случае диапазоны не устраивает? Можно пример задачи, которую не удается решить?

Вообще, к БДСУММ я обратился потому что понадеялся, что она будет быстрее СУММЕСЛИ в моем случае. Суммирую я в формуле массива индивидуально для каждого его элемента.

Итак, задача: нужно исключительно средствами Excel повторить работу SQL-запроса на объединение двух таблиц по одному полю с последующей группировкой:)

Есть две таблички в формате базы данных.

В первой есть код должности, дата приема, кол-во человек. Табличка не нормализованная: если записи повторяются, кол-во людей нужно сложить.
Во второй табличке есть: код должности, вид мебели (стол, стул, шкаф, тумбочка и т.д.). Если человеку этой должности положен стол и стул, то будет две записи с одним кодом должности, но разным видом мебели. А если нужно два стула ( :) ) - то запись задублируется.

Необходимо: создать двухмерную таблицу с кол-вом ед. мебели. В строках таблицы - вид мебели, в столбцах - месяцы. (т.е. аналог перекрестного запроса). По возможности, эта таблица должна быть "летучей", но максимально быстро считаться.
...
Рейтинг: 0 / 0
06.12.2007, 20:53:59
    #34992692
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Текущее решение.

Таблицам присвоены имена: Outp_staff и Outp_capex. К столбцам обращаюсь через ИНДЕКС(), потому что не хочется плодить кучу имен. Но если это ускорит выполнение - то можно.

Функция выглядит так:
=-СУММПРОИЗВ(-(ИНДЕКС(Outp_capex;;9)=$B18);СУММЕСЛИ(ИНДЕКС(Outp_staff;;7);ИНДЕКС(Outp_capex;;6)&" Y:"&ГОД(D$1)&" M:"&МЕСЯЦ(D$1);ИНДЕКС(Outp_staff;;12))) , где
ИНДЕКС(Outp_capex;;9) - столбец с видом мебели
ИНДЕКС(Outp_staff;;7) - искусственно созданный в базе должностей столбец вида: Код_должности & " Y:" & Год & " М:" & Месяц
ИНДЕКС(Outp_capex;;6) - столбец с кодом должности в базе мебели
ИНДЕКС(Outp_staff;;12) - столбец, в котором указано кол-во сотрудников.

Параметры: $B18 - текущий вид мебели, D$1 - текущая дата.

Т.е. получается, что я для каждой записи из базы мебели вычисляю количество сотрудников, принятых в этом месяце, и подставляю в СУММПРОИЗВ.

Требуется: ускорить вычисления или предложить другое решение...
...
Рейтинг: 0 / 0
06.12.2007, 21:18:04
    #34992728
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Слушай, kyber

Ну пожалел бы ты нас а! Файл с примерами куда легче разбирать :-)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
07.12.2007, 10:49:45
    #34993352
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
KL (XL)Слушай, kyber

Ну пожалел бы ты нас а! Файл с примерами куда легче разбирать :-)

KL
[MVP - Microsoft Excel]
Да файлик оказался слишком большим... Вот чуть порезал... Держите
...
Рейтинг: 0 / 0
07.12.2007, 15:03:32
    #34994351
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Вот это работает значительно быстрее в XL2003 и XL2007.

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
20.12.2007, 13:08:02
    #35023051
kyber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сформировать критерий для БДСУММ() в формуле
Спасибо большое!!!... но буду еще думать - быть может, пойду все же по пути ADO в макросе...
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сформировать критерий для БДСУММ() в формуле / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]