Используйте функции Excel и VBA в MDX-запросах
Существует механизм, позволяющий из MDX-запроса обращаться к внешним функциям. Обычно для этого сначала требуется подключить внешнюю библиотеку с определением функции. Но две таких библиотеки уже подключены по-умолчанию.
А вы знаете, что из MDX-запроса можно вызывать экселевские (и ВБА) функции? Да, это то самое чувство, когда вы легко можете добиться желаемого результата в Экселе, а вот в MDX…
Попробуйте обратиться к внешним функциям через префикс Excel! или VBA!. Вот так:
Студия подчёркивает вызов функции Format красным — это ошибка? Ведь такой функции нет в языке MDX! Верно, нет. Но зато она есть в VBA.
Обращаться к функциям VBA можно либо через приставку «VBA!», либо через «VBAMDX.», а можно и вообще без префикса:
А ещё вы можете аналогичным образом задействовать функции Excel. Вот так:
Однако, прежде чем использовать такой «ход конём», примите во внимание три вещи.
Во-первых, вам доступны не все функции, а только те, использование которых в контексте MDX-запроса не противоречит здравому смыслу. Из всего богатства ВБА можете использовать вот эти девяносто функций:
Во-вторых, учтите, что если вам понадобятся функции из Экселя, то вам придётся установить сам эксель на машину с аналитическим сервером (следите за совпадением битности). И, кстати, экселевские функции также доступны далеко не все.
И в-третьих, не ждите от этого механизма высокой производительности. Если требуется высокомасштабируемое решение, то применять функции VBA и Excel следует с осторожностью.
0 комментариев