为什么这个 DAX 公式不起作用?
Why won't this DAX formula work?
我目前正在使用 DAX 公式尝试从字符串中删除数字。该字符串是邮政编码的前半部分。因此,我输入了以下公式
=if(Istext(mid([Postcode District],1,1)),(left([postcode district],2)),(left([postcode district],1)))
这应该做的是查看第二个字符是否为文本,return如果是则为 2 个字母,否则为一个。
例如,输入 CA1
应该 return CA
而 B22
应该 return B
这根本不是这样做的,我不确定为什么。 return编辑的只是前两个字母,无论第二个字母是文本还是数字。
MID 函数将一个字符串作为参数,并且始终 return 一个字符串(即使它看起来像一个数字),因此您的 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,它的嵌套函数太多了)
因为这是一个非常丑陋的公式,我也会尝试其他人的答案,看看是否有更优雅的解决方案:)
我目前正在使用 DAX 公式尝试从字符串中删除数字。该字符串是邮政编码的前半部分。因此,我输入了以下公式
=if(Istext(mid([Postcode District],1,1)),(left([postcode district],2)),(left([postcode district],1)))
这应该做的是查看第二个字符是否为文本,return如果是则为 2 个字母,否则为一个。
例如,输入 CA1
应该 return CA
而 B22
应该 return B
这根本不是这样做的,我不确定为什么。 return编辑的只是前两个字母,无论第二个字母是文本还是数字。
MID 函数将一个字符串作为参数,并且始终 return 一个字符串(即使它看起来像一个数字),因此您的 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,它的嵌套函数太多了)
因为这是一个非常丑陋的公式,我也会尝试其他人的答案,看看是否有更优雅的解决方案:)