You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用DAX构建含上一条评论的表格问题求助

商机评论最新及上一条记录提取问题

问题说明

现有一张存储商机评论的表格OptComment,结构如下:

  • Index:唯一索引
  • OptID:商机标识ID
  • CommentDate:评论日期
  • Comment:评论文本

需要构建虚拟表格,仅展示每个商机的最新评论记录(日期、内容)以及上一条评论的日期,但现有DAX代码无法正常运行。

源表格示例

IndexOptIDCommentDateComment
11Jan 1 2000Comment 1 Op1
21Jan 5 2000Comment 2 Op1
31Jan 11 2000Comment 3 Op1
42Jan 1 2000Comment 1 Op2
52Jan 3 2000Comment 2 Op2
62Jan 5 2000Comment 3 Op2

现有错误DAX代码

Table = 
    SUMMARIZE(optComment, OptComment[OptID], OptComment[Comment], "Previous Comment Date", 
    (
        VAR mxDt = MAX(optComment[CommentDate])
        VAR stld = CALCULATE(
            MAX('OptComment'[CommentDate]),
            FILTER(
                OptComment,
                OptComment[CommentDate] < mxDt)
            )   
        RETURN
        stld
))

期望输出结果

OptIDLast CommentDateLatest CommentPrevious Comment Dt
1Jan 11 2000Comment 3 Op1Jan 5 2000
2Jan 5 2000Comment 3 Op2Jan 3 2000

问题分析与修正方案

原代码问题

原代码在SUMMARIZE中同时按OptID和Comment分组,导致每个商机的每条评论都会生成一行记录,无法实现按商机聚合的需求;且日期计算逻辑未正确限定在当前商机的范围内,结果不符合预期。

修正后的DAX代码

Latest_Previous_Comments = 
VAR Unique_OptIDs = VALUES(OptComment[OptID])
RETURN
ADDCOLUMNS(
    Unique_OptIDs,
    "Last CommentDate", CALCULATE(MAX(OptComment[CommentDate])),
    "Latest Comment", 
        VAR Max_Date = CALCULATE(MAX(OptComment[CommentDate]))
        RETURN CALCULATE(MAX(OptComment[Comment]), OptComment[CommentDate] = Max_Date),
    "Previous Comment Dt", 
        VAR Max_Date = CALCULATE(MAX(OptComment[CommentDate]))
        RETURN CALCULATE(MAX(OptComment[CommentDate]), OptComment[CommentDate] < Max_Date)
)

代码说明

  1. 先通过VALUES(OptComment[OptID])获取所有唯一商机ID,确保每个商机只生成一行结果。
  2. 使用ADDCOLUMNS为每个商机ID计算三个字段:
    • Last CommentDate:当前商机的最新评论日期
    • Latest Comment:匹配最新日期的评论内容
    • Previous Comment Dt:当前商机中仅次于最新日期的上一条评论日期

内容的提问来源于stack exchange,提问作者Zeid S.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:42:37