检查 DAX 中的列是否为空或空白

Check if column is null or blank in DAX

EVALUATE
FILTER
(
SUMMARIZE (
NATURALLEFTOUTERJOIN (
    'Target_Category',
    'Target_Form'
    ),
'Target'[Area],
'Target'[id],
'Target'[Target date],
'Target'[Target Time Range],
'Target_Category'[Origin],
'Target_Category'[Sectotion],
'Target'[Location],
'Target_Category'[Ethencity],
'Target_FormResponse'[Area Used],
'Target'[Description]
),
'Target'[id] = Value("111373268") 
)
ORDEr BY 'Target'[Target Key]
  1. 我有上面的示例 DAX 查询。有没有我可以操纵 'Target_FormResponse'[Area Used] 这样如果它是空白或空的,我 return "No" 否则如果它不是空白或空的我 return "Yes"。

在 SSRS 中,我可以做类似 =IIF(Len(Fields!Form_Response.Value) > 0,"Yes","No") 的事情,但我想在 DAX 查询级别实现。

如果您对添加包含 "Yes" 或 "No" 值的额外列感到满意,只需将整个表达式包装在对 ADDCOLUMNS:

的调用中
EVALUATE
ADDCOLUMNS (
    FILTER (
        SUMMARIZE (
            NATURALLEFTOUTERJOIN ( 'Target_Category', 'Target_Form' ),
            'Target'[Area],
            'Target'[id],
            'Target'[Target date],
            'Target'[Target Time Range],
            'Target_Category'[Origin],
            'Target_Category'[Sectotion],
            'Target'[Location],
            'Target_Category'[Ethencity],
            'Target_FormResponse'[Area Used],
            'Target'[Description]
        ),
        'Target'[id] = VALUE ( "111373268" )
    ),
    "Area Used Yes/No", IF ( 'Target_FormResponse'[Area Used] > 0, "Yes", "No" )
)
ORDER BY 'Target'[Target Key]

如果你想去掉输出中的原始列,你必须改用 SELECTCOLUMNS,但不幸的是,你必须指定每个列的名称想保留,所以代码最终会更长。