|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Набор 3{ ([Дата].[Месяц].[Янв]), ([Дата].[Месяц].[Фев]), ([Дата].[Месяц].[Мар]), ([Дата].[Месяц].[Апр]), ([Дата].[Месяц].[Май]), ([Дата].[Месяц].[Июн]) } Разберем возможные варианты сортировок. Что произойдет, если отсортировать по убыванию параметра «Сумма» набор 3 (вариант 1 на рис. 7)? Формула КУБМНОЖ() при этом примет вид: КУБМНОЖ(«OLAP_Connection»;H2:H7;»Множество: [Сумма]»;2;»[Сумма]»). Параметр «Сорт_По» определяет контекст оператора Order(). Для всех измерений, не указанных в наборе 3, в качестве текущего значения будет выбираться значение по умолчанию, а для оси Measures — элемент «Сумма». Элемент [All] выбирается и для измерения [План_Факт], поэтому сортировка набора 3 в первом случае ведется по убыванию месячных значений показателя ([План]+[Факт]). Как видно из рис. 2, в июне сумма плановых и фактических продаж максимальна и равна 2322. Соответственно данный месяц располагается на первом месте итогового отсортированного набора. Затем идет март с показателем 2083, за ним апрель — 1990 и т.д. Набор, составленный из упорядоченных таким образом месяцев, откладывается на оси Y отчета, но в самом отчете показываются данные по фактическим продажам (на оси Х отчета размещено значение [Факт]). Поэтому в отчетной форме (отмечена индексом 1 на рис. 2) для июня значение показателя «Сумма» равно 919, а для второго месяца, марта, — 1399. Изменим условия сортировки и зададим в качестве параметра «Сорт_По» кортеж ([План], [Сумма]) (вариант 2 на рис. 7). Для этого перепишем функцию КУБМНОЖ(): КУБМНОЖ(«OLAP_Connec-tion»;H2:H7;»Множество: ([План], [Сумма])»;2;»([План],[Сумма])») В новой редакции параметр «Сорт_По» определяет срез пространства не только по мере Measures, но и по измерению [План_Факт]. Элемент [All] из указанного измерения заменен на элемент [План ]. Результат проведенной замены виден в отчетной форме № 2. В форме, как и раньше, показываются данные о фактических продажах, но при этом месяцы упорядочены по убыванию плановых значений. Внимание читателей хочется обратить на то, что контекст выражения не изменил глобальный контекст отчета — значения денежных показателей остались такими же, как и в форме № 1. Изменился лишь порядок их следования. Перейдем к более сложному случаю и посмотрим, как будет выполняться сортировка набора 2. Указанный набор состоит из элементов не одного измерения (Месяц), а двух — кортежей (Факт, Месяц). По сути в отчете № 3 определен такой же срез многомерного пространства, как и в отчете № 1. В обоих случаях показываются одни и те же данные по фактическим продажам, сгруппированные по месяцам. Однако, сходные по «содержанию», они различаются по «форме»: в отчете № 1 измерение [План_Факт] размещено на оси Х, а в отчете № 3 — на оси Y. Как же теперь будет работать формула КУБМНОЖ(«OLAP_Connection»;H2:H7;»Множество: [Сумма]»;2;»[Сумма]»)? Параметр «Сорт_По», равный одному элементу [Сумма], определяет контекст выражения. Поскольку контекст выражения не детализирует срез данных по оси [План_Факт], он вычисляется на основании глобального контекста, который для набора 3 равен элементу [Факт]. Поэтому в данном случае сортировка в функции КУБМНОЖ() будет выполняться по убыванию фактических месячных значений. Форма № 3 на рис. 7 служит тому наглядным доказательством. В завершение рассмотрим самый нетривиальный случай. У нас есть набор 3, в котором определена координата [Факт] по измерению [План_Факт], но мы, как и прежде, хотим отсортировать набор по убыванию плановых значений. Последняя редакция формулы КУБМНОЖ() по написанию совпадает с вариантом 2: КУБМНОЖ(«OLAP_Connection»;H2:H7;»Множество: ([План], [Сумма])»;2;»([План],[Сумма])») Для набора 3 формула работает следующим образом. На основании параметра «Сорт_По» определяется контекст выражения для оператора Order(), сортирующего набор. Как говорилось выше, контекст выражения переопределяет глобальный контекст в пределах одной формулы, поэтому сортировка набора 3 будет осуществляться в разрезе (План, Месяц), хотя в наборе до этого был явно указан элемент [Факт]. Отсор-тированный набор используется далее для составления отчета. Отчет же исполняется в рамках глобального контекста, который никак не зависит от контекста выражения команды Order(). Для оси [План_Факт] глобальный контекст задан в виде элемента [Факт]. Поэтому в отчетной форме № 4 мы видим весьма интересную конструкцию. Набор 2 отсортирован по убыванию плановых значений. В ячейках на листе книги Microsoft Excel показываются только его крайние правые элементы. Поэтому с точки зрения пользователя он идентичен набору 3. Но набор 2 сразу отбирает только фактические значения из многомерного пространства, которые мы и видим в итоговом отчете № 4. Искренне надеюсь, что несколько растянувшееся знакомство с режимом сортировки по мере не отбило у читателей желание двигаться дальше. Тем более что оставшиеся режимы довольно просты для понимания. Режимы 3 и 4 позволяют упорядочивать набор в лексикографическом порядке по последнему элементу в каждом кортеже. Режимы 5 и 6 сортируют набор по ключевым значениям элементов, входящих в кортеж. Натуральное возрастание в данном случае означает, что набор последовательно упорядочивается сначала по ключевым значениям первых элементов из кортежа, затем — вторых и т.д. Для демонстрации данного принципа в последний раз в этой статье обратимся к наглядным примерам. Допустим, у нас есть два множества: Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.) |