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

Power Query填充空值时跳过无值ID,求适用DAX公式

解决方案

可以通过DAX计算列实现需求,核心逻辑是按ID分组提取该组内的非空Status值,无有效值的ID保持空白。以下是两种可行的公式:

方法一:使用CALCULATE + 筛选

假设你的数据表名为YourTable,包含ID和Status列,创建计算列:

Status_Filled = 
VAR CurrentID = YourTable[ID]
VAR GroupStatus = 
    CALCULATE(
        MAX(YourTable[Status]),
        FILTER(YourTable, YourTable[ID] = CurrentID && YourTable[Status] <> BLANK())
    )
RETURN
    IF(NOT(ISBLANK(GroupStatus)), GroupStatus, BLANK())
  • CurrentID捕获当前行的ID值
  • GroupStatus筛选出同ID下的所有非空Status,用MAX提取唯一有效值(若每个ID仅对应一个非空Status,MAX/MIN/LASTNONBLANK结果一致)
  • 最后判断是否存在有效状态,存在则返回,否则留空

方法二:使用LOOKUPVALUE

如果每个ID最多对应一个非空Status,也可以用更简洁的LOOKUPVALUE:

Status_Filled = 
LOOKUPVALUE(
    YourTable[Status],
    YourTable[ID], YourTable[ID],
    YourTable[Status], "<>" & BLANK(),
    BLANK()
)
  • 按ID匹配,同时筛选非空的Status值,无匹配时返回空白

注意事项

  • 确保ID列的分组逻辑正确,若ID存在格式差异(如文本/数字)需先统一格式
  • 若同一个ID存在多个不同的非空Status,方法一会返回最大值,需根据实际需求调整聚合函数(如LASTNONBLANK取最后出现的有效值)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 09:01:36