找回密码
 立即注册

QQ登录

只需一步,快速开始

tominson

银牌会员

98

主题

380

帖子

2302

积分

银牌会员

积分
2302
tominson
银牌会员   /  发表于:2023-4-25 22:14  /   查看:3892  /  回复:11
20金币


如下图,在仪表板中,可以通过DISTINCTCOUNTX计算到销售物品种类数,但怎么计算出不重复数的占比呢

image.png59759825.png

最佳答案

查看完整内容

如果只是要统计 姓名和销售物品 同时不重复的数据的话,我这里有个另外的思路 1. 新建一个计算列,内容为 '您的表名'[姓名]&"-"&'您的表名'[销售物品], 相当于建立了一个姓名和销售物品的组合唯一主键,这里叫这个计算列为 姓名-物品 2. 新建度量值 每人销售物品数 内容大致为 DISTINCTCOUNTX('您的表名', '您的表名'[销售物品] 或者[姓名-物品]) 3. 新建度量值 总计销售物品数 内容为 Calculate(DISTINCTCOUNTX('您的表名', ' ...

11 个回复

倒序浏览
最佳答案
最佳答案
nimotea
超级版主   /  发表于:2023-4-25 22:14:21
来自 9#
本帖最后由 nimotea 于 2023-4-28 10:46 编辑

如果只是要统计 姓名和销售物品 同时不重复的数据的话,我这里有个另外的思路
1. 新建一个计算列,内容为 '您的表名'[姓名]&"-"&'您的表名'[销售物品], 相当于建立了一个姓名和销售物品的组合唯一主键,这里叫这个计算列为 姓名-物品
2. 新建度量值 每人销售物品数 内容大致为  DISTINCTCOUNTX('您的表名', '您的表名'[销售物品] 或者[姓名-物品])
3. 新建度量值 总计销售物品数 内容为 Calculate(DISTINCTCOUNTX('您的表名', '您的表名'[姓名-物品]),RemoveFilter('您的表名'[姓名]), 这里大概解释下,如果使用All(表名)的话虽然会取到全量数据,但是其他筛选器的值也同样被去掉了,这时候可以用减法,使用 RemoveFilter 只去掉 姓名维度的筛选器
4. 新建度量值 不重复占比  '您的表名'[每人销售物品数]/ '您的表名'[总计销售物品数] (Divide 方法也可以)

按这个思路处理不管是要加 是否优惠还是其他筛选条件都可以按普通情况直接处理
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-4-26 09:16:18
2#
看您的数据,直接使用:
{销售物品数/CountDistinct(销售物品数)}
应该可以查出销售物品数占比
回复 使用道具 举报
tominson
银牌会员   /  发表于:2023-4-26 09:30:53
3#
Felix.Li 发表于 2023-4-26 09:16
看您的数据,直接使用:
{销售物品数/CountDistinct(销售物品数)}
应该可以查出销售物品数占比

销售物品数去用销售物品无重复计数生成的,还有这个是要在仪表板上来做的
回复 使用道具 举报
Chuki.Li
超级版主   /  发表于:2023-4-26 10:41:04
4#
您好,按照您的需求我还原了一下之后,您的“销售物品数”字段是用DISTINCTCOUNTX('您的表名', '您的表名'[销售物品] )表达式算出来的,从您需要的结果“销售物品数占比”来看,我们的计算分子已经存在了,现在就是需要一个分母“销售物品总数”去做运算。
我们可以使用All函数来进行表达式的编写:DistinctCountX(All('您的表名') ,'您的表名'[销售物品]),算出计算分母,然后计算占比,绑定到需要使用该数据的区域即可。
这里有一个帮助文档上具体的例子可供您参考一下:
https://www.grapecity.com.cn/sol ... ications/proportion
回复 使用道具 举报
tominson
银牌会员   /  发表于:2023-4-26 14:19:03
5#
Chuki.Li 发表于 2023-4-26 10:41
您好,按照您的需求我还原了一下之后,您的“销售物品数”字段是用DISTINCTCOUNTX('您的表名', '您的表名'[ ...

all函数会把筛选器的内容过滤掉,但实际上 我是需要过滤一些条件的
我需要统计的是 有优惠的销售物品,这种要怎么写分析表达式比较好呢,后面还会有过滤日期的条件

image.png472854003.png
回复 使用道具 举报
Chuki.Li
超级版主   /  发表于:2023-4-26 16:09:54
6#
本帖最后由 Bella.Yuan 于 2023-4-26 17:44 编辑
tominson 发表于 2023-4-26 14:19
all函数会把筛选器的内容过滤掉,但实际上 我是需要过滤一些条件的
我需要统计的是 有优惠的销售物品, ...

您好,占比的表达式可以这样写,使用度量值:
其中我的表名是”测试0426“,字段和数据是根据您提供的截图进行的模拟,您可以复制下面的表达式,修改对应的数据集名称和字段进行测试。

Calculate(
    DistinctCountX(
      Filter('测试0426','测试0426'[是否优惠]="是")
      ,'测试0426'[销售物品])
  /
          SumW(Summarize('测试0426','测试0426'[姓名],"co",
              Calculate(DistinctCount('测试0426'[销售物品]),
                        '测试0426'[是否优惠]="是")
                  ),[co]
        )
          ,values('测试0426'[姓名]))



回复 使用道具 举报
tominson
银牌会员   /  发表于:2023-4-26 21:05:14
7#
Chuki.Li 发表于 2023-4-26 16:09
您好,占比的表达式可以这样写,使用度量值:
其中我的表名是”测试0426“,字段和数据是根据您提供的截 ...

感谢大神指导,这个分析表达式,看得还是挺晕的,我们的官网帮助文档,有些也是看不懂的,后面建议加上高级一点的视频教程,
按照这个分析表达式,是可以简单实现的,但如果加了日期的过滤,就会查询失败了

wyn-export-20230426210215.zip

5.16 KB, 下载次数: 633

回复 使用道具 举报
Eden.SunWyn认证
超级版主   /  发表于:2023-4-27 09:51:19
8#
tominson 发表于 2023-4-26 21:05
感谢大神指导,这个分析表达式,看得还是挺晕的,我们的官网帮助文档,有些也是看不懂的,后面建议加上高 ...

您好,这个问题可能需要详细定问一下了,您可以先填一下我们这边的1V1申请:https://www.grapecity.com.cn/applyonline
通过申请后会有专门的人联系您,给您提供一个月免费的快速支持通道
回复 使用道具 举报
tominson
银牌会员   /  发表于:2023-4-29 08:46:42
10#
nimotea 发表于 2023-4-28 10:45
如果只是要统计 姓名和销售物品 同时不重复的数据的话,我这里有个另外的思路
1. 新建一个计算列,内容为  ...

按大佬的思路,可以实现了

每人销售物品数:
DISTINCTCOUNTX(
  filter('Sheet2','Sheet2'[是否优惠]="是"),
         'Sheet2'[姓名-物品])

Calculate(
   DISTINCTCOUNTX(
     filter('Sheet2','Sheet2'[是否优惠]="是"),
     'Sheet2'[姓名-物品]),
   RemoveFilters('Sheet2'[姓名])
   )

同时,大佬的思路,很受启发,使用
单独一个计算列 优惠姓名物品
if('Sheet2'[是否优惠]="是",'Sheet2'[姓名]&'Sheet2'[销售物品],null)
对计算列 优惠姓名物品 进行 不计数统计 和不计数统计 占比运算,得到一样的结果,但总计的时候,显示会不一样
image.png687845458.png

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部