找回密码
 立即注册

QQ登录

只需一步,快速开始

michelle_dv

注册会员

5

主题

17

帖子

58

积分

注册会员

积分
58
  • 95

    金币

  • 5

    主题

  • 17

    帖子

最新发帖

[处理中] 分组聚合运算

michelle_dv
注册会员   /  发表于:2024-5-27 11:10  /   查看:441  /  回复:10
10金币
需要一个度量值


预估满发小时数=(同一组‘清单编号’的相同‘年月’的‘本次电量’)除以( 同一组‘清单编号’的相同‘年月’的个数除以12再乘以800

10 个回复

倒序浏览
Run2024
注册会员   /  发表于:2024-5-27 14:29:06
沙发
基于你这个数据结构,可以通过WAX来达到目标,
新建一个表结构
Table 未命名0527{
     Year,    //年
     Month,//月
     Amount  //电量数量
}

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

第三步就是你想要的。
image.png71633299.png

附上示例的仪表板文档
image.png358741759.png

wyn-export-20240527142707.zip

4.27 KB, 下载次数: 22

回复 使用道具 举报
michelle_dv
注册会员   /  发表于:2024-5-27 15:35:59
板凳
Run2024 发表于 2024-5-27 14:29
基于你这个数据结构,可以通过WAX来达到目标,
新建一个表结构
Table 未命名0527{

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

工厂数据.zip

11 KB, 下载次数: 29

抄表清单 (3).zip

9.51 KB, 下载次数: 42

回复 使用道具 举报
lucas.Yan
超级版主   /  发表于:2024-5-28 14:32:44
地板
michelle_dv 发表于 2024-5-27 15:35
不是求数量,是用电量和来除,附上源数据
预估满发小时数=(同一组‘清单编号’的相同‘年月’的‘本次 ...

楼上老铁回复的是正确的,看您要求的只需要更改第三个度量值后半部分。
回复 使用道具 举报
michelle_dv
注册会员   /  发表于:2024-5-28 15:49:07
5#
lucas.Yan 发表于 2024-5-28 14:32
楼上老铁回复的是正确的,看您要求的只需要更改第三个度量值后半部分。

抱歉 之前没看明白,要求的是不同年月的计数  年月是同一列的数据
回复 使用道具 举报
lucas.Yan
超级版主   /  发表于:2024-5-28 18:10:04
6#
michelle_dv 发表于 2024-5-28 15:49
抱歉 之前没看明白,要求的是不同年月的计数  年月是同一列的数据

不太理解您的需求,是不同年月还是相同年月日的?
回复 使用道具 举报
michelle_dv
注册会员   /  发表于:2024-5-29 11:41:28
7#
image.png531737975.png
要分条件:从离现在最近的年月的月份开始倒推,(比如最新的年月为2024年4月,倒推12个月到2023年的5月份,只看月份且必须是连续的,如果月份满了12个月(每个月都有),则看做一年的数据,公式为:sum(本次电量)/800),如果不满12个月的,公式为:sum(本次电量)/(月份个数/12*800)
回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2024-5-30 19:33:15
8#
michelle_dv 发表于 2024-5-29 11:41
要分条件:从离现在最近的年月的月份开始倒推,(比如最新的年月为2024年4月,倒推12个月到2023年的5月份 ...

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


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

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

image.png411341552.png


wyn-export-20240530193258.zip

6.75 KB, 下载次数: 27

回复 使用道具 举报
michelle_dv
注册会员   /  发表于:2024-5-31 16:00:54
9#
Eden.Sun 发表于 2024-5-30 19:33
根据您的数据,我们做了一个demo。先通过计算字段构建出日期。最近的日期,最近的日期往前推一年的日期: ...

我的电费年月不是两列,是一列,格式如下:
image.png102208251.png
所以日期那个计算列没法计算,满足12月那个计算列也只能这么写:
var t1 = Summarize('工厂能源数据集','工厂能源数据集'[电费年月],"日期1",Max('工厂能源数据集'[电费年月]),"max_date1",Max('工厂能源数据集'[max_date]),"max_date_last1",Max('工厂能源数据集'[max_date_last]))

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

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


image.png671017150.png
回复 使用道具 举报
michelle_dv
注册会员   /  发表于:2024-5-31 16:02:53
10#
Eden.Sun 发表于 2024-5-30 19:33
根据您的数据,我们做了一个demo。先通过计算字段构建出日期。最近的日期,最近的日期往前推一年的日期: ...

满足12个月那个计算列返回的全是0,我已验证过第一个OPPO的是满了12个月的 ,应该返回的是1
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部