23 июня 2022
2 минуты

Используйте функции Excel и VBA в MDX-запросах

Существует механизм, позволяющий из MDX-запроса обращаться к внешним функциям. Обычно для этого сначала требуется подключить внешнюю библиотеку с определением функции. Но две таких библиотеки уже подключены по-умолчанию.

А вы знаете, что из MDX-запроса можно вызывать экселевские (и ВБА) функции? Да, это то самое чувство, когда вы легко можете добиться желаемого результата в Экселе, а вот в MDX…

Попробуйте обратиться к внешним функциям через префикс Excel! или VBA!. Вот так:

Студия подчёркивает вызов функции Format красным — это ошибка? Ведь такой функции нет в языке MDX! Верно, нет. Но зато она есть в VBA.

Обращаться к функциям VBA можно либо через приставку «VBA!», либо через «VBAMDX.», а можно и вообще без префикса:

А ещё вы можете аналогичным образом задействовать функции Excel. Вот так:

Однако, прежде чем использовать такой «ход конём», примите во внимание три вещи.

Во-первых, вам доступны не все функции, а только те, использование которых в контексте MDX-запроса не противоречит здравому смыслу. Из всего богатства ВБА можете использовать вот эти девяносто функций:

Во-вторых, учтите, что если вам понадобятся функции из Экселя, то вам придётся установить сам эксель на машину с аналитическим сервером (следите за совпадением битности). И, кстати, экселевские функции также доступны далеко не все.

И в-третьих, не ждите от этого механизма высокой производительности. Если требуется высокомасштабируемое решение, то применять функции VBA и Excel следует с осторожностью.

Бесплатный
Комментарии
avatar
Здесь будут комментарии к публикации