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

PREVIOUSMONTH返回空行/错误数据:Azure成本跨月对比问题排查

Azure资源当月与上月成本对比DAX问题解决

我需要对比Azure Cost Management中各资源的当月(12月)与上月(11月)成本,识别成本降低的资源,同时满足以下显示规则:

  • 仅12月存在的dev数据库:当月显示成本数据,上月为空
  • 10-11月存在的preview数据库:上月显示成本数据,当月为空
  • 用红绿颜色标识成本变化:降本为绿色,升本为红色

已尝试的DAX公式及问题

公式1:返回空列

PreviousMonth = CALCULATE(
    SUM('Usage details'[costInBillingCurrency]), 
    PREVIOUSMONTH('Usage details'[date].[Date]))

公式2:返回错误数据

PreviousMonth = CALCULATE(
    SUM('Usage details'[costInBillingCurrency]), 
    PREVIOUSMONTH('Usage details'[date].[Date]),
    ALLEXCEPT('Usage details','Usage details'[subscriptionName],'Usage details'[resourceGroupName],'Usage details'[ResourceName]  ))

公式3:返回空列

Measure = CALCULATE(
    SUM('Usage details'[costInBillingCurrency]),
    MONTH('Usage details'[date])=MONTH(TODAY())-1,
    YEAR('Usage details'[date])=YEAR(TODAY()))

解决方案

1. 创建并标记独立日期表

PREVIOUSMONTH函数依赖标记为日期表的独立维度表,不能直接使用业务表中的date列。先创建日期表:

DateTable = CALENDAR(MIN('Usage details'[date]), MAX('Usage details'[date]))

在Power BI建模选项卡中将DateTable标记为日期表,再与Usage details表的date列建立一对一关系。

2. 编写核心成本度量值

上月成本 = CALCULATE(
    SUM('Usage details'[costInBillingCurrency]),
    PREVIOUSMONTH(DateTable[Date]),
    ALLEXCEPT('Usage details', 'Usage details'[subscriptionName], 'Usage details'[resourceGroupName], 'Usage details'[ResourceName])
)
当月成本 = SUM('Usage details'[costInBillingCurrency])

3. 处理特殊资源的显示逻辑

针对dev和preview数据库的特殊显示要求,编写条件度量值:

显示上月成本 = 
VAR ResourceName = SELECTEDVALUE('Usage details'[ResourceName])
VAR CurrentMonth = MONTH(MAX(DateTable[Date]))
RETURN
IF(
    ResourceName = "preview数据库" && CurrentMonth = 12,
    [上月成本],
    IF(
        ResourceName = "dev数据库" && CurrentMonth = 12,
        BLANK(),
        [上月成本]
    )
)
显示当月成本 = 
VAR ResourceName = SELECTEDVALUE('Usage details'[ResourceName])
VAR CurrentMonth = MONTH(MAX(DateTable[Date]))
RETURN
IF(
    ResourceName = "preview数据库" && CurrentMonth = 12,
    BLANK(),
    IF(
        ResourceName = "dev数据库" && CurrentMonth = 12,
        [当月成本],
        [当月成本]
    )
)

4. 设置成本变化颜色标识

创建用于条件格式的度量值:

成本变化标识 = 
VAR Change = [显示当月成本] - [显示上月成本]
RETURN
SWITCH(
    TRUE(),
    Change < 0, "绿色",
    Change > 0, "红色",
    "黑色"
)

在Power BI可视化面板中,为成本差值列添加条件格式,基于成本变化标识度量值分配对应颜色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 21:05:19