michelle_dv 发表于 2024-5-27 11:10:49

分组聚合运算

需要一个度量值

https://gcdn-cdn.grapecity.com.cn/data/attachment/forum/202405/27/104745c163x11km16k3lww.png
预估满发小时数=(同一组‘清单编号’的相同‘年月’的‘本次电量’)除以( 同一组‘清单编号’的相同‘年月’的个数除以12再乘以800

Run2024 发表于 2024-5-27 14:29:06

基于你这个数据结构,可以通过WAX来达到目标,
新建一个表结构
Table 未命名0527{
   Year,    //年
   Month,//月
   Amount//电量数量
}

1. 新建一个计算列,YM = '未命名0527' & '未命名0527'
2. 新建一个度量:CountOfYM= Count('未命名0527')
3. 新建一个度量返回最终结果: Result= Sum('未命名0527') * 400 / '未命名0527' / 12

第三步就是你想要的。


附上示例的仪表板文档

michelle_dv 发表于 2024-5-27 15:35:59

Run2024 发表于 2024-5-27 14:29
基于你这个数据结构,可以通过WAX来达到目标,
新建一个表结构
Table 未命名0527{


不是求数量,是用电量和来除,附上源数据
预估满发小时数=(同一组‘清单编号’的相同‘年月’的‘本次电量’之和)除以( 同一组‘清单编号’的相同‘年月’的个数除以12再乘以800

lucas.Yan 发表于 2024-5-28 14:32:44

michelle_dv 发表于 2024-5-27 15:35
不是求数量,是用电量和来除,附上源数据
预估满发小时数=(同一组‘清单编号’的相同‘年月’的‘本次 ...

楼上老铁回复的是正确的,看您要求的只需要更改第三个度量值后半部分。

michelle_dv 发表于 2024-5-28 15:49:07

lucas.Yan 发表于 2024-5-28 14:32
楼上老铁回复的是正确的,看您要求的只需要更改第三个度量值后半部分。

抱歉 之前没看明白,要求的是不同年月的计数年月是同一列的数据

lucas.Yan 发表于 2024-5-28 18:10:04

michelle_dv 发表于 2024-5-28 15:49
抱歉 之前没看明白,要求的是不同年月的计数年月是同一列的数据

不太理解您的需求,是不同年月还是相同年月日的?

michelle_dv 发表于 2024-5-29 11:41:28


要分条件:从离现在最近的年月的月份开始倒推,(比如最新的年月为2024年4月,倒推12个月到2023年的5月份,只看月份且必须是连续的,如果月份满了12个月(每个月都有),则看做一年的数据,公式为:sum(本次电量)/800),如果不满12个月的,公式为:sum(本次电量)/(月份个数/12*800)

Eden.Sun 发表于 2024-5-30 19:33:15

michelle_dv 发表于 2024-5-29 11:41
要分条件:从离现在最近的年月的月份开始倒推,(比如最新的年月为2024年4月,倒推12个月到2023年的5月份 ...

根据您的数据,我们做了一个demo。先通过计算字段构建出日期。最近的日期,最近的日期往前推一年的日期:



新建计算列判断当前数据是否满足月份数量是12个月的条件,根据您的条件判断,:
满足返回1,不满足返回0


最后添加一个度量值进行计算:
If(1=Average('论坛问题'[满足12月]), Sum('论坛问题'[本次电量])/800,Sum('论坛问题'[本次电量])/(Count('论坛问题'[电费年月(月)])/12*800))




michelle_dv 发表于 2024-5-31 16:00:54

Eden.Sun 发表于 2024-5-30 19:33
根据您的数据,我们做了一个demo。先通过计算字段构建出日期。最近的日期,最近的日期往前推一年的日期: ...

我的电费年月不是两列,是一列,格式如下:

所以日期那个计算列没法计算,满足12月那个计算列也只能这么写:
var t1 = Summarize('工厂能源数据集','工厂能源数据集'[电费年月],"日期1",Max('工厂能源数据集'[电费年月]),"max_date1",Max('工厂能源数据集'),"max_date_last1",Max('工厂能源数据集'))

var t2 = Filter(t1,[日期1]>=,[日期1]<)

return IF(CountX(t2,)=12,1,0)
但是最后算出来不对,如下,第一个OPPO的是满了12个月的



michelle_dv 发表于 2024-5-31 16:02:53

Eden.Sun 发表于 2024-5-30 19:33
根据您的数据,我们做了一个demo。先通过计算字段构建出日期。最近的日期,最近的日期往前推一年的日期: ...

满足12个月那个计算列返回的全是0,我已验证过第一个OPPO的是满了12个月的 ,应该返回的是1
页: [1] 2
查看完整版本: 分组聚合运算