RANKX和TOPN

发布时间 2023-04-03 18:33:33作者: 本大王派你去寻山

 

RANKX是排序函数:

RANKX(TABLE, MEASURE, , ASC/DESC, DENSE/SKIP)

第一个参数必填,TABLE,可以是表或者列,可以理解成排序的依据,通常会配合ALL/ALLSELECTED函数使用,比如ALL('TABLE')或者ALL('TABLE'[COLUMNA], 'TABLE'[COLUMNB])

第二个参数必填,算法,通常是一个聚合函数,这里建议先创建一个MEASURE,然后RANKX里面直接调用MEASURE,直接在第二个参数写聚合函数有的时候会出问题

第三个参数选填,算法,通常前两个参数就够了,这个参数可以不写内容

第四个参数选填,升序或者降序

第五个参数选填,DENSE并列之后累加(1,2,2,3,4),SKIP并列之后跳过(1,2,2,4,5)

RANKX函数可以这样理解:根据前两个参数生成一张表,然后用第二(三)个参数排序

举例:

AMT = SUMX(Sheet1, [QTY] * [UNIT])
RANKX 1 = RANKX(ALLSELECTED(Sheet1[CATEGORY],Sheet1[PRODUCT]), [AMT], ,DESC, Skip)
RANKX 2 = RANKX(ALL(Sheet1), [AMT], ,DESC, Skip)
RANKX 3 = RANKX(ALLSELECTED(Sheet1[PRODUCT]), [AMT], ,DESC, Skip)

 

加上筛选:

 

 

所以第一个参数根据实际需求,选择ALL或者ALLSELECTED 

 

TOPN: