【Wyn V7.0】WAX分析能力灵活升级:WAX轻松实现指定时间、特定范围的同环比计算
本帖最后由 nimotea 于 2023-7-20 11:48 编辑背景
在实际数据分析应用需求中,我们经常会有这样的交互需求。 在页面中展示一个年份/月份筛选器, 默认选中当前年或者当前月。当选中该年份时,需要在某个柱形图中展示 该年/月的销售情况以及对应的同比年的营销金额。并随着切换选中年/月份,可以动态的观察每个年/月份的同环比变化趋势。
应用场景
在之前版本的字段快速计算特性中,我们可以快速的对指定字段进行同环比,偏移等分析。但在上面提到的场景中,就不太合适了,默认筛选器的筛选会将数据过滤到只有选中当前年/月的对应业务数据,这样是无法拿到对应的同比数据的。在 V7.0 中,Wyn 针对于这种场景提供了 SelectedValue 和 SelectedRange 两个新函数,可以让原本的数据计算规则更加灵活。本章节就来给大家介绍下,如何在Wax 中动态的获取到 筛选器的选中值以及利用这点特性进行灵活数据探索吧。
新特性介绍
注: selectedValue、selectedRange 函数只能应用于度量值表达式中。
公式可在编辑器右上角快速生成
selectedValue
#{selectedValue["entity","attribute", "alternateResult"]}selectedValue 用来获取单值筛选结果, 其中 entity 为数据集名称或数据模型中的表名,attribute 为获取的筛选字段名称,alternateResult 为如果获取不到指定单值,则返回的结果。
eg. 为了实现筛选当前年,获取我们指定年份对应的销售数据和对应同比销售数据,可参考以下实现方式:
1. 创建计算列 "年份"
Year('Demo_销售明细'[实际日期])2. 拖动创建一个标签列表筛选器,绑定 "年份" 计算列
3. 创建度量值 "同期金额"
var curYear = #{selectedValue["Demo_销售明细","年份", "2022"]}
return Calculate(
SumX('Demo_销售明细','Demo_销售明细'[订单金额]),
RemoveFilters('Demo_销售明细'[年份]),
'Demo_销售明细'[年份] = curYear-1
)4. 将 实际日期月字段绑定在分类轴上,将订单金额字段和同期金额字段绑定到数值轴上
获取不到值的情况:
1. entity,attribute 字段名称填写出错导致拿不到值
2. 对应的 attribute 字段并没有绑定在任何 筛选器上
3. 绑定了对应 attribute 的筛选器, 目前并没有任何一个选项值被选中
4. 绑定了对应 attribute 的筛选器, 为多选状态, 并且当前已选中了多个值
5. 众所周知,Wyn会对日期类型字段做自动拆分, 如果将日期字段拆分的子字段(年、季度、月...) 绑定在筛选器上,子字段无法被指定为 attribute 的可选值。(实际上子字段绑定筛选是范围筛选,可使用 selectedRange解决)
selectedRange
#{selectedRange["entity","attribute", "min/max","alternateResult"]} selectedRange 用来获取范围筛选结果, 其中 entity 为数据集名称或数据模型中的表名,attribute 为获取的筛选字段名称, 第三个参数可以指定为 min 或者 max 用来获取当前筛选值范围的最小值/最大值,alternateResult 为如果获取不到指定值,则返回的结果。
eg. 在获取指定时间范围筛选场景中,可参考以下场景实现:
1. 拖动创建一个时间范围筛选器,绑定 "实际日期" 数据字段
2. 创建度量值 "同期金额2"
var _max = #{selectedRange["Demo_销售明细","实际日期", "max","2022/4/1"]}
var _min = #{selectedRange["Demo_销售明细","实际日期", "min","2022/4/1"]}
var minDate =Date(Year(_min), Month(_min), Day(_min))
var maxDate =Date(Year(_max), Month(_max), Day(_max))
return Calculate(SumX('Demo_销售明细','Demo_销售明细'[订单金额]),
RemoveFilters('Demo_销售明细'[实际日期]),
'Demo_销售明细'[实际日期] <= DateAdd(maxDate,-1,YEAR),
'Demo_销售明细'[实际日期] >= DateAdd(minDate,-1,YEAR)
)3. 将支付方式绑定到分类轴上,将 同期金额2 以及订单金额拖动到数值轴上
运行效果展示
产品和示例下载
下载示例demo 即可快速体验 7.0数据分析新特性.
页:
[1]