代码之家  ›  专栏  ›  技术社区  ›  Victor Barreto

使用切片器功率bi按周和一周中的某一天汇总表

  •  0
  • Victor Barreto  · 技术社区  · 2 年前

    我有一个表,如下所示,叫做sales_base,我想按一周中的哪一天对销售额进行汇总,并将其放入条形图中。例如,如果选择日期“04/01/2023”,第一条将为2220,第二条545,第三条45545,第四条6565,剩下的最后三条将为零(下图)

    日期 销售额
    2023年1月1日 2020
    2023年1月1日 200
    2023年1月2日 545
    2023年1月3日 45545
    2023年1月4日 6565
    2023年1月5日 3453
    2023年1月6日 35545
    2023年1月7日 4353
    2023年1月8日 4354
    2023年1月9日 43534
    2023年1月10日 34544
    2023年1月11日 23423
    2023年1月12日 34234
    2023年1月13日 332423
    2023年1月14日 23233
    2023年1月15日 32333
    2023年1月16日 32323
    2023年1月17日 23234
    2023年1月18日 43443
    2023年1月19日 32323
    2023年1月20日 3434
    2023年1月21日 43444
    2023年1月22日 344343
    2023年1月23日 34343
    2023年1月24日 12212
    2023年1月25日 3453
    2023年1月26日 434443
    2023年1月27日 23323
    2023年1月28日 4344343
    2023年1月29日 4355
    2023年1月30日 544554

    我想在下面的代码中解决这个问题,但效果并不好。

    首先,我在数据集中创建了两列

    week_num = WEEKNUM(sales_base[date])
    week_day = WEEKDAY(sales_base[date])
    

    之后,我创建了以下度量:

    WEEK = CALCULATE(AVERAGE(sales_base[sales]),YEAR(sales_base[date]) = YEAR(MAX(sales_base[sale])),sales_base[week_num] = WEEKNUM(MAX(sales_base[date])),sales_base[week_day]<=WEEKDAY(MAX(sales_base[sales])))
    

    我在Y_轴上绘制了上面的度量,在x轴上绘制的是week_day列,但当我在切片器“o4/01/2023”中选择时,它显示了所有条形图,这对我没有用处。

    例如,当我选择04/01/2023时,我希望得到与下图类似的结果:

    enter image description here

    切片机:

    enter image description here

    1 回复  |  直到 2 年前
        1
  •  1
  •   Sam Nseir    2 年前

    您需要一个单独的图表表。使用以下内容创建新的计算表:

    Dim WeekDay = DATATABLE(
        "weekday num", INTEGER, "weekday str", STRING,
        {
          { 1, "Sun" },
          { 2, "Mon" },
          { 3, "Tue" },
          { 4, "Wed" },
          { 5, "Thu" },
          { 6, "Fri" },
          { 7, "Sat" }
        }
      )
    

    创建表格后,单击 weekday str 然后在“列工具”中,选择 Sort by column 并选择 weekday num

    创建两个新度量值:

    Avg Sales = AVERAGE(sales_base[sales])
    
    Avg by Weekday = COALESCE([Avg Sales]('sales_base'[week_day] = SELECTEDVALUE('Dim WeekDay'[weekday num])), 0)
    

    现在更新您的图表以使用:

    X-Axis: 'Dim WeekDay'[weekday num] OR 'Dim WeekDay'[weekday str]
    Y-Axis: [Avg by Weekday]
    

    enter image description here