437 lines
15 KiB
Plaintext
437 lines
15 KiB
Plaintext
table 'План продаж по группам'
|
||
|
||
measure 'План продаж месяц, usd' = ```
|
||
|
||
|
||
VAR PlanGroups =
|
||
SUMMARIZE(
|
||
'Номенклатура',
|
||
'Группы'[first group],
|
||
'Номенклатура'[Менеджер по закупкам],
|
||
'Номенклатура'[Товарный менеджер]
|
||
)
|
||
|
||
VAR FilterPlanGroups =
|
||
TREATAS(
|
||
PlanGroups,
|
||
'План продаж по группам'[group_id],
|
||
'План продаж по группам'[Менеджер по закупкам],
|
||
'План продаж по группам'[Товарный менеджер]
|
||
)
|
||
|
||
VAR Result =
|
||
CALCULATE(
|
||
SUM('План продаж по группам'[План продаж, usd]), KEEPFILTERS(FilterPlanGroups),
|
||
FILTER('План продаж по группам',MONTH('План продаж по группам'[Месяц]) = MONTH(MAX('.Календарь'[Дата]))),
|
||
FILTER('План продаж по группам',YEAR('План продаж по группам'[Месяц]) = YEAR(MAX('.Календарь'[Дата])))
|
||
)
|
||
|
||
RETURN Result
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам usd
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
measure 'План год, usd' = ```
|
||
|
||
|
||
VAR PlanGroups =
|
||
SUMMARIZE(
|
||
'Номенклатура',
|
||
'Группы'[first group],
|
||
'Номенклатура'[Менеджер по закупкам],
|
||
'Номенклатура'[Товарный менеджер]
|
||
)
|
||
|
||
VAR FilterPlanGroups =
|
||
TREATAS(
|
||
PlanGroups,
|
||
'План продаж по группам'[group_id],
|
||
'План продаж по группам'[Менеджер по закупкам],
|
||
'План продаж по группам'[Товарный менеджер]
|
||
)
|
||
|
||
VAR Result =
|
||
CALCULATE(
|
||
SUM('План продаж по группам'[План продаж, usd]), KEEPFILTERS(FilterPlanGroups),
|
||
FILTER('План продаж по группам',YEAR('План продаж по группам'[Месяц]) = YEAR(MAX('.Календарь'[Дата])))
|
||
)
|
||
|
||
RETURN Result
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам usd
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
measure '% план год' = ```
|
||
|
||
DIVIDE (
|
||
[Сумма продаж + РК, usd], [План год, usd], BLANK()
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам usd
|
||
|
||
measure '% план месяц' = ```
|
||
|
||
DIVIDE (
|
||
[Сумма продаж + РК, usd], [План продаж месяц, usd], BLANK()
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам usd
|
||
|
||
measure 'Аппроксимация год, usd' = ```
|
||
|
||
VAR CySales = [Сумма продаж + РК, usd]
|
||
|
||
VAR LastSalesDay =
|
||
INT(
|
||
LASTNONBLANK('.Календарь'[Дата], [Сумма продаж + РК, usd] > 0) -
|
||
STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
|
||
VAR YearDays =
|
||
INT(
|
||
ENDOFYEAR('.Календарь'[Дата].[Date]) - STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
VAR Approx =
|
||
IF(
|
||
NOT ISBLANK ( CySales ),
|
||
DIVIDE(
|
||
'Основной отчет'[YTD Сумма продаж с начала года, usd] * YearDays ,
|
||
LastSalesDay
|
||
)
|
||
)
|
||
RETURN Approx
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам usd
|
||
|
||
measure 'Аппроксимация месяц, usd' = ```
|
||
|
||
VAR CySales = [Сумма продаж + РК, usd]
|
||
VAR LastSalesDay = DAY(LASTNONBLANK('.Календарь'[Дата], [Сумма продаж + РК, usd] > 0))
|
||
VAR MonthDays = DAY(EOMONTH(MAX('.Календарь'[Дата]), 0))
|
||
VAR Approx =
|
||
IF(
|
||
NOT ISBLANK ( CySales ),
|
||
DIVIDE(
|
||
'Основной отчет'[MTD Сумма продаж с начала месяца, usd] * MonthDays ,
|
||
LastSalesDay
|
||
)
|
||
)
|
||
RETURN Approx
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам usd
|
||
|
||
measure 'Аппроксим. год usd, %' = ```
|
||
|
||
DIVIDE(
|
||
[Аппроксимация год, usd], [План год, usd]
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам usd
|
||
|
||
measure 'Аппроксим. месяц usd, %' = ```
|
||
|
||
DIVIDE(
|
||
[Аппроксимация месяц, usd], [План продаж месяц, usd]
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам usd
|
||
|
||
measure 'Аппроксимация год, шт' = ```
|
||
|
||
VAR CySales = [Количество продаж, шт]
|
||
|
||
VAR LastSalesDay =
|
||
INT(
|
||
LASTNONBLANK('.Календарь'[Дата], [Количество продаж, шт] > 0) -
|
||
STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
|
||
VAR YearDays =
|
||
INT(
|
||
ENDOFYEAR('.Календарь'[Дата].[Date]) - STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
VAR Approx =
|
||
IF(
|
||
NOT ISBLANK ( CySales ),
|
||
DIVIDE(
|
||
'Основной отчет'[YTD Сумма продаж с начала года, шт] * YearDays ,
|
||
LastSalesDay
|
||
)
|
||
)
|
||
RETURN Approx
|
||
```
|
||
formatString: #,0
|
||
|
||
measure 'План закупки ост. период, шт' = ```
|
||
|
||
[Аппроксимация год, шт]
|
||
- [YTD Сумма продаж с начала года, шт]
|
||
- 'Заказы все'[В производстве кол]
|
||
- 'Заказы все'[В пути кол.]
|
||
- [Остаток - МП конец, шт]
|
||
+ [Остаток - МП средний, шт]
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План закупки
|
||
|
||
measure 'План закупки ост. период, руб' =
|
||
|
||
SUMX('Номенклатура',
|
||
[Учетная цена (руб)] * [План закупки ост. период, шт] / 1000)
|
||
formatString: #,0
|
||
displayFolder: План закупки
|
||
|
||
measure 'План закупки ост. период, usd' =
|
||
|
||
DIVIDE([План закупки ост. период, руб], [Курс TODAY-1, usd2], 0)
|
||
formatString: #,0
|
||
displayFolder: План закупки
|
||
|
||
measure 'План год, руб' = ```
|
||
|
||
|
||
VAR PlanGroups =
|
||
SUMMARIZE(
|
||
'Номенклатура',
|
||
'Группы'[first group],
|
||
'Номенклатура'[Менеджер по закупкам],
|
||
'Номенклатура'[Товарный менеджер]
|
||
)
|
||
|
||
VAR FilterPlanGroups =
|
||
TREATAS(
|
||
PlanGroups,
|
||
'План продаж по группам'[group_id],
|
||
'План продаж по группам'[Менеджер по закупкам],
|
||
'План продаж по группам'[Товарный менеджер]
|
||
)
|
||
|
||
VAR Result =
|
||
CALCULATE(
|
||
SUM('План продаж по группам'[План продаж, руб]), KEEPFILTERS(FilterPlanGroups),
|
||
FILTER('План продаж по группам',YEAR('План продаж по группам'[Месяц]) = YEAR(MAX('.Календарь'[Дата])))
|
||
)
|
||
|
||
RETURN Result
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам руб
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
measure 'План продаж месяц, руб' = ```
|
||
|
||
|
||
VAR PlanGroups =
|
||
SUMMARIZE(
|
||
'Номенклатура',
|
||
'Группы'[first group],
|
||
'Номенклатура'[Менеджер по закупкам],
|
||
'Номенклатура'[Товарный менеджер]
|
||
)
|
||
|
||
VAR FilterPlanGroups =
|
||
TREATAS(
|
||
PlanGroups,
|
||
'План продаж по группам'[group_id],
|
||
'План продаж по группам'[Менеджер по закупкам],
|
||
'План продаж по группам'[Товарный менеджер]
|
||
)
|
||
|
||
VAR Result =
|
||
CALCULATE(
|
||
SUM('План продаж по группам'[План продаж, руб]), KEEPFILTERS(FilterPlanGroups),
|
||
FILTER('План продаж по группам',MONTH('План продаж по группам'[Месяц]) = MONTH(MAX('.Календарь'[Дата]))),
|
||
FILTER('План продаж по группам',YEAR('План продаж по группам'[Месяц]) = YEAR(MAX('.Календарь'[Дата])))
|
||
)
|
||
|
||
RETURN Result
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам руб
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
measure '% план год (р)' = ```
|
||
|
||
DIVIDE (
|
||
[Сумма продаж + РК, руб], [План год, руб], BLANK()
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам руб
|
||
|
||
measure '% план месяц (р)' = ```
|
||
|
||
DIVIDE (
|
||
[Сумма продаж + РК, руб], [План продаж месяц, руб], BLANK()
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам руб
|
||
|
||
measure 'Аппроксимация год по группам, руб' = ```
|
||
|
||
VAR CySales = [Сумма продаж + РК, руб]
|
||
|
||
VAR LastSalesDay =
|
||
INT(
|
||
LASTNONBLANK('.Календарь'[Дата], [Сумма продаж + РК, руб] > 0) -
|
||
STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
|
||
VAR YearDays =
|
||
INT(
|
||
ENDOFYEAR('.Календарь'[Дата].[Date]) - STARTOFYEAR('.Календарь'[Дата].[Date])
|
||
) + 1
|
||
|
||
VAR Approx =
|
||
IF(
|
||
NOT ISBLANK ( CySales ),
|
||
DIVIDE(
|
||
'Основной отчет'[YTD Сумма продаж с начала года, руб] * YearDays ,
|
||
LastSalesDay
|
||
)
|
||
)
|
||
RETURN Approx
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам руб
|
||
|
||
measure 'Аппроксимация месяц по группам, руб' = ```
|
||
|
||
VAR CySales = [Сумма продаж + РК, руб]
|
||
VAR LastSalesDay = DAY(LASTNONBLANK('.Календарь'[Дата], [Сумма продаж + РК, руб] > 0))
|
||
VAR MonthDays = DAY(EOMONTH(MAX('.Календарь'[Дата]), 0))
|
||
VAR Approx =
|
||
IF(
|
||
NOT ISBLANK ( CySales ),
|
||
DIVIDE(
|
||
'Основной отчет'[MTD Сумма продаж с начала месяца, руб] * MonthDays ,
|
||
LastSalesDay
|
||
)
|
||
)
|
||
RETURN Approx
|
||
```
|
||
formatString: #,0
|
||
displayFolder: План по группам руб
|
||
|
||
measure 'Аппроксим. год по группам руб, %' = ```
|
||
|
||
DIVIDE(
|
||
[Аппроксимация год по группам, руб], [План год, руб]
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам руб
|
||
|
||
measure 'Аппроксим. месяц по группам руб, %' = ```
|
||
|
||
DIVIDE(
|
||
[Аппроксимация месяц по группам, руб], [План продаж месяц, руб]
|
||
)
|
||
```
|
||
formatString: 0.00%;-0.00%;0.00%
|
||
displayFolder: План по группам руб
|
||
|
||
column Месяц
|
||
dataType: dateTime
|
||
isHidden
|
||
formatString: Long Date
|
||
summarizeBy: none
|
||
sourceColumn: Месяц
|
||
|
||
variation Изменение
|
||
isDefault
|
||
relationship: 6bdd8855-c6d2-4c21-b90f-cb9f0b0bd52e
|
||
defaultHierarchy: LocalDateTable_704570fc-e0c6-4914-97ab-ebb645a2ab6e.'Иерархия дат'
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation UnderlyingDateTimeDataType = Date
|
||
|
||
column 'План продаж, usd'
|
||
dataType: double
|
||
isHidden
|
||
formatString: #,0
|
||
summarizeBy: sum
|
||
sourceColumn: План продаж, usd
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
column group_id
|
||
dataType: string
|
||
isHidden
|
||
summarizeBy: none
|
||
sourceColumn: group_id
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column 'Товарный менеджер'
|
||
dataType: string
|
||
isHidden
|
||
summarizeBy: none
|
||
sourceColumn: Товарный менеджер
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column 'Менеджер по закупкам'
|
||
dataType: string
|
||
isHidden
|
||
summarizeBy: none
|
||
sourceColumn: Менеджер по закупкам
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
column 'План продаж, руб' = 'План продаж по группам'[План продаж, usd] * 102
|
||
isHidden
|
||
formatString: #,0
|
||
summarizeBy: sum
|
||
|
||
changedProperty = IsHidden
|
||
|
||
annotation SummarizationSetBy = Automatic
|
||
|
||
annotation PBI_FormatHint = {"isDecimal":true}
|
||
|
||
partition 'План продаж по группам' = m
|
||
mode: import
|
||
source =
|
||
let
|
||
Источник = Sql.Database("prdsql", "mag_pbi"),
|
||
pbi_ПланыПродажПоГруппам = Источник{[Schema="pbi",Item="ПланыПродажПоГруппам"]}[Data],
|
||
#"Измененный тип" = Table.TransformColumnTypes(pbi_ПланыПродажПоГруппам,{{"Месяц", type date}}),
|
||
#"Переименованные столбцы" = Table.RenameColumns(#"Измененный тип",{{"План продаж", "План продаж, usd"}})
|
||
in
|
||
#"Переименованные столбцы"
|
||
|
||
annotation PBI_ResultType = Table
|
||
|