为什么这个DAX配方不工作?

我目前正在使用DAX公式尝试从string中删除数字。 该string是邮政编码的前半部分。 因此我input了下面的公式

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

这个应该做的是看第二个字符是否是文本,如果是则返回2个字母,如果不是则返回2个字母。

例如,inputCA1应该返回CAB22应该返回B

这根本就没有这样做,我不知道为什么。 所有正在返回的是前两个字母,不pipe第二个字母是文本还是数字。

MID函数接受一个string作为参数,并且总是返回一个string(即使它看起来像一个数字),所以你的IsText总是TRUE。

尝试这个

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

=SUBSTITUTE(substitute(SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE( SUBSTITUTE([Postcode District],"1"," "),"2"," "), "3"," "),"4"," "),"5"," "), "6"," "),"7"," "),"8"," "),"9"," "),0,"") (因为它的DAX它会接受这个 – 对于标准XL来说嵌套函数太多了)

因为这是一个相当丑陋的公式,我也会试着别人的答案,看看是否有更优雅的解决scheme:)