首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按和划分的等级类别(幂BI)

按和划分的等级类别(幂BI)
EN

Stack Overflow用户
提问于 2019-03-13 11:21:42
回答 1查看 1.4K关注 0票数 3

我要给仪表板的产品打分。每天,我们商店销售的产品。因此,我们有了这个dataset示例:

代码语言:javascript
复制
+-----------+------------+-------+
| product   | date       | sales |
+-----------+------------+-------+
| coffee    | 11/03/2019 | 15    |
| coffee    | 12/03/2019 | 10    |
| coffee    | 13/03/2019 | 28    |
| coffee    | 14/03/2019 | 1     |
| tea       | 11/03/2019 | 5     |
| tea       | 12/03/2019 | 2     |
| tea       | 13/03/2019 | 6     |
| tea       | 14/03/2019 | 7     |
| Chocolate | 11/03/2019 | 30    |
| Chocolate | 11/03/2019 | 4     |
| Chocolate | 11/03/2019 | 15    |
| Chocolate | 11/03/2019 | 10    |
+-----------+------------+-------+

我的尝试

实际上,我设法对我的产品进行排序,但不是以我想要的方式;事实上,排名过程增加了行数。例如,巧克力排在第一位,但我们记录了4行,所以咖啡排在第5位,而不是第2位。

代码语言:javascript
复制
+-----------+------------+-------+-----+------+
| product   | date       | sales | sum | rank |
+-----------+------------+-------+-----+------+
| coffee    | 11/03/2019 | 15    | 54  | 5    |
| coffee    | 12/03/2019 | 10    | 54  | 5    |
| coffee    | 13/03/2019 | 28    | 54  | 5    |
| coffee    | 14/03/2019 | 1     | 54  | 5    |
| tea       | 11/03/2019 | 5     | 20  | 9    |
| tea       | 12/03/2019 | 2     | 20  | 9    |
| tea       | 13/03/2019 | 6     | 20  | 9    |
| tea       | 14/03/2019 | 7     | 20  | 9    |
| Chocolate | 11/03/2019 | 30    | 59  | 1    |
| Chocolate | 11/03/2019 | 4     | 59  | 1    |
| Chocolate | 11/03/2019 | 15    | 59  | 1    |
| Chocolate | 11/03/2019 | 10    | 59  | 1    |
+-----------+------------+-------+-----+------+

sum场公式:

代码语言:javascript
复制
sum =
SUMX(
    FILTER(
         Table1;
         Table1[product] = EARLIER(Table1[product])
    );
    Table1[sales]
)

rank场公式:

代码语言:javascript
复制
rank = RANKX(
    ALL(Table1);
    Table1[sum]
)

如您所见,我们得到了以下排名:

  • 1:巧克力
  • 5:咖啡
  • 9:Tea

改进

我想将先前的结果转化为:

  • 1:巧克力
  • 2:咖啡
  • 3:Tea

你能帮我改进我的排名系统,得到一个了不起的1,2,3,而不是这个丑陋和不实际的1,5,9?

如果你不认识♥,只要简单地提一下这个问题就可以了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 14:09:32

幸运的是,这是一个简单的解决办法。

如果查看 function,您将注意到一个可选的ties参数,您可以将其设置为SkipDense。默认情况下是Skip,但您需要Dense。试试这个:

代码语言:javascript
复制
rank =
RANKX(
    ALL(Table1);
    Table1[sum];
    ;;
    "Dense"
)

(这些额外的;分隔符是存在的,因为我们没有指定可选的valueorder参数。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55140708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档