我要给仪表板的产品打分。每天,我们商店销售的产品。因此,我们有了这个dataset示例:
+-----------+------------+-------+
| 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,2,3,而不是这个丑陋和不实际的1,5,9?
如果你不认识♥,只要简单地提一下这个问题就可以了。
发布于 2019-03-13 14:09:32
幸运的是,这是一个简单的解决办法。
如果查看 function,您将注意到一个可选的ties参数,您可以将其设置为Skip或Dense。默认情况下是Skip,但您需要Dense。试试这个:
rank =
RANKX(
ALL(Table1);
Table1[sum];
;;
"Dense"
)(这些额外的;分隔符是存在的,因为我们没有指定可选的value或order参数。)
https://stackoverflow.com/questions/55140708
复制相似问题