【问题标题】:First Week of Month in Power BIPower BI 中每月的第一周
【发布时间】:2020-03-15 00:09:45
【问题描述】:

我在 Power BI 中有一个包含 Day 和 Date 列的日期表。 我想添加一个列,告诉我该周是否包括该月的第一天。 例如,当 11 月 1 日是星期五时,它会返回该周的“是”。 因此,“IsFirstWeekOfMonth”列对于具有每月第一天的一周的工作日显示“是”。 如下所示:

请告诉我如何在 Power BI(M 或 DAX)中执行此操作。非常感谢提前

【问题讨论】:

    标签: dax powerbi-desktop m


    【解决方案1】:

    您可以使用以下逻辑添加计算列,同时检查是否是周末(周六和周日):

    IsFistWeekOfMonth = IF(OR(WEEKDAY('Table'[Date].[Date],2)==6,WEEKDAY('Table'[Date].[Date],2)==7),"No",IF(AND(OR(WEEKNUM(DATE('Table'[Date].[Year],'Table'[Date].[MonthNo],1))==WEEKNUM('Table'[Date].[Date],2),WEEKNUM(DATE('Table'[Date].[Year],'Table'[Date].[MonthNo]+1,1))==WEEKNUM('Table'[Date].[Date],2)),WEEKDAY(DATE('Table'[Date].[Year],'Table'[Date].[MonthNo],1),2)IN{1,2,3,4,5}),"Yes","No")) 
    

    如果这对你有帮助,请告诉我。

    【讨论】:

    • 非常感谢您抽出宝贵时间。这确实很有帮助,但不是 100%。这将为该周提供“是”,但仅从该月的第一天开始。例如,对于上面问题示例中的数据,在您的计算列中,我们将仅在 2019 年 1 月 11 日星期五和 2019 年 2 月 11 日星期六和 2019 年 3 月 11 日星期日为“是”。我需要的是从 2019 年 10 月 28 日星期一开始的“是”。我的意思是,如果一个月的第一天在那里,整个星期都需要有一个“是”。但无论如何,非常感谢你。我一直在思考,如果找到解决方案,我会通知您。
    • 我想到的唯一解决方案是:如果一个月的第一天是星期一,那么在那天和之后的所有四天都加上“是”。或者如果一个月的第一天是星期二,则在该天、前一天和后三天都添加“是”。或者如果一个月的第一天是星期三,那么在那天、前两天和后两天等中添加“是”。是否可以编写这样的代码?
    • 抱歉,请不要详细查看您的问题。编辑了公式。如果这是你真正想要的,现在希望如此,请给我一些反馈:)
    • 哇!非常感谢。当每月的第一天在工作日时,这给出了完全正确的结果,它将从周一到周五返回“YES”!这是惊人的!但只有一个问题。使用您的计算列,当月 1 日是星期六时,它会将前一周返回为“YES”,而当月 1 日是星期日时,它将后一周返回为“YES”。我们能否告诉 if 条件在第一个月是周六或周日时忽略,并在之前和之后的所有周内都返回“NO”?我们只在每月的第一天在工作日而不是在周末时才需要 YES。非常感谢
    • 很高兴为您提供帮助,您的建议也是可行的,但这在查询方面更加“优雅”。与您的上一个问题相关,再次更改了计算列。如果这是您所期望的答案,并且您可以给出正确的答案也很好,谢谢:)
    猜你喜欢
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多