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

Power BI中如何匹配设备名并返回多笔SNOW工单记录

实现多匹配SNOW工单的查询与展示

问题背景

现有两张表:

  • Defender表:包含Device Name列
  • Defender SNOW表:包含文本类型的Short Description列和工单编号Number列

已实现判断设备是否存在对应工单、返回单个工单编号的计算列,但需要实现当设备匹配多条工单时,返回所有对应工单记录或生成动态匹配表(等效于SQL:SELECT * FROM [Defender SNOW] WHERE [Short Description] LIKE '%[Device Name]%')

解决方案

1. 在Defender表中返回所有匹配的工单编号(计算列)

如果需要在Defender表的每行中显示该设备对应的所有SNOW工单号,用CONCATENATEX函数替换原有的MAXX,将所有匹配的工单号拼接成字符串:

All SNOW Ticket Refs = 
IF(
    ISEMPTY(
        FILTER(
            'Defender SNOW',
            CONTAINSSTRING('Defender SNOW'[Short description], Defender[Device Name])
        )
    ),
    BLANK(),
    CONCATENATEX(
        FILTER(
            'Defender SNOW',
            CONTAINSSTRING('Defender SNOW'[Short description], Defender[Device Name])
        ),
        'Defender SNOW'[Number],
        ", "  // 可根据需求自定义分隔符
    )
)

2. 创建动态匹配表(DAX表)

如果需要生成一张独立的动态表,展示所有Device Name与Defender SNOW工单的匹配关系,通过以下DAX创建新表:

写法一(直观型)

Device-SNOW Matches = 
SELECTCOLUMNS(
    FILTER(
        CROSSJOIN(Defender, 'Defender SNOW'),
        CONTAINSSTRING('Defender SNOW'[Short description], Defender[Device Name])
    ),
    "Device Name", Defender[Device Name],
    "SNOW Ticket Number", 'Defender SNOW'[Number],
    "Short Description", 'Defender SNOW'[Short description]
    // 可按需添加Defender SNOW表的其他列
)

写法二(高效型)

避免全表交叉连接后筛选,性能更优:

Device-SNOW Matches = 
GENERATE(
    Defender,
    FILTER(
        'Defender SNOW',
        CONTAINSSTRING('Defender SNOW'[Short description], Defender[Device Name])
    )
)

生成的动态表会自动包含所有设备与对应工单的匹配记录,可直接用于报表可视化展示。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:26:16