1

我希望能够将 KPI(比方说营业额)限制在我通过设置两个变量选择的特定时间范围内:下限和上限。

我创建了两个表,它们是从日历表中派生的。

month_start:
LOAD MonthYear as MonthStart
RESIDENT Calendar;

month_end:
LOAD MonthYear as MonthEnd
RESIDENT Calendar;

我创建了两个过滤器,一个用于 MonthStart,一个用于 MonthEnd。

我设置了两个变量。我知道它GetFieldSelections()返回一个字符串,所以我将它转换回一个日期。

=date#(GetFieldSelections(MonthEnd), 'MM YYYY')

=date#(GetFieldSelections(MonthStart), 'MM YYYY')

最后我使用这个表达式来计算 KPI:

SUM({$< MonthYear = {"<$(=vEndMonth)>=$(=vStartMonth)"}>} [turnover])

但它不起作用。我得到 0,00 欧元。

我究竟做错了什么?我错过了什么?

编辑:

示例数据:

LOAD *
Inline [
%date, country, turnover
01.01.2021, DE, 1000
10.01.2021, AT, 2000
23.01.2021, CH, 1500
12.02.2021, DE, 2300
23.02.2021, DE, 5000
02.02.2021, CH, 1200
09.03.2021, AT, 3000
10.03.2021, CH, 1000
31.03.2021, DE, 3400
01.04.2021, CH, 2200
]

有一个附加到%date-field的日历,其中MonthYear-field 创建为monthname(%date) as MonthYear

结果,我想要一个具有country行维和MonthYear列的数据透视表。度量是具有上述公式的主元素。

4

2 回答 2

1

您可以使用月、月/年等。但最简单的方法是在日历和变量中使用日期。

确保您的日历有一个非汇总日期,如下所示:

Calendar:
Load
TempDate            as %date,
Date(TempDate)      as Date,
monthname(TempDate) as MonthYear,
Month(TempDate)     as Month,
Year(TempDate)      as year

然后像这样创建结束和开始字段:

[month_start]:
Load Distinct
MonthStart(Date) as MonthStart
RESIDENT Calendar;

[month_end]:
Load Distinct
MonthEnd(Date) as MonthEnd
RESIDENT Calendar;

你的变量没问题。然后像这样创建您的度量(请参阅该字段是日历中的“日期”字段:

SUM(
    {$<
        Date = {">=$(=vStartMonth)<$(=vEndMonth)"}
    >}
[turnover])

应该管用。让我知道。

此致,

于 2022-02-18T22:14:10.247 回答
0

请为 MonthYear 创建选择框,然后使用 Ctrl 选择需要的值。

请与您的数据和所需的输出共享小表,以便我将与您分享确切的示例脚本,例如:

SUM({$< MonthYear = {"<$(=Max(MonthYear))>=$(=Min(MonthYear))"}>} [turnover])
于 2021-11-10T15:12:54.533 回答