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

Power BI:求仅存在于Tab1的TicketId数量的DAX度量需求

仅存在于Tab1的TicketId计数DAX度量方案

需求说明

  • 两个表Tab1、Tab2共享TicketId(INT类型)字段,但表的列数不同,无法直接使用EXCEPT()对比整表
  • 需要计算仅在Tab1中存在、Tab2中不存在的TicketId数量
  • 度量需支持钻取查看对应的TicketId明细,禁止使用行计数直接相减的方式

DAX度量公式

场景1:存在独立日期维度表

Tabcross = 
VAR CurrentDate = MAX('DateTable'[日期])
-- 提取当日Tab1的唯一TicketId集合
VAR Tab1Tickets = CALCULATETABLE(VALUES(Tab1[TicketId]), Tab1[日期] = CurrentDate)
-- 提取当日Tab2的唯一TicketId集合
VAR Tab2Tickets = CALCULATETABLE(VALUES(Tab2[TicketId]), Tab2[日期] = CurrentDate)
-- 计算差集并统计数量
RETURN COUNTROWS(EXCEPT(Tab1Tickets, Tab2Tickets))

场景2:无独立日期维度表,直接使用表内日期字段

Tabcross = 
VAR SelectedDates = VALUES(Tab1[日期])
VAR Tab1Tickets = CALCULATETABLE(VALUES(Tab1[TicketId]), Tab1[日期] IN SelectedDates)
VAR Tab2Tickets = CALCULATETABLE(VALUES(Tab2[TicketId]), Tab2[日期] IN SelectedDates)
RETURN COUNTROWS(EXCEPT(Tab1Tickets, Tab2Tickets))

原理说明

  1. VALUES(TabX[TicketId]):仅提取表中的TicketId列生成唯一值集合,规避两表列数不同的问题
  2. CALCULATETABLE():根据当前筛选的日期,过滤出对应日期的TicketId集合
  3. EXCEPT():计算两个集合的差集,得到仅在Tab1中存在的TicketId
  4. COUNTROWS():统计差集的行数,即为目标计数
  5. 钻取支持:度量基于具体TicketId的集合计算,将其添加到视觉对象后,可直接钻取查看对应的TicketId明细

验证结果

使用上述度量后,可得到预期结果:

日期Tab1Tab2Tabcross
08.11.20221058950108
09.11.2022105810562
22.11.202223423022040

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:15:28