【问题标题】:power bi: different calculations for several rowspower bi:多行的不同计算
【发布时间】:2021-06-29 22:01:34
【问题描述】:

请您帮我在 Power BI 中为 2 行应用不同的计算:

也就是改造这张表:

client_ids products purchased month
1          0        0         jan
2          1A       1         jan
2          1B       1         jan
3          0        0         jan
4          0        0         jan
5          0        0         feb

进入这个:

purchased jan feb
1         1   
0         3   1

即进行计算:

-购买时 = 0 - 按月计算,客户

-购买时 = 1 - 客户每月不同计数

谢谢。

我用的方法:

-在查询编辑器中创建对主查询的引用

-删除包含产品的列

-删除重复项

但这会使下载报告变慢。

【问题讨论】:

    标签: powerbi powerbi-desktop


    【解决方案1】:

    要返回预期的输出,您可以使用两个步骤从数据中获取结果:

    假设这是带有日期的表格:

    首先,计算与今天不同的月份以找到最近的月份(您可以根据您的数据性质尝试其他方法):

    Mon Diff = (YEAR(NOW()) - YEAR(Sheet1[date])) + (MONTH(NOW()) - MONTH(Sheet1[date]))
    

    第二,将最近一个月列为当前:

    rank = 
    var ranking = RANKX(Sheet1,Sheet1[Mon Diff],,,Dense)
    return
    SWITCH(ranking,1,"prior",2,"current")
    

    第三,从购买列中生成不同的值

    Table = DISTINCT(Sheet1[purchased])
    

    第四,计算前一个月0和1的频率,2月同理

      Jan = CALCULATE(COUNT(Sheet1[rank]),Sheet1[rank]="prior",
            Sheet1[purchased]=EARLIER('Table'[purchased])) 
    
    
     Feb = CALCULATE(COUNT(Sheet1[rank]),Sheet1[rank]="current",
            Sheet1[purchased]=EARLIER('Table'[purchased])) 
    

    infor 的新表(1 月,购买 2 出现 2 次而不是 1 次):

    【讨论】:

    • 健祥,谢谢。第一步(创建具有不同值的列)给了我错误:在需要单个值的地方提供了一个包含多个值的表。我也很乐意自动计算每个月的统计数据,因为每个月我都必须包括最后一个月来报告并排除第一个月。
    • Distinct 函数应该只返回唯一值,为什么会出现错误,或者您显示的表格不是来自数据源而是来自矩阵表?您的第二部分可以通过将月份转换为 1 和 2 的索引来解决,然后它会自动计算,你明白我的意思吗?
    • 健祥,谢谢你的回复。我完全不明白你的意思。是的,我有一个矩阵表。我是否应该像字典一样使用 DISTINCT 创建一个单独的表。关于将月份转换为整数,我有不同年份的信息,因此仅将月份转换为数字是不够的。如果您能提供更多详细信息,我们会很高兴。
    • 当你尝试从矩阵表中获取distinct值时肯定会返回错误,你应该只从源表中获取值。请参阅我编辑的关于计算修复值的答案。
    猜你喜欢
    • 2022-12-05
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多