【问题标题】:Using IN operator in DAX with Power Bi Desktop chart?在带有 Power Bi Desktop 图表的 DAX 中使用 IN 运算符?
【发布时间】:2021-10-22 23:57:30
【问题描述】:

我是 DAX 新手,请多多包涵。

我可以在 DAX 中使用 IN 运算符直接在 Power Bi 桌面中创建查询吗?

例如,下面的屏幕截图在DimCurrency.CurrencyName 中显示了超过 120 种货币。是否可以创建一个 DAX 查询,其中我可以使用 IN 运算符包含我的所有过滤器?

例如,也许是这样的?

CALCULATE (
    [Sales Amount],
    Products[Color] IN { "Red", "Black" }
)

我对使用 DAX 感兴趣的原因是因为我当前的过滤器有超过 200 个不同的项目,所以我不想滚动 200 个项目的列表并选择 5 个不同的项目。

【问题讨论】:

  • 为什么需要 DAX 而不是在过滤器窗格中设置过滤器或使用切片器视觉对象?
  • 在这个例子中,DimCurrency.CurrencyName 有 200 种不同的货币,我的过滤器将包括 50 种货币。我不想滚动浏览 200 个过滤器并选择 50 种货币中的每一种。

标签: powerbi dax powerbi-desktop


【解决方案1】:

这是一个数据建模问题。在维度建模术语中,您的维度需要一些额外的属性层次结构来驱动过滤。这就像为什么日历表不只是有一个 Day 列,它需要 Month、Year、Quarter,所以您不必选择所有单独的 Days。

基本上 DimCurrency 需要一个额外的列,以便您可以通过选择该新列的较少值来包含这 50 种货币。

修改数据模型的一种方法是使用DAX calculated columns,使用以下形式的表达式

IsFacoriteCurrency = 'DimCurrency'[CurrencyName] in {"Algerian Dinar","Argentine Peso"} 

您还可以在数据源或 Power Query 中修改数据模型。

【讨论】:

  • 它们不能成为预设过滤器,因为它们完全依赖于最终用户。
  • 今天用户可能想要过滤最差的 30 种货币,明天他可能想要查看他需要监控的美元、欧元、卢比和其他 10 种货币的趋势模式。跨度>
  • 然后找到合适的切片器。有很多内置的和市场上的。
  • 谢谢,但是当数据源是 SSAS 多维数据集时,我可以添加 新列 吗?
  • 由于我是 Power BI 的新手,您能推荐一个可以执行此类操作的切片器吗?我不确定如何使用这种过滤类型搜索切片器。
猜你喜欢
  • 1970-01-01
  • 2020-05-14
  • 1970-01-01
  • 2023-03-17
  • 1970-01-01
  • 1970-01-01
  • 2018-11-08
  • 2022-01-18
  • 1970-01-01
相关资源
最近更新 更多