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

DAX计算列优化求助:每月1号需将上月日期标记为Yes

问题分析与解决方案

你的修改代码存在几个关键问题:

  • day = 01:FORMAT(NOW(), "dd")返回的是字符串类型(如"01"),直接和数字01比较会导致逻辑判断失效
  • last_month变量定义错误:dimension_calendar[actual_date] -1是将日期减1天,并非获取上月的年月格式
  • AND("No", month = last_month)逻辑错误:AND函数需要两个布尔值参数,这里的写法完全不符合DAX语法规范

以下是修正后的可行代码:

date_Month =
VAR current_month_year = FORMAT(NOW(), "mmyyyy")
VAR current_day = FORMAT(NOW(), "dd")
VAR row_month_year = FORMAT(dimension_calendar[full_date], "mmyyyy")
VAR last_month_year = FORMAT(DATE(YEAR(NOW()), MONTH(NOW())-1, 1), "mmyyyy")
RETURN
    IF(
        current_day = "01",
        IF(row_month_year = current_month_year || row_month_year = last_month_year, "Yes", "No"),
        IF(row_month_year = current_month_year, "Yes", "No")
    )

关键修改说明:

  • 将所有日期格式统一为字符串类型的mmyyyy,确保比较逻辑一致
  • 正确计算上月的年月格式:通过DATE(YEAR(NOW()), MONTH(NOW())-1, 1)生成上月1号,再格式化为mmyyyy
  • 调整判断逻辑:当月1号时,同时匹配当月和上月的日期行,返回"Yes";非1号时仅匹配当月日期行

内容的提问来源于stack exchange,提问作者Hamza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 17:45:03