首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Power BI中为事实和尺寸编写DAX

在Power BI中为事实和尺寸编写DAX
EN

Stack Overflow用户
提问于 2021-03-04 18:03:04
回答 2查看 413关注 0票数 0

假设在Power中,我设置了以下内容:

代码语言:javascript
复制
d_date (this is a date dimension)
d_customers (this is a customer dimension)
f_orders (this is a fact table)

f_ordersdate_id上连接到d_date,在customer_id上连接到d_customers

我想要创建一个dax度量,它显示每个日期的不同客户列表以及他们的名称。

我怎么能这样做呢?

(我是Dax的新手,对Power BI有点陌生)

预期产出

代码语言:javascript
复制
Table 1
    order date     Customer Name
    2020-01-01     John Doe
    2020-01-01     James Simpson
    2020-01-03     Emilia Clarke
    ...
    2020-12-31     Jamie Lanister


Table 2

    order date     distinct_customer_count
    2020-01-01     2
    2020-01-03     1
    ...
    2020-12-31     1

我的目标与其说是产生输出,不如说是看到一个简单的例子,即使用DAX从2个表生成输出。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-05 11:03:03

你是在要求一个返回列表的措施。这不能直接完成,因为度量必须返回标量,除非您打算与所有客户一起构建一个字符串。(这可以使用CONCATENATEX()来完成,但是当他展示的客户超过几个时,就不能很好地工作)

从您想要的输出中,我看到您希望看到一个带有日期的表,以及为该日期下订单的客户。要做到这一点,只需创建一个客户计数度量,如下所示

代码语言:javascript
复制
# Customers = DISTINCTCOUNT( f_orderes[customer_id] )

并使用d_datedate、d_customername和# Customers创建表可视化

只使用d_datedate和# Customers,您应该得到表2

要查看使用这两个表的一些代码,您可以计算计算出的表,例如,移动到包含客户、日期和销售的真实数据集,表1的一个简单实现是

代码语言:javascript
复制
SUMMARIZE ( Sales, 'Date'[Date], Customer[Name] )

下面是要在dax.do上测试的相同代码

和表2

代码语言:javascript
复制
FILTER (
    ADDCOLUMNS (
        ALL ( 'Date'[Date] ),
        "# Customers", CALCULATE ( DISTINCTCOUNT ( Sales[CustomerKey] ) )
    ),
    NOT ISBLANK ( [# Customers] )
)

需要在NOT ISBLANK()上使用筛选器来删除没有销售的日期

以下是dax.do上的代码

也可以使用SUMMARIZECOLUMNS,但是SUMMARIZECOLUMNS是一个更高级的函数,不能在DAX度量中使用。

代码语言:javascript
复制
SUMMARIZECOLUMNS (
    'Date'[Date],
    "# Customers", DISTINCTCOUNT ( Sales[CustomerKey] )
)

这是最后一个代码段的dax.do链接

票数 1
EN

Stack Overflow用户

发布于 2021-03-04 19:19:01

在f_orders中创建一个计算不同客户的度量。如果在可视的“按日期分组/筛选”中使用该度量值,则该度量值将显示正确的值。

例如,在X轴上显示日期的图表,以及作为值的不同的客户计数,将显示每天的不同计数。

在Power /DAX中,您不需要预先计算各种场景,因为度量总是在页面/可视过滤器的上下文中得到评估。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66480592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档