先加总再取最大值

Power Pivot jeffh ⋅ 于 2019-09-16 15:06:18 ⋅ 最后回复由 焦棚子 2019-09-16 16:23:11 ⋅ 2332 阅读

假设如下数据

    article channel qty
    1        a            5
    1        b            8
    1        c           10
    2        a            6
    2        b            9
    2        c           12 

假设创建度量值“最大销售量”来计算2个“article”中销量(qty)最大值应为多少。
尝试使用一下DAX函数:
=MAXX(VALUES("table[article]"),SUM([qty]))
理论上PowerPivot应该先加总所有article的数量分别为:"5+8+10=23" 和 "6+9+12=27",然后再去最大值为“27”作为输出。但是最后输出的数值是50,即所有产品的销售量加总。不知道是公式哪里出了问题……求帮助。

成为第一个点赞的人吧 :bowtie:
最佳答案
  • 焦棚子 微软 MVP
    2019-09-16 16:02:43

    @jeffh

    measure_test:=VAR T=SUMMARIZE('table',[article],"S",SUM('table'[qty]))
    RETURN
    MAXX(T,[S])

    file

回复数量: 6
  • 焦棚子 微软 MVP
    2019-09-16 15:18:18

    1、你的外部筛选环境是什么?
    2、你要得到的正确答案是什么?
    3、你要模拟出来你要的,才能知道如何给你写。你用你以为的思维来讲述了目前不擅长的东西,会导致得不到想要的结果;客观摆事实,不要主观去认为。

  • jeffh
    2019-09-16 15:33:32

    @焦棚子
    不好意思,可能我表述得有问题。
    1、外部没有筛选环境,只输出单一度量值,即仅仅是输出article销量最大值的数字
    2、我预设应该得到的正确答案是“27”,即“6+9+12=27”。现在输出的结果是“50”
    3、我要模拟的是:PowerPivot先在虚拟表中“values(article)”进行汇总,得到a的汇总数字为23,b的汇总数字为27,再取虚拟表中的最大值即“27”作为输出。
    不知道这样描述清楚了吗?

    谢谢。

  • 焦棚子 微软 MVP
    2019-09-16 16:01:29

    这样表达就很清晰了,

  • 焦棚子 微软 MVP
    2019-09-16 16:02:43

    @jeffh

    measure_test:=VAR T=SUMMARIZE('table',[article],"S",SUM('table'[qty]))
    RETURN
    MAXX(T,[S])

    file

  • jeffh
    2019-09-16 16:14:45

    @焦棚子
    感谢,我可以问一下为什么我使用values做一张虚拟表来汇总qty不能得到我想要的结果吗?是否不能用这种方式来做一张虚拟的汇总表而应该使用summarize函数来做汇总虚拟表?
    谢谢。

  • 焦棚子 微软 MVP
    2019-09-16 16:23:10

    @jeffh
    你看看【你写的】和【measure_test】的区别,就知道为什么我第一问你的外部环境了,应该也能明白为什么了吧。

    file

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter