代码之家  ›  专栏  ›  技术社区  ›  Error 1004

日期不同-Power BI

  •  1
  • Error 1004  · 技术社区  · 11 月前

    根据下表,我想计算当前日期与该类别过去出现的上一个日期之间的差异(以天为单位)。

    enter image description here

    笔记

    1. 如果没有以前的出现,我不显示任何东西。
    2. 中的表未排序。

    到现在为止

    我设法在按日期排序的每一行中添加索引。

    有什么想法吗?

    3 回复  |  直到 11 月前
        1
  •  1
  •   horseyride    11 月前

    你可以试试

    let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),
    #"Grouped Rows" = Table.Group(#"Changed Type", {"Category"}, {{"data", each 
        let a=Table.AddIndexColumn(Table.Sort(_,{{"Date", Order.Ascending}}), "Index", 0, 1, Int64.Type)
        in Table.AddColumn(a,"Output", each try Duration.Days([Date] - a[Date]{[Index]-1}) otherwise null)
    , type table }}),
    #"Expanded data" = Table.ExpandTableColumn(#"Grouped Rows", "data", {"Date", "Output"}, {"Date", "Output"})
    in  #"Expanded data"
    

    enter image description here

        2
  •  1
  •   mkRabbani    11 月前

    您可以创建 计算列 如下所示-

    未测试语法(写在记事本上)。但这个逻辑应该有效。你只需要调整语法错误(如果有的话)。

    output = 
    
    var this_row_category = your_table_name[category]
    var this_row_date = your_table_name[date]
    
    var previous_date_this_category =
    calculate(
        max(your_table_name[date]),
        filter(
            all(your_table_name),
            your_table_name[category] = this_row_category
                && your_table_name[date] < this_row_date
        )
    
    )
    
    return
    if(
        not isnull(previous_date_this_category), 
        this_row_date - previous_date_this_category
    )
    
    
    
        3
  •  0
  •   ttruhcheva    11 月前

    我创建了3个DAX度量(MAXDate和PrevDate可以是最终度量中的变量):

    //计算每个类别的最大日期的一个:

    MAXDate =
    CALCULATE (
        MAX ( 'Table'[Date] ),
        ALLEXCEPT ( 'Table', 'Table'[Category] )
    )
    

    //计算上一日期的日期:

    PrevDate = 
    VAR MaxDate =
        MAX ( 'Table'[Date] )
    VAR MaxPrevDate =
        CALCULATE (
            MAX ( 'Table'[Date] ),
            FILTER (
                ALL ( 'Table' ),
                'Table'[Date] < MaxDate
                    && 'Table'[Category] = MAX ( 'Table'[Category] )
            )
        )
    RETURN
        MaxPrevDate
    

    //一种计算上述两个度量值之间的天数差的度量值:

    DateDiff =
    IF ( [PrevDate] <> BLANK (), DATEDIFF ( [PrevDate], [MAXDate], DAY ) )
    

    结果:

    enter image description here