使用 QlikView 进行 YoY 比较
YoY comparison using QlikView
我的数据包含从去年三月到现在的每日数据。我想比较 2015/4 vs 2014/4 和 2015/4 vs 2015/3 的销售额
我的日期格式是 Date_Month
的 01,02,03,04,...,12,Date_Year
的日期格式是 2014,2015。
我先创建两个变量:
vCurrentYear=max(Date_Year)
vCurrentMonth=Max (Date_Month)
然后我创建一个条形图,我的表达式如下:
Last Year:
Sum({<[Date_Year]={$(=(vCurrentYear)-1)}Date_Month={"<=$(vCurrentMonth)"}>}[SALES_AMOUNT])
Current Year:
Sum({<[Date_Year]={$(vCurrentYear)},Date_Month={"<=$(vCurrentMonth)"}>}SALES_AMOUNT)
但结果只是将两年加在一起....而不是比较这两年。图link如下:
http://www.2shared.com/photo/xlG-XpI7/yoy.html
我想要一个包含不同年份的两个不同条形图的条形图,x 轴是 Date_Month。
我正在使用 QlikView 11.20.12664.0 SR9。
如果还没有,请确保将 Date_Month
字段添加为图表中的维度:
下图中左图是不加Date_Month
维度时的结果,右图是加了维度后的结果:
编辑:
看起来您的 "Last Year" 表达式不正确,您在 [Date_Year]={$(=(vCurrentYear)-1)}
和 Date_Month={"<=$(vCurrentMonth)"}
之间缺少一个逗号,即:
Sum({<[Date_Year]={$(=(vCurrentYear)-1)}, Date_Month={"<=$(vCurrentMonth)"}>}[SALES_AMOUNT])
编辑 2
另外,请确保您的变量是在 "Variable Overview" 对话框而不是脚本中定义的:
编辑 3
另一件要检查的事情是,您在 Set Analysis 表达式中引用的字段名称与加载到 QV 中的数据中的字段名称相同。
在您的源数据中,您有 DATE_MONTH
和 DATE_YEAR
,但是,在您问题的表达式(和变量)中,您有 Date_Year
和 Date_Month
. QV 中的字段 区分大小写 ,因此,您的表达式将无法正确计算。
在这种情况下,根据您的源数据,我建议您将变量和字段更改为以下内容:
变量:
vCurrentYear = max(DATE_YEAR)
vCurrentMonth = max(DATE_MONTH)
表达式:
sum({<DATE_YEAR={$(=(vCurrentYear)-1)}, DATE_MONTH={"<=$(vCurrentMonth)"}>} SALES_AMOUNT)
sum({<DATE_YEAR={$(vCurrentYear)}, DATE_MONTH={"<=$(vCurrentMonth)"}>} SALES_AMOUNT)
我的数据包含从去年三月到现在的每日数据。我想比较 2015/4 vs 2014/4 和 2015/4 vs 2015/3 的销售额
我的日期格式是 Date_Month
的 01,02,03,04,...,12,Date_Year
的日期格式是 2014,2015。
我先创建两个变量:
vCurrentYear=max(Date_Year)
vCurrentMonth=Max (Date_Month)
然后我创建一个条形图,我的表达式如下:
Last Year:
Sum({<[Date_Year]={$(=(vCurrentYear)-1)}Date_Month={"<=$(vCurrentMonth)"}>}[SALES_AMOUNT])
Current Year:
Sum({<[Date_Year]={$(vCurrentYear)},Date_Month={"<=$(vCurrentMonth)"}>}SALES_AMOUNT)
但结果只是将两年加在一起....而不是比较这两年。图link如下:
http://www.2shared.com/photo/xlG-XpI7/yoy.html
我想要一个包含不同年份的两个不同条形图的条形图,x 轴是 Date_Month。
我正在使用 QlikView 11.20.12664.0 SR9。
如果还没有,请确保将 Date_Month
字段添加为图表中的维度:
下图中左图是不加Date_Month
维度时的结果,右图是加了维度后的结果:
编辑:
看起来您的 "Last Year" 表达式不正确,您在 [Date_Year]={$(=(vCurrentYear)-1)}
和 Date_Month={"<=$(vCurrentMonth)"}
之间缺少一个逗号,即:
Sum({<[Date_Year]={$(=(vCurrentYear)-1)}, Date_Month={"<=$(vCurrentMonth)"}>}[SALES_AMOUNT])
编辑 2 另外,请确保您的变量是在 "Variable Overview" 对话框而不是脚本中定义的:
编辑 3 另一件要检查的事情是,您在 Set Analysis 表达式中引用的字段名称与加载到 QV 中的数据中的字段名称相同。
在您的源数据中,您有 DATE_MONTH
和 DATE_YEAR
,但是,在您问题的表达式(和变量)中,您有 Date_Year
和 Date_Month
. QV 中的字段 区分大小写 ,因此,您的表达式将无法正确计算。
在这种情况下,根据您的源数据,我建议您将变量和字段更改为以下内容:
变量:
vCurrentYear = max(DATE_YEAR)
vCurrentMonth = max(DATE_MONTH)
表达式:
sum({<DATE_YEAR={$(=(vCurrentYear)-1)}, DATE_MONTH={"<=$(vCurrentMonth)"}>} SALES_AMOUNT)
sum({<DATE_YEAR={$(vCurrentYear)}, DATE_MONTH={"<=$(vCurrentMonth)"}>} SALES_AMOUNT)