前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Power BI: 如何提取最后一条记录

Power BI: 如何提取最后一条记录

作者头像
Exploring
发布2023-08-17 08:17:49
1.2K0
发布2023-08-17 08:17:49
举报
文章被收录于专栏:数据处理与编程实践

文章背景:在工作中,有时需要提取同一日期的最后一条记录。比如每个客户的最后一次下单记录,或者每个产品最后一次卖出记录等。

以下面这个销售表为例,

如何将上表中每个客户的最后一次购买记录提取出来呢?下面给出DAX的做法。

(1)在销售表中添加一个最后下单记录的计算列。

代码语言:javascript
复制
最后下单日期 = 
var lastdealdate = 
    CALCULATE(
        max('销售表'[日期]),
        ALLEXCEPT('销售表','销售表'[客户])
    )
var currentday = '销售表'[日期]
var result = if(currentday = lastdealdate,"是")
return result

这个计算列的逻辑是,先找出每个客户的最后一次下单日期,然后判断每一行该客户的订单日期是否等于最后下单日期,如果等于,就返回

这样就在表中新增了一列最后下单日期,直接筛选就可以提取最后一次下单的记录表。

(2)也可以通过DAX新建表,一次性把最后下单记录提取出来。

代码语言:javascript
复制
最后下单表 = 
var table_temp = 
    ADDCOLUMNS(
        '销售表',
        "最后下单记录",
        var lastdealdate = 
            CALCULATE(
                max('销售表'[日期]),
                ALLEXCEPT('销售表','销售表'[客户])
            )
        var currentday = '销售表'[日期]
        var result = if(currentday = lastdealdate,"是")
        return result
    )
var result = FILTER(table_temp, [最后下单记录] = "是")
return result

延伸阅读:

(1)ALLEXCEPT ( <TableName>, <ColumnName>, [ <ColumnName>, [ … ] ] )

返回表中受指定列筛选器影响的行以外的所有行,当用作 CALCULATE 调节器时,移除<TableName>的扩展表中已应用的任何筛选器,只保留<ColumnName>的直接筛选条件。

(2)ADDCOLUMNS 返回包含原始列和所有新添加列的表。由于新列使用的标量表达式沿着第一参数的每行计值,所以 ADDCOLUMNS 也是迭代函数。

参考资料:

[1] 在Power BI中如何提取最后一条记录(https://www.sohu.com/a/445963078_584557

[2] 理解ALL类函数(https://www.powerbigeek.com/understanding-all-functions/

[3] 理解 ADDCOLUMNS(https://www.powerbigeek.com/understanding-addcolumns/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据处理与编程实践 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档