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

PowerBI中DAX多列筛选问题:如何筛选指定州的同名城市

修复你的DAX筛选问题

原代码的核心问题是逻辑条件错误:你当前的写法是筛选“城市在指定列表 并且 州在另一个独立列表”,这会错误选出所有属于指定州的指定城市(比如如果存在密歇根州的波士顿,也会被误选),而且没有给波士顿指定马萨诸塞州(MA),完全没解决重名问题。另外原州列表里有重复值(PA、SC各出现两次),属于冗余写法。

修复方案一:多条件AND+OR组合

10_least_weather = 
CALCULATETABLE(
    Weather_records,
    OR(
        AND(Weather_records[City] = "New York", Weather_records[State] = "NY"),
        AND(Weather_records[City] = "Gilbert", Weather_records[State] = "AZ"),
        AND(Weather_records[City] = "Las Vegas", Weather_records[State] = "NV"),
        AND(Weather_records[City] = "Huntington Beach", Weather_records[State] = "CA"),
        AND(Weather_records[City] = "Boston", Weather_records[State] = "MA"), -- 重点:绑定波士顿到马萨诸塞州
        AND(Weather_records[City] = "Paterson", Weather_records[State] = "NJ"),
        AND(Weather_records[City] = "Naperville", Weather_records[State] = "IL"),
        AND(Weather_records[City] = "Cedar Rapids", Weather_records[State] = "IA"),
        AND(Weather_records[City] = "Arvada", Weather_records[State] = "CO"),
        AND(Weather_records[City] = "Santa Clarita", Weather_records[State] = "CA")
    )
)

修复方案二:元组匹配(更简洁)

DAX支持直接匹配城市+州的组合元组,写法清晰易维护:

10_least_weather = 
CALCULATETABLE(
    Weather_records,
    (Weather_records[City], Weather_records[State]) IN 
    {
        ("New York", "NY"),
        ("Gilbert", "AZ"),
        ("Las Vegas", "NV"),
        ("Huntington Beach", "CA"),
        ("Boston", "MA"), -- 明确指定波士顿属于马萨诸塞州
        ("Paterson", "NJ"),
        ("Naperville", "IL"),
        ("Cedar Rapids", "IA"),
        ("Arvada", "CO"),
        ("Santa Clarita", "CA")
    }
)

注意事项

  • 请根据你数据集里的实际州代码调整(比如如果数据里马萨诸塞州用全称而非缩写MA,要对应修改)。
  • 方案二的元组匹配是DAX 2020及以后版本支持的写法,若使用旧版本,优先选择方案一。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:50:24