首页 > 解决方案 > 如何在表格 DAX 中使用逗号分隔变量进行过滤

问题描述

所以基本上我的问题是关于我试图用当前办公室过滤一个可能拥有多个当前办公室的人。我将当前办公室的 ID 作为变量中的逗号分隔值传递,然后我需要这些值进行过滤。

在这里,我发布了一个示例,当我只有一个 CurrentOfficeId 但是如果我有多个呢?

DEFINE 
    VAR CurrentOfficeIds = "2"

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] = VALUE(CurrentOfficeIds))
)

多个officeid

DEFINE 
    VAR CurrentOfficeIds = "2,3,4"

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] = ?????)
)

标签: daxtabular

解决方案


这不正是您所要求的,但可能适用于您的目的。

您可以将变量定义为以逗号分隔的列表,然后将其传入。

DEFINE 
    VAR CurrentOfficeIds = {2,3,4}

EVALUATE
SUMMARIZECOLUMNS(
    'Person'[CurrentOfficeId],
    'Person'[Current Office Name],
    'Person'[Display Name],
    FILTER ('Person',[CurrentOfficeId] IN CurrentOfficeIds)
)

如果您使用的是不支持该功能的旧版 DAX IN,则可以使用以下CONTAINS命令代替[CurrentOfficeId] IN CurrentOfficeIds

CONTAINS(CurrentOfficeIds, [Value], [CurrentOfficeId])

推荐阅读