Атрибут Value (<Parameter>)
Атрибут Value – значение (число либо переменная) в неравенстве, с которым сравнивается данные каждой строки столбца. Условие (знак) неравенства задает атрибут Condition .
В результате проверки каждой ячейки столбца при помощи неравенства (атриьбут Condition + атрибут Value ) остаются только те строки, которые удовлетворяют неравенству.
Пример неравенства:
<Parameter Name = "Сумма" Condition = "Less" Value = "100" /> ,
Математическим языком его можно записать следующим образом:
ячейки столбца “Сумма”<100. В результате фильтрации остануться только те ячейки, значение которых меньше 100.
Значением атрибута Value может быть:
1) числовое значение;
2) особое значение (переменная).
Особые значения (переменные) бывают двух видов:
BeginTime/EndTime - соответственно начало/окончание выбранного периода в каждом элементе отчета. Данные периоды в каждом отдельном случае могут быть разными, но интуитивно понятны.
Рассмотрим возможные варианты значений BeginTime/EndTime для различных периодов :
1. BeginTime и EndTime соответствуют началу и окончанию выбранного периода на ленте в Главная>Периоды>Период:
Показатели, рассчитанные на основании этих дат будут:
1.1 В полной сводной таблице, кроме первого блока “Период”:
1.2 В подсказках к блокам Полной сводной таблицы, кроме блока “Период”:
1.3.В таблицах, которые не содержат столбцов дат (см.вкладки Быстрая сводная таблица или Шахматка), например:
1.4 В диаграммах, в которых отсутствует ось с датами, например:
2. Различные BeginTime и EndTime для каждой отдельной точки на графике и равны началу и концу периода конкретно для данной точки.
BeginTime и EndTime будут зависеть от того, какой масштаб оси времени выбран: дни, недели, месяцы или года:
Например, для дней BeginTime и EndTime будут иметь следующие значения:
Для недель:
А, например для месяцев, такие:
3. Различные BeginTime и EndTime для отдельных временных сегментов, которые находятся в колонке временных периодов в таблице. Для каждого периода эти значения будут свои.
Что такое отдельный временной сегмент? Как правило это первый столбец даты в таблице:
1. в Полной сводной таблице (блок “Период”)
2) первый столбец с отдельными временными сегментами (Период, месяцы, дни недели) в Шахматке или Быстрой сводной таблице:
Также к ним относятся отдельные временные сегменты в диаграмме:
Значения BeginTime и EndTime будут зависеть от того, к какому конкретно временному сегменту относится показатель. Рассмотрим варианты, когда рассчитываемый показатель находится::
в таблице со стандартным столбцом “Период” (Канбан (старое название - Полная сводная таблица), Показатели (старое название - Быстрая сводная таблица))
2) в таблице с раздельными временными сегментами “Месяцы”:
3) в таблице с раздельными временными сегментами “Дни недели”:
4. Рассчитываемые BeginTime и EndTime как начало или конец текущего / прошлого / будущего месяца при использовании атрибута DateRange .
А трибут Value = "EndTime" можно использовать вместе с атрибутом тега <Filter> DateRange и Condition для получения данных за периоды, ограниченные началом/окончанием текущего/предыдущего/следующего месяца, например:
<Parameter Name = "Столбец с датами" DateRange = "Last month" Condition ="LessOrEqual" Value ="BeginTime" /> , т.е.мы получим массив данных с датами, начиная с самой ранней и до первого числа предыдущего месяца включительно.
Таким образом можно получить десятки различных комбинаций атрибутов DateRange , Condition и Value.
Пример фильтра, когда Value – числовое значение
Стоит задача отслеживать и анализировать продажи брауншвейгской колбасы, которая была продана по цене 400 ден.ед. и дешевле. Для этого создан такой фильтр:
<Filter Name = "Sausage Brunswick,Sum Less 400" >
<Parameter Name = "Product" >
<Cluster Name = "Sausage Brunswick" />
</Parameter>
<Parameter Name = "Unit Price" Condition = "LessOrEqual" Value = "400" />
</Filter>, где:
-
Filter Name=" Sausage Brunswick,Sum Less 400 " - наименование фильтра;
-
Parameter Name="Product" - название столбца, к которому применяется фильтр;
-
Cluster Name="Sausage Brunswick" - содержимое ячеек, на основании которых фильтруется таблица;
-
Parameter Name="Unit Price" - название второго столбца, к которому применяется фильтр;
-
Condition="LessOrEqual" - условие к данным столбца, которое отбирает только те ячейки, цена в которых меньше или равна 400;
-
Value=400 - атрибут, указывающий,что каждая ячейка в столбце "Unit Price" будет сравниваться с числом 400.
Затем добавив два показателя на основании данного фильтра (детально о пользовательских показателях можно узнать здесь), появилась возможность решить поставленную задачу и следить за продажами специфической группы товара описанной этом примере:
Найти эти показатели вы сможете в проекте CustomRatiosFilters.npt в Последних документах, скачав программу.
Пример фильтра, когда Value – особые значения:
Стоит задача отслеживать суммы по договорам, которые не оплачены и срок оплаты по которым уже прошел (с полным примером можно ознакомиться здесь) .
С этой целью создан фильтр:
<Filter Name = "Нет фактич.даты оплаты+Ожидаемая дата оплаты прошла" >
<Parameter Name = "Ожидаемая дата оплаты" Condition = "Less" Value = "EndTime" />
<Parameter Name = "Фактическая дата оплаты" Condition = "Empty" /> </Filter>, где:
-
Filter Name="Нет фактич.даты оплаты+Ожидаемая дата оплаты прошла" - наименование фильтра;
-
Parameter Name="Ожидаемая дата оплаты" - название столбца, к которому применяется фильтр;
-
Condition="Less" - условие к данным столбца, которое отбирает только те ячейки, дата которых уже прошла относительно конца выбранного периода;
-
Value="EndTime" - атрибут, который в качестве второго значения неравенства устанавливает дату окончания выбранного периода;
-
Parameter Name="Фактическая дата оплаты" - название столбца, к которому применяется фильтр;
-
Condition="Empty" - условие к данным столбца, которое отбирает только пустые ячейки, т.е оставляет только те ячейки, где нет Фактической даты оплаты .
В итоге на основании этого фильтра был создан показатель, который позволяет в любой удобный момент отследить суммы остатков, по которым уже прошли ожидаемые сроки оплаты: