在 Qlik 中选择任何 KPI 框的动态图表
Dynamic Chart from selection of any KPI boxes in Qlik
我是 Qlik 开发的新手,我正在 Qlik 中构建我的第一个仪表板。我目前有一个正在开发的仪表板,在其主要 Sheet 上添加了 11 个多 KPI,显示了它所显示的度量的各种汇总值,并且效果很好。
我现在要做的是添加一个带有我离开的 space 的图表(图表 1)(附上仪表板示例图片),但我想要的是默认显示 13 周内第一个 KPI 趋势的图表(将创建此图表)。我的主要问题是,此图表是否可能是动态的,以便我可以单击任何 KPI 来更改图表以显示单击的 KPI 的图表?
当双击 KPI 时,这将进入一个单独的仪表板,所以我不确定这是否可行。
如果有人能澄清这是否是可以实现的,我将不胜感激,因为我不确定我是否必须使用一些 Javascript 或者是否有允许我构建它的功能在 Qlik 本身。
我附上了一个包含 2 个解决方案的示例:
第一个是使用替代措施制定的,因此对于每个 KPI,我都采用了替代措施。在我之前的评论中,我提到替代方案的数量可能有限制 dimensions/measures,但经过一些测试后它似乎并不像(至少 12 个工作)。这种方法的缺点是它不保存替代措施的顺序,但每次选择时它都会改变。
第二种解决方案是使用过滤器对象,如我之前的评论所述:
Make a single line chart that depends on a variable for it's
title/measure/dimension and combine this with a filter object where
you can change this variable (all options are one of your KPI's). This
does change your page a little since you need to have a filter object
as well;
两者都应该有效,但最终还是要看个人喜好。
附件:https://drive.google.com/file/d/1wRgStl23DfcI5arQTZmt3w_0DEtW5iuf/view?usp=sharing
因为我不能保证这个 google 驱动器 link 会永远运行,这里是步骤:
解决方案一:备选措施:
在数据加载编辑器中,我创建了一个包含以下虚拟数据的新部分:
LOAD * Inline [
Weeks, KPI1, KPI2, KPI3, KPI4, KPI5, KPI6, KPI7, KPI8, KPI9, KPI10, KPI11, KPI12
1, 1, 2, 0, 3, 5, 1, 1, 2, 0, 3, 5, 3
2, 2, 4, 0, 8, 5, 2, 2, 4, 0, 8, 5, 3
3, 3, 6, 1, 4, 5, 3, 3, 6, 1, 4, 5, 3
4, 4, 8, 1, 7, 6, 4, 4, 8, 1, 7, 6, 3
5, 5, 10, 2, 0, 7, 5, 5, 10, 2, 0, 7, 3
6, 6, 12, 2, 9, 7, 6, 6, 12, 2, 9, 7, 3
7, 7, 14, 3, 13, 7, 7, 7, 14, 3, 13, 7, 3
8, 8, 16, 3, 6, 8, 8, 8, 16, 3, 6, 8, 3
9, 9, 18, 4, 1, 8, 9, 9, 18, 4, 1, 8, 3
10, 10, 4, 3, 9, 10, 10, 10, 4, 3, 9, 10, 3
11, 11, 5, 3, 9, 10, 11, 11, 5, 3, 9, 10, 3
12, 12, 5, 8, 9, 10, 12, 12, 5, 8, 9, 10, 3
];
然后我向页面添加了一个 "Line chart" 对象并给它度量 "Weeks"。我还添加了一个带有表达式的度量:KPI1。然后我为每个 KPI 添加了 11 个以完全相同的方式衡量的备选方案。所以像这样:
结果应该是:
方案二:过滤对象
在数据加载编辑器中,我创建了一个包含以下虚拟数据的新部分:
LOAD * Inline [
Weeks, KPI1, KPI2, KPI3, KPI4, KPI5, KPI6, KPI7, KPI8, KPI9, KPI10, KPI11, KPI12
1, 1, 2, 0, 3, 5, 1, 1, 2, 0, 3, 5, 3
2, 2, 4, 0, 8, 5, 2, 2, 4, 0, 8, 5, 3
3, 3, 6, 1, 4, 5, 3, 3, 6, 1, 4, 5, 3
4, 4, 8, 1, 7, 6, 4, 4, 8, 1, 7, 6, 3
5, 5, 10, 2, 0, 7, 5, 5, 10, 2, 0, 7, 3
6, 6, 12, 2, 9, 7, 6, 6, 12, 2, 9, 7, 3
7, 7, 14, 3, 13, 7, 7, 7, 14, 3, 13, 7, 3
8, 8, 16, 3, 6, 8, 8, 8, 16, 3, 6, 8, 3
9, 9, 18, 4, 1, 8, 9, 9, 18, 4, 1, 8, 3
10, 10, 4, 3, 9, 10, 10, 10, 4, 3, 9, 10, 3
11, 11, 5, 3, 9, 10, 11, 11, 5, 3, 9, 10, 3
12, 12, 5, 8, 9, 10, 12, 12, 5, 8, 9, 10, 3
];
LOAD * Inline [
KPI,
KPI1,
KPI2,
KPI3,
KPI4,
KPI5,
KPI6,
KPI7,
KPI8,
KPI9,
KPI10,
KPI11,
KPI12
];
然后我向页面添加了一个 "Line chart" 对象并给它度量 "Weeks"。我还使用以下表达式添加了一个度量:
= if(WildMatch(GetFieldSelections(KPI), 'KPI1') = 1, KPI1,
if(WildMatch(GetFieldSelections(KPI), 'KPI2') = 1, KPI2,
if(WildMatch(GetFieldSelections(KPI), 'KPI3') = 1, KPI3,
if(WildMatch(GetFieldSelections(KPI), 'KPI4') = 1, KPI4,
if(WildMatch(GetFieldSelections(KPI), 'KPI5') = 1, KPI5,
if(WildMatch(GetFieldSelections(KPI), 'KPI6') = 1, KPI6,
if(WildMatch(GetFieldSelections(KPI), 'KPI7') = 1, KPI7,
if(WildMatch(GetFieldSelections(KPI), 'KPI8') = 1, KPI8,
if(WildMatch(GetFieldSelections(KPI), 'KPI9') = 1, KPI9,
if(WildMatch(GetFieldSelections(KPI), 'KPI10') = 1, KPI10,
if(WildMatch(GetFieldSelections(KPI), 'KPI11') = 1, KPI11,
if(WildMatch(GetFieldSelections(KPI), 'KPI12') = 1, KPI12,
))))))))))))
之后,我向页面添加了一个新的 "Filter object",维度为:KPI。作为最后一步,我转到 "Fields" -> 右键单击 "KPI" -> 单击 "Field settings" -> 检查 "Always one selected value" -> 单击 "Save"。
像这样:
就是这样,现在您有了一个影响折线图的过滤器对象。
希望对您有所帮助,如果有任何不清楚的地方,请告诉我。
我是 Qlik 开发的新手,我正在 Qlik 中构建我的第一个仪表板。我目前有一个正在开发的仪表板,在其主要 Sheet 上添加了 11 个多 KPI,显示了它所显示的度量的各种汇总值,并且效果很好。
我现在要做的是添加一个带有我离开的 space 的图表(图表 1)(附上仪表板示例图片),但我想要的是默认显示 13 周内第一个 KPI 趋势的图表(将创建此图表)。我的主要问题是,此图表是否可能是动态的,以便我可以单击任何 KPI 来更改图表以显示单击的 KPI 的图表?
当双击 KPI 时,这将进入一个单独的仪表板,所以我不确定这是否可行。
如果有人能澄清这是否是可以实现的,我将不胜感激,因为我不确定我是否必须使用一些 Javascript 或者是否有允许我构建它的功能在 Qlik 本身。
我附上了一个包含 2 个解决方案的示例:
第一个是使用替代措施制定的,因此对于每个 KPI,我都采用了替代措施。在我之前的评论中,我提到替代方案的数量可能有限制 dimensions/measures,但经过一些测试后它似乎并不像(至少 12 个工作)。这种方法的缺点是它不保存替代措施的顺序,但每次选择时它都会改变。
第二种解决方案是使用过滤器对象,如我之前的评论所述:
Make a single line chart that depends on a variable for it's title/measure/dimension and combine this with a filter object where you can change this variable (all options are one of your KPI's). This does change your page a little since you need to have a filter object as well;
两者都应该有效,但最终还是要看个人喜好。
附件:https://drive.google.com/file/d/1wRgStl23DfcI5arQTZmt3w_0DEtW5iuf/view?usp=sharing
因为我不能保证这个 google 驱动器 link 会永远运行,这里是步骤:
解决方案一:备选措施:
在数据加载编辑器中,我创建了一个包含以下虚拟数据的新部分:
LOAD * Inline [
Weeks, KPI1, KPI2, KPI3, KPI4, KPI5, KPI6, KPI7, KPI8, KPI9, KPI10, KPI11, KPI12
1, 1, 2, 0, 3, 5, 1, 1, 2, 0, 3, 5, 3
2, 2, 4, 0, 8, 5, 2, 2, 4, 0, 8, 5, 3
3, 3, 6, 1, 4, 5, 3, 3, 6, 1, 4, 5, 3
4, 4, 8, 1, 7, 6, 4, 4, 8, 1, 7, 6, 3
5, 5, 10, 2, 0, 7, 5, 5, 10, 2, 0, 7, 3
6, 6, 12, 2, 9, 7, 6, 6, 12, 2, 9, 7, 3
7, 7, 14, 3, 13, 7, 7, 7, 14, 3, 13, 7, 3
8, 8, 16, 3, 6, 8, 8, 8, 16, 3, 6, 8, 3
9, 9, 18, 4, 1, 8, 9, 9, 18, 4, 1, 8, 3
10, 10, 4, 3, 9, 10, 10, 10, 4, 3, 9, 10, 3
11, 11, 5, 3, 9, 10, 11, 11, 5, 3, 9, 10, 3
12, 12, 5, 8, 9, 10, 12, 12, 5, 8, 9, 10, 3
];
然后我向页面添加了一个 "Line chart" 对象并给它度量 "Weeks"。我还添加了一个带有表达式的度量:KPI1。然后我为每个 KPI 添加了 11 个以完全相同的方式衡量的备选方案。所以像这样:
结果应该是:
方案二:过滤对象
在数据加载编辑器中,我创建了一个包含以下虚拟数据的新部分:
LOAD * Inline [
Weeks, KPI1, KPI2, KPI3, KPI4, KPI5, KPI6, KPI7, KPI8, KPI9, KPI10, KPI11, KPI12
1, 1, 2, 0, 3, 5, 1, 1, 2, 0, 3, 5, 3
2, 2, 4, 0, 8, 5, 2, 2, 4, 0, 8, 5, 3
3, 3, 6, 1, 4, 5, 3, 3, 6, 1, 4, 5, 3
4, 4, 8, 1, 7, 6, 4, 4, 8, 1, 7, 6, 3
5, 5, 10, 2, 0, 7, 5, 5, 10, 2, 0, 7, 3
6, 6, 12, 2, 9, 7, 6, 6, 12, 2, 9, 7, 3
7, 7, 14, 3, 13, 7, 7, 7, 14, 3, 13, 7, 3
8, 8, 16, 3, 6, 8, 8, 8, 16, 3, 6, 8, 3
9, 9, 18, 4, 1, 8, 9, 9, 18, 4, 1, 8, 3
10, 10, 4, 3, 9, 10, 10, 10, 4, 3, 9, 10, 3
11, 11, 5, 3, 9, 10, 11, 11, 5, 3, 9, 10, 3
12, 12, 5, 8, 9, 10, 12, 12, 5, 8, 9, 10, 3
];
LOAD * Inline [
KPI,
KPI1,
KPI2,
KPI3,
KPI4,
KPI5,
KPI6,
KPI7,
KPI8,
KPI9,
KPI10,
KPI11,
KPI12
];
然后我向页面添加了一个 "Line chart" 对象并给它度量 "Weeks"。我还使用以下表达式添加了一个度量:
= if(WildMatch(GetFieldSelections(KPI), 'KPI1') = 1, KPI1,
if(WildMatch(GetFieldSelections(KPI), 'KPI2') = 1, KPI2,
if(WildMatch(GetFieldSelections(KPI), 'KPI3') = 1, KPI3,
if(WildMatch(GetFieldSelections(KPI), 'KPI4') = 1, KPI4,
if(WildMatch(GetFieldSelections(KPI), 'KPI5') = 1, KPI5,
if(WildMatch(GetFieldSelections(KPI), 'KPI6') = 1, KPI6,
if(WildMatch(GetFieldSelections(KPI), 'KPI7') = 1, KPI7,
if(WildMatch(GetFieldSelections(KPI), 'KPI8') = 1, KPI8,
if(WildMatch(GetFieldSelections(KPI), 'KPI9') = 1, KPI9,
if(WildMatch(GetFieldSelections(KPI), 'KPI10') = 1, KPI10,
if(WildMatch(GetFieldSelections(KPI), 'KPI11') = 1, KPI11,
if(WildMatch(GetFieldSelections(KPI), 'KPI12') = 1, KPI12,
))))))))))))
之后,我向页面添加了一个新的 "Filter object",维度为:KPI。作为最后一步,我转到 "Fields" -> 右键单击 "KPI" -> 单击 "Field settings" -> 检查 "Always one selected value" -> 单击 "Save"。
像这样:
就是这样,现在您有了一个影响折线图的过滤器对象。
希望对您有所帮助,如果有任何不清楚的地方,请告诉我。