Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powerbi 使用power bi中的format函数无法使用月份名称_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 使用power bi中的format函数无法使用月份名称

Powerbi 使用power bi中的format函数无法使用月份名称,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,我已使用以下方法来获取该月的声明日期 multiemp[Day] - WEEKDAY(multiemp[Day],2) 例如,如果我的日期为2018年5月22日,在使用上述查询后,获得了预期的输出,即2018年5月20日 现在,我尝试使用上面的查询和格式化功能获取月份名称 format(month(multiemp[Day] - WEEKDAY(multiemp[Day],2)),"mmm") 结果出乎意料,而不是5月,1月人口正在增加 当与下个月功能验证时,预期结果到达。即,5 month

我已使用以下方法来获取该月的声明日期

multiemp[Day] - WEEKDAY(multiemp[Day],2)
例如,如果我的日期为2018年5月22日,在使用上述查询后,获得了预期的输出,即2018年5月20日

现在,我尝试使用上面的查询和格式化功能获取月份名称

format(month(multiemp[Day] - WEEKDAY(multiemp[Day],2)),"mmm")
结果出乎意料,而不是5月,1月人口正在增加

当与下个月功能验证时,预期结果到达。即,5

month(multiemp[Day] - WEEKDAY(multiemp[Day],2)
但仅在将月份编号更改为月份名称时出现问题

请参阅以下资料:

使用的公式

weekstartday = multiemp[Day] - WEEKDAY(multiemp[Day],2)
weekstartday_month = month(multiemp[weekstartday])
Month_name = format(multiemp[weekstartday_month],"mmm")
another_ans = format(dateadd(multiemp[Day],-weekday(multiemp[Day],2),day),"mmm")
another_answer_date = dateadd(multiemp[Day],-weekday(multiemp[Day],2),day)
编辑:第2天 将列的数据类型修改为日期时间/时区

刷新后,数据没有更改

找到了解决办法

解决方案1:

mnname = format(multiemp[weekstartday].[Date],"mmm")
mnname = format(multiemp[weekstartday].[Date],"mmm")
解决方案2:

Month_name = format(date(YEAR(multiemp[weekstartday]),MONTH(multiemp[weekstartday]),day(multiemp[weekstartday])),"mmm")
Month_name = format(date(YEAR(multiemp[weekstartday]),MONTH(multiemp[weekstartday]),day(multiemp[weekstartday])),"mmm")

提前感谢

格式化列,而不是重复列DAX语句

Column = FORMAT(*nameOfYourStartOfWeekColumn*,"mmm")
由于FORMAT…、MMM或FORMAT…、MMMM将日期类型和非数字类型作为参数,请尝试以下操作

format(dateadd(multiemp[Day],-weekday(multiemp[Day],2),day),"MMM")
如果你想把一周的开始日定为周一

format(dateadd(multiemp[Day],-weekday(multiemp[Day],3),day),"MMM")
编辑

验证日期列是否为日期或日期\时间类型

解决方案1:

mnname = format(multiemp[weekstartday].[Date],"mmm")
mnname = format(multiemp[weekstartday].[Date],"mmm")
解决方案2:

Month_name = format(date(YEAR(multiemp[weekstartday]),MONTH(multiemp[weekstartday]),day(multiemp[weekstartday])),"mmm")
Month_name = format(date(YEAR(multiemp[weekstartday]),MONTH(multiemp[weekstartday]),day(multiemp[weekstartday])),"mmm")

谢谢,我已经尝试过这个解决方案,但是当我执行以下一个dateaddmultiemp[Day],-weekdaymultiemp[Day],2,Day而不是dates@Smart003尝试使用formatmultiemp[Day]-WEEKDAYmultiemp[Day],2,mmm.@Smart003您能给出一个返回空格的示例吗?谢谢请看最后两栏另一个答案和另一个回答日期谢谢…我已经按照建议尝试了…但我还是得到了相同的答案issue@Smart003我已经复制了你的代码,这对我很有用。你能用问题的图片再次编辑你的问题,并向我展示你用来复制问题的代码吗?更改:Month\u name=formatmultiemp[weekstartday\u Month],mmm到Month\u name=formatmultiemp[weekstartday],mmmAlso将你的“Day”列格式改为DateTime dd/mm/yyyyy 00:00:00如果你急需,你可以使用开关。。。获取月份名称。但正确的做法是找出格式。。。在您的情况下,未按预期工作。