逐步 - 使用自定义日历创建日历期间
本逐步演练演示如何使用自定义日历字段和标志创建日历期间。
可以使用自动日历或使用数据中的单个日期/时间字段来创建日历期间。您还可以使用包含二进制数据的字段来标记时间段,以便进行比较分析。
您可以使用自定义日历数据创建三种日历期间:
-
上次排序的值:上次排序值日历期间显示所选聚合字段中最近的期间。在支持比较的 Insight Advisor 分析(如秩分析)中,最后排序的值也显示前一个期间。
-
相对比较:相对日历期间使用包含当前日期中数据的相对期间的字段。它提供当前或以前期间与旧期间之间的比较。
-
标记比较:标记使用包含二进制数据的布尔值分量字段来标记两个时间段,以便进行比较分析。
为了演示相对期间比较,此应用程序的数据源包含未来日期的数据。加载脚本从数据源加载直至当前日期的数据。图像中的结果可能与您的结果不同,因为图像中显示的期间将发生变化。
入门
下载示例包并解压缩:
QVF 文件包含以下数据文件:
-
TutorialCustomCalendarData.xlsx
为了演示通过日历期间可能进行的相对比较,TutorialCustomCalendarData.xlsx 包含未来日期的数据。应用程序加载脚本为当前日期在加载时更新应用程序内数据。
在 Qlik Sense 中导入 QVF 文件并将 XLSX 文件附加到应用程序。导入应用程序并将数据文件附加到应用程序后,请在数据加载编辑器中加载应用程序数据。
示例数据
本例中使用的数据通过以下加载脚本加载:
Sales: LOAD City, Country, Customer, OrderDate, ProductID, Quantity, Sales, "Q4-2018", "Q1-2019", "Q2-2019", "Q3-2019", "Q4-2019", "Q1-2020", "Q2-2020", "Q3-2020", "Q4-2020", "Q1-2021", "Q2-2021", "Q3-2021", Month([OrderDate]) AS [Month], Year([OrderDate]) AS [Year], Day([OrderDate]) AS [Day], Dual(Year(OrderDate)&'-'&Month(OrderDate), monthstart(OrderDate)) AS [YearMonth], 12*Year(Today())+Month(Today())-12*Year(OrderDate)-Month(OrderDate) AS [MonthsAgo]
FROM [lib://AttachedFiles/TutorialCustomCalendarData.xlsx]
(ooxml, embedded labels, table is Sales) Where OrderDate <= Today(1);
加载脚本为 Year、Month 和 Day 创建单独字段。这三个字段用于创建以下计算字段:
-
YearMonth,其具有年份和月份信息。这是本例中用于聚合的主要字段。
-
MonthsAgo,其计算月份是否是相对于当前日期的特定月份。
数据还包含数据中涉及的不同季度的几个字段。这些字段包含二进制数据,指示 Sales 表中的每个值属于哪个会计季度。
任务
本演练将介绍如何创建三种不同类型的日历期间:
-
创建不带自动日历的自定义日历期间
-
创建相对日历期间
-
创建标记比较日历期间
使用上次排序的值创建日历期间
对于第一个日历期间,将使用最后一个排序的值为 YearMonth 创建一个日历期间。
执行以下操作:
-
在示例应用程序中,单击准备。
-
在商业逻辑下,选择逻辑模型。
-
单击创建日历期间。
-
选择 OrderDate。
-
对于日历期间名称,输入 Last sorted month。
-
对于聚合的日期,选择 YearMonth。
-
选择使用上次排序的值。
-
单击创建。
结果
导航至工作表,然后搜索 show me sales by customer。
选择图表 sum(Sales) by customer 并应用分析期间 Last sorted month。图表将更新以显示当前月份和上个月之间的比较。
创建相对比较日历期间
接下来,您将创建一个相对日历期间。相对日历期间需要:
-
包含时间段(年、月、季度等)的聚合字段。
-
包含从该字段到今天日期的日期的相对位置的字段。
然后从这些字段中定义偏移量。偏移量是所选时间段内两个比较期间与当前日期之间的相对差值。您可以将当前或以前的期间(在偏移量中设置为 0 或 1)与 12 个期间之前的较旧期间(在比较偏移量中设置为 1 到 12 之间的数字)进行比较。
对于这个日历期间,我们将使用 YearMonth 作为聚合字段,MonthsAgo 作为相对期间字段。我们想把本月与去年同月进行比较。
执行以下操作:
-
单击创建日历期间。
-
选择 OrderDate。
-
对于日历期间名称,输入 This month to this month last year。
-
对于聚合的日期,选择 YearMonth。
-
在之前相对期间下,选择 MonthsAgo。
-
在偏移量下,选择 0。
-
在比较偏移量下,选择 12。
-
单击创建。
结果
导航至工作表,然后搜索 show me sales by customer。
选择图表 sum(Sales) by customer 并应用分析期间 This month to this month last year。图表将更新以显示当前月份和去年当前月份之间的比较。
创建标记比较日历期间
标记比较日历期间使用两个字段从聚合日期字段标记两个单独的期间进行分析。
在示例应用程序数据中,不同的会计季度有单独的字段。每个字段都有二进制数据,指示相应的日期是否在季度中。您将使用这些与 YearMonth 来创建标志比较日历期间。
执行以下操作:
-
单击创建日历期间。
-
选择 OrderDate。
-
对于日历期间名称,输入 Q4 to Q3
-
对于聚合的日期,选择 YearMonth。
-
单击标记。
-
在当前期间标记下,选择 Q4-2020。
-
在比较期间标记下,选择 Q3-2020。
-
单击创建。
结果
导航至工作表,然后搜索 show me sales by customer。
选择图表 sum(Sales) by customer 并应用分析期间 Q4 to Q3。图表更新,显示 2020 年第四财季和 2020 年第三财季之间的比较。