在DAX中利⽤MAX或MAXX函数获取最新数据
MAX函数和MAXX函数是⼀对具有相同运算意义的聚合函数和迭代函数。
MAX函数的定义如下:
函数语法 1:
MAX(<column>)
函数语法 2:
MAX(<expression1>, <expression2>)
参数:
column(列): 需要进⾏求和运算的数字列或者⽇期列,该列可以是原始列,也可是计算列。
expression(表达式):任何可以返回唯⼀数字或者⽇期的表达式。
返回值:数字或⽇期。
说明:如果参数列中没有数字或者⽇期,MAX函数的返回值是空。包含⾮数字类型数据,则返回指是空。当对两个表达式的返回值进⾏⽐较时,如果某⼀个表达式的返回值为空,则当做数字0进⾏⽐较。如果两个表达式的计算结果都为空,则MAX返回空。
MAX函数的运算过程以及特点与SUM函数⼀样,都不受⾏上下⽂影响。如果想让MAX函数依据⾏上下⽂内容进⾏计算,就需要再其外围添加CALCULATE函数将⾏上下转换成筛选上下⽂,或者在度量值中使⽤MAX函数。
MAXX函数定义:
parameter数据类型函数语法:
MAXX(<table>, <expression>)
参数:
table(表):第⼆部分表达式需要计算的表单。该表单可以是⼀个原始数据表单,也可以是⼀个通过函数计算过后⽣成的表单。
expression(表达式):对第⼀部分表单中每⼀⾏进⾏计算的表达式。
返回值:数字或者⽇期。
说明:MAXX函数会忽略对空值,逻辑值或者⽂本值的⽐较。
MAXX函数的运算过程和特点与SUMX⼀样,绝⼤多数情况下都在度量值当中进⾏使⽤。如果想让MAXX的计算结果受到⾏上下⽂印象,可以通过对参数表单添加过滤条件来实现。
MAX函数或MAXX函数除了运⽤在对数字进⾏⽐较的场景中外,其最常见的应⽤实例是按照某⼀特定要求获取最新数据。例如下图是⼀张客户购买产品的记录信息。由于购买时间不同,客户购买某种商品所花的价格也不尽相同。如果想知道客户最近⼀次购买某种产品是该产品
的单价就可以利⽤MAX来实现。
创建⼀个Measure利⽤MAX函数获取客户最近⼀次消费⽇期:
创建另外⼀个Measure利⽤最后⼀次消费时间获取与之对应的产品单价
能否不创建上⼀个LatestPrice Measure直接获得与最新销售⽇期对应的产品单价呢?可以试⼀下,去掉LatestPrice列,直接添加Unit
Price。
从PowerBI的返回结果看,Unit Price做了⼀个汇总计算,将Customer和Product值相同的数据的Unit Price进⾏了求和运算。之所以有这样的结果是因为当前的Unit Price是原始计算列,添加到表中只能做简单的汇总运算,⽆法根据当前筛选上下⽂设定进⾏动态计算。因此,直接添加Unit Price是⽆法满⾜要求的。Latest_Date = MAX (Customer [Date ])
LatestPrice = LOOKUPVALUE(Customer[Unit Price],Customer[Date],MAX(Customer[Date]))

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。