首页 > 解决方案 > Power BI DAX 表

问题描述

我正在尝试创建一个时间表以使过滤器范围在 0 到 23 小时之间。这将是我的第一个问题,但由于语法错误,我什至无法创建任何表。(我不记得如何做到这一点)。我正在使用 Power BI Desktop,这是 DAX 计算表语法:

DateTime = 
ADDCOLUMNS (
    CROSSJOIN(
        CALENDAR(DATE(2000;1;1);DATE(2025;12;31));
        UNION (
            ROW ( "Time"; TIME ( 1; 0; 0 ) );
            ROW ( "Time"; TIME ( 2; 0; 0 ) );
            ROW ( "Time"; TIME ( 3; 0; 0 ) );
            ROW ( "Time"; TIME ( 4; 0; 0 ) );
            ROW ( "Time"; TIME ( 5; 0; 0 ) );
            ROW ( "Time"; TIME ( 6; 0; 0 ) );
            ROW ( "Time"; TIME ( 7; 0; 0 ) );
            ROW ( "Time"; TIME ( 9; 0; 0 ) );
            ROW ( "Time"; TIME ( 10; 0; 0 ) );
            ROW ( "Time"; TIME ( 11; 0; 0 ) );
            ROW ( "Time"; TIME ( 12; 0; 0 ) );
            ROW ( "Time"; TIME ( 13; 0; 0 ) );
            ROW ( "Time"; TIME ( 14; 0; 0 ) );
            ROW ( "Time"; TIME ( 15; 0; 0 ) );
            ROW ( "Time"; TIME ( 16; 0; 0 ) );
            ROW ( "Time"; TIME ( 17; 0; 0 ) );
            ROW ( "Time"; TIME ( 18; 0; 0 ) );
            ROW ( "Time"; TIME ( 19; 0; 0 ) );
            ROW ( "Time"; TIME ( 20; 0; 0 ) );
            ROW ( "Time"; TIME ( 21; 0; 0 ) );
            ROW ( "Time"; TIME ( 22; 0; 0 ) );
            ROW ( "Time"; TIME ( 23; 0; 0 ) );
            ROW ( "Time"; TIME ( 24; 0; 0 ) )
        )
    );
    "DateTime"; [Date] + [Time];
    "Hour"; HOUR ( [Time] )
)

这给了我语法错误;(我也试过“,”)。我很确定我写错了一些简单的东西,错误/错误在哪里?谢谢

我尝试使用此代码(从 Internet 粘贴)但这不起作用:

DATET= CALENDAR (DATE (2017, 1, 1), DATE (2017, 12, 31))

标签: excelpowerbidaxpowerquerym

解决方案


以下对我有用(并生成 227,928 行):

DateTime = ADDCOLUMNS(
               CROSSJOIN(
                   CALENDAR(DATE(2000,1,1), DATE(2025,12,31)),
                   GENERATESERIES(0,23,1)
               ), 
               "DateTime", [Date] + TIME([Value], 0, 0)
           )

推荐阅读