我需要为我的仪表板排列产品。每天我们都会存储产品的销售情况。结果,我们得到了这个数据集示例:
+-----------+------------+-------+
| 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。
+-----------+------------+-------+-----+------+
| 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
字段的计算公式如下:
sum =
SUMX(
FILTER(
Table1;
Table1[product] = EARLIER(Table1[product])
);
Table1[sales]
)
rank
字段公式 :
rank = RANKX(
ALL(Table1);
Table1[sum]
)
如你所见,我们得到了以下排名:
- 1:巧克力
- 5:咖啡
- 9:茶
改进
我想将之前的结果转换为:
- 1:巧克力
- 2:咖啡
- 3:茶
你能帮我改进我的排名系统并获得一个漂亮的1、2、3而不是这个丑陋和不实用的1、5、9吗?
如果您不知道答案,请通过点赞此问题来提供帮助 ♥
CALCULATE(DISTINCTCOUNT(Table1[ sum ]);FILTER(Table1;Table1[ sum ]>= EARLIER(Table1[ sum ])))
,但是你的更好。 - Ceci Semble Absurde.