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
Date 日期为幂BI的DAX条件公式_Date_Powerbi_Dax - Fatal编程技术网

Date 日期为幂BI的DAX条件公式

Date 日期为幂BI的DAX条件公式,date,powerbi,dax,Date,Powerbi,Dax,我有几个带有日期的列(在PBI建模中格式为日期)。每一列代表一个阶段(“开始”-“完成”),我需要一个新的列来显示每一行所处的阶段 到目前为止,我有: Procurement Stage = IF(Milestones[Close Project]<>"1/01/1900","Close Project",IF(Milestones[Enable The Contract]<>"1/01/1900","Enable The Contract",IF(Milestone

我有几个带有日期的列(在PBI建模中格式为日期)。每一列代表一个阶段(“开始”-“完成”),我需要一个新的列来显示每一行所处的阶段

到目前为止,我有:

Procurement Stage = IF(Milestones[Close Project]<>"1/01/1900","Close 
Project",IF(Milestones[Enable The Contract]<>"1/01/1900","Enable The 
Contract",IF(Milestones[Award Contract]<>"1/01/1900","Award 
Contract",IF(Milestones[Recommend Offer]<>"1/01/1900","Recommend 
Offer",IF(Milestones[Evaluate Offers]<>"1/01/1900","Evaluate 
Offers",IF(Milestones[Implement Strategy]<>"1/01/1900","Implement 
Strategy",If(Milestones[Strategy Approval]<>"1/01/1900","Strategy 
Approval",IF(Milestones[Conduct Analysis]<>"1/01/1900","Conduct 
Analysis",IF(Milestones[Initiate Project]<>"1/01/1900","Initiate Project","Not 
Yet Started")))))))))
采购阶段=如果(里程碑[结束项目]“1900年1月1日”,“结束 项目“,如果(里程碑[启用合同]”,1900年1月1日,“启用 合同“,如果(里程碑[授予合同]”,1900年1月1日,“授予 合同“,如果(里程碑[推荐报价]”,1900年1月1日,“推荐 报价“,如果(里程碑[评估报价]”,1900年1月1日,“评估 提供”,如果(里程碑[实施战略],“1900年1月1日”,“实施 战略”,如果(里程碑[战略批准],“1900年1月1日”,“战略 批准”,如果(里程碑[进行分析],“1900年1月1日”,“进行 分析“,如果(里程碑[启动项目]”,1900年1月1日,“启动项目”,“不 但却开始了(()()()) 它会出现以下错误:

DAX比较操作不支持将日期类型的值与文本类型的值进行比较。考虑使用“值”或“格式”函数来转换其中的一个值。

我仔细检查并确保所有列的格式都是相同的-日期

有人能帮忙吗

我需要在建模中完成,因此我需要在DAX中完成

谢谢

Evgeny

试试:

Procurement Stage =
VAR My_Date = DATE ( 1900, 1, 1 )
RETURN
    SWITCH (
        TRUE(),
        Milestones[Close Project] <> My_Date, "Close Project",
        Milestones[Enable The Contract] <> My_Date, "Enable The Contract",
        Milestones[Award Contract] <> My_Date, "Award Contract",
        Milestones[Recommend Offer] <> My_Date, "Recommend Offer",
        Milestones[Evaluate Offers] <> My_Date, "Evaluate Offer",
        Milestones[Implement Strategy] <> My_Date, "Implement Strategy",
        Milestones[Strategy Approval] <> My_Date, "Strategy Approval",
        Milestones[Conduct Analysis] <> My_Date, "Conduct Analysis",
        Milestones[Initiate Project] <> My_Date, "Initiate Project",
        "Not Yet Started"
    )
采购阶段=
VAR My_Date=日期(1900,1,1)
返回
开关(
真(),
里程碑【关闭项目】我的_日期,“关闭项目”,
里程碑[启用合同]我的_日期,“启用合同”,
里程碑[授予合同]我的_日期,“授予合同”,
里程碑[推荐报价]我的日期,“推荐报价”,
里程碑[评估报价]我的日期,“评估报价”,
里程碑[实施战略]我的_日期,“实施战略”,
里程碑【战略批准】我的_日期,“战略批准”,
里程碑【行为分析】我的_日期,“行为分析”,
里程碑【启动项目】我的_日期,“启动项目”,
“尚未开始”
)

错误与您的列无关。文本
“1/01/1900”
是文本类型,不能直接与日期类型列进行比较。@AndreyNikolov,谢谢。我使用日期(1900,1,1)将“1/01/1900”转换为日期格式。它对汉克斯有效。我使用日期(1900,1,1)将“1/01/1900”转换为日期格式。成功了。