PowerBI之DAX神功番外篇:第6回 不能使用生成變量數(shù)據(jù)類型的表達(dá)式來(lái)定義計(jì)算列
大家在新建列時(shí),是否遇到過(guò)下面這樣的問(wèn)題?例如我有如下一張表

想給這張表新建列,條件:訂單時(shí)間大于等于15點(diǎn)時(shí),訂單日期自動(dòng)增加一天,否則返回原訂單日期。
上面的公式,會(huì)返回下面的錯(cuò)誤

這就是我們?cè)?strong>《DAX神功》第1卷第4回講到的數(shù)據(jù)規(guī)范,PowerBI的DAX基于SQL思維,它對(duì)數(shù)據(jù)類型的規(guī)范也是基于數(shù)據(jù)庫(kù)的。在數(shù)據(jù)庫(kù)中,日期雖然也是數(shù)字(整型)的一種特殊情況,但是它們二者仍然不是一回事。否則就不用定義出這兩種數(shù)據(jù)類型了。
語(yǔ)法:if(如果條件成立,就返回什么,否則返回什么)
'Sheet1'[訂單日期]+1? ?// 日期與數(shù)值進(jìn)行四則運(yùn)算,之后返回的是數(shù)值
'Sheet1'[訂單日期]? ? ??// 這是日期類型
新建列時(shí):一個(gè)字段里面不能既有數(shù)值,又有日期型。
解決方法,就是讓數(shù)據(jù)類型保持一致
一、變成數(shù)值型
公式解析:任何數(shù)+0還等于這個(gè)數(shù)本身,日期+0就變成了數(shù)值,同理減0也可以

再將數(shù)據(jù)類型改成日期:

二、變成日期時(shí)間型
還有一種方法:《DAX神功》第1卷第4回 講到的
convert函數(shù):在《火力全開(kāi)》筆記17.7中也講過(guò),將這個(gè)函數(shù)用在新建列中,對(duì)每一行的這個(gè)單元格進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換

三、變成文本型
Format函數(shù):《火力全開(kāi)》筆記18課講過(guò),注意Format返回的是文本型

《孫興華講PowerBI火力全開(kāi)》PowerBI必學(xué)課程
https://www.bilibili.com/video/BV1qa4y1H7wp
《DAX神功》文字版合集:
https://www.bilibili.com/read/readlist/rl442274
《DAX神功》視頻版合集:
https://www.bilibili.com/video/BV1YE411E7p3
《DAX神功番外篇》文字版合集:
https://www.bilibili.com/read/readlist/rl478271
PowerBI(DAX函數(shù))、PowerQuery(M函數(shù))、Python辦公自動(dòng)化、Python爬蟲(chóng)、Python數(shù)據(jù)分析、ExcelVBA、WordVBA、AccessVBA、MySQL等等
https://www.bilibili.com/read/cv10222110