2. Lastnonblank
A. 语法
代码语言:javascript复制LastNonBlank(<column>,<expression>)
参数 | 描述 |
---|---|
column | 列名或者具有单列的表,单列表的逻辑判断 |
expression | 表达式,用来对column进行过滤的表达式 |
B. 返回
表——包含单列或者单行的最后一个值
C. 注意事项
- 表达式是一个逻辑比较
- 通常和calculate进行搭配组合
- 另外可以类似Max函数结果返回
D. 作用
- 返回表达式不为空的列的最后一个值。
- 返回列表中最大的值
E. 案例
1. 返回第一个不为空的数据
代码语言:javascript复制LastNonBlank:=LASTNONBLANK('表'[日期],"")
返回结果:2018/9/7。 这个也是最基础的用法,和函数表面意义相同
2. 返回列中最大的值
代码语言:javascript复制LastNonBlank:=LASTNONBLANK('表'[金额],"")
返回结果:1000。此写法类似于Max函数,只不过max返回的是标量,lastnonblank返回的是单行单列的表。
3. 返回日期小于2018/9/6的第一个不为空的值
代码语言:javascript复制LastNonBlank:=LASTNONBLANK('表'[日期]<date(2018,9,6),"")
返回结果:2018/9/4,因为第一个参数column是一个迭代器,可以进行每行判断操作。
4. 返回大于本行金额的最大值
代码语言:javascript复制FirstNonBlank('表'[金额]>Eailier('表'[金额]),"")
返回结果:
这里的空值作为0来处理
实现Excel中Vlookup函数模糊查找功能。
分级表:
数据表:
通过分级表我们来确定考试成绩归属的级别,这个是一个经典的Vlookup函数的应用。那我们来看下如何在Power Pivot中进行实现操作?
1. 通过分级表的成绩和当前成绩进行比较,和当前行进行比较需要用到Earlier函数
代码语言:javascript复制LastNonBlank('分级表'[成绩]<=Earlier('成绩表'[考试成绩]),"")
先看第一行 '分级表'[成绩]<=Earlier('成绩表'[考试成绩])
。这个比较的结果就是0,60两个值的单列,然后通过LastNonblank获取最大值,也就是60。
返回的结果如下
2. 既然已经找到分级表中对应的成绩,那直接通过绝对匹配函数来实现,也就是用lookupvalue来实现。
代码语言:javascript复制LookUpValue('分级表'[评级],'分级表'[成绩],
LastNonBlank('分级表'[成绩]<=Earlier('成绩表'[考试成绩]),"")
)
最终返回的结果:
请点个赞,转发分享给更多的人。