找回密码
 立即注册

QQ登录

只需一步,快速开始

tominson

银牌会员

89

主题

368

帖子

2185

积分

银牌会员

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


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

image.png59759825.png

11 个回复

正序浏览
nimotea
超级版主   /  发表于:2023-5-6 11:07:21
12#
tominson 发表于 2023-4-29 08:46
按大佬的思路,可以实现了

每人销售物品数:

有帮助就好,不过对于上面两个表达式有一点建议哈。
Calculate 在绝大部分情况下相当于 Filter 的优化语法(仅仅语法意义上),可以理解为 Calculate(聚合函数X(Table,聚合字段), 筛选条件1,筛选条件2,筛选条件3......) 等价于 聚合函数X(Filter( Table,筛选条件1,筛选条件2,筛选条件3...... ),聚合字段), 即使在某些场景下,需要输出一个带有筛选条件的表,也有CalculateTable 可以替换, 所以上面的
Calculate(
   DISTINCTCOUNTX(
     filter('Sheet2','Sheet2'[是否优惠]="是"),
     'Sheet2'[姓名-物品]),
   RemoveFilters('Sheet2'[姓名])
   )
可以改写为
Calculate(
   DISTINCTCOUNTX(
     'Sheet2',
     'Sheet2'[姓名-物品]),
   'Sheet2'[是否优惠]="是",
   RemoveFilters('Sheet2'[姓名])
   )
其实也容易看出 对于 Calculate 函数来说,会首先按顺序执行 筛选条件,得到带筛选条件的表之后,才会执行对应的 聚合X表达式。

针对于最后问的总计问题,我没太看明白,指的是 用了快速计算 占比 但是总计上显示的不对么
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-5-4 10:28:35
11#
tominson 发表于 2023-4-29 08:46
按大佬的思路,可以实现了

每人销售物品数:

回复 使用道具 举报
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

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

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

wyn-export-20230426210215.zip

5.16 KB, 下载次数: 69

回复 使用道具 举报
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 14:19:03
5#
Chuki.Li 发表于 2023-4-26 10:41
您好,按照您的需求我还原了一下之后,您的“销售物品数”字段是用DISTINCTCOUNTX('您的表名', '您的表名'[ ...

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

image.png472854003.png
回复 使用道具 举报
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 09:30:53
3#
Felix.Li 发表于 2023-4-26 09:16
看您的数据,直接使用:
{销售物品数/CountDistinct(销售物品数)}
应该可以查出销售物品数占比

销售物品数去用销售物品无重复计数生成的,还有这个是要在仪表板上来做的
回复 使用道具 举报
Felix.LiWyn认证
超级版主   /  发表于:2023-4-26 09:16:18
2#
看您的数据,直接使用:
{销售物品数/CountDistinct(销售物品数)}
应该可以查出销售物品数占比
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部