2015-07-21 48 views
1

我正在使用DAX公式嘗試從字符串中刪除數字。該字符串是郵政編碼的前半部分。因此,我已經輸入下列公式爲什麼不能使用這種DAX配方?

=if(Istext(mid([Postcode District],1,1)),(left([postcode district],2)),(left([postcode district],1))) 

這是什麼應該做的是看看第二個字符的文本,並返回2個字母,如果是這樣,一個,如果事實並非如此。

例如,輸入CA1應該返回CA同時B22應該返回B

這簡直就不是這樣做,我不知道爲什麼。所有返回的是前兩個字母,不管第二個字母是文本還是數字。

+0

對不起,你能解釋一下嗎?不明白你的意思。 – Miller86

+0

我不認爲DAX將CODE識別爲操作? – Miller86

+1

不需要apnigise pnuts :)我很高興只是有建議 – Miller86

回答

0

結束了使用=SUBSTITUTE(substitute(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE([Postcode District],"1"," "),"2"," "), "3"," "),"4"," "),"5"," "), "6"," "),"7"," "),"8"," "),"9"," "),0,"") (作爲其DAX它會接受這一點 - 它是標準的XL太多嵌套函數)

因爲它是一個相當難看的公式,我我也會嘗試其他人的回答,看看是否有更優雅的解決方案:)

1

MID函數接受一個字符串作爲參數並且總是返回一個字符串(即使它看起來像一個數字),所以你的IsText總是TRUE。

試試這個

=if(IsNumber(mid([Postcode District],1,1)*1),(left([postcode district],1)),(left([postcode district],2))) 
+0

謝謝戈登,我會給你一個嘗試:)。正如一個註釋,因爲它是一個DAX公式不是一個標準的Excel公式,位置是一個右邊(即1 = 0,2 = 1,3等= 2等) – Miller86

+0

謝謝,我會編輯我的迴應如果其他人正在尋找相同的答案的話。 –

相關問題