人生没有彩排
每一天都是现场直播

XF.Str.PositionOf

语法作用

返回字符串中的指定文本的出现位置,searchMode参数:0:返回第一次出现的位置索引,1:返回最后一次出现的位置索引,2:以表的形式返回所有出现的位置索引;索引位置从1开始。

XF.Str.PositionOf(str:string,findText:string,searchMode:int64)

函数代码

该函数的实现代码如下:

/// 返回字符串中的指定文本的出现位置,searchMode参数:0:返回第一次出现的位置索引,1:返回最后一次出现的位置索引,2:以表的形式返回所有出现的位置索引;索引位置从1开始
FUNCTION XF.Str.PositionOf = (str:string,findText:string,searchMode:int64) =>
    VAR AllPosition = 
        DISTINCT(
            FILTER(
                SELECTCOLUMNS(
                    GENERATESERIES(1,LEN(str)),
                    "Position",FIND(findText,Str,[Value],BLANK())
                ),
                [Position]<>BLANK()
            )
        )
    VAR MinPosition = MINX(AllPosition,[Position])
    VAR MaxPosition = MAXX(AllPosition,[Position])
    RETURN
    FILTER(
        AllPosition,
        SWITCH(
            searchMode,
            0,MinPosition=[Position],
            1,MaxPosition=[Position],
            2,TRUE(),
            ERROR("searchMode参数的可选取值仅为:0、1、2")
        )
    )

应用示例

示例1:

查找字符串 "123,456,789" 中逗号 "," 的第一次出现位置。

XF.Str.PositionOf("123,456,789",",",0)

结果如下:

4

示例2:

查找字符串 "123,456,789" 中逗号 "," 的最后一次出现位置。

XF.Str.PositionOf("123,456,789",",",1)

结果如下:

8

示例3:

查找字符串 "123,456,789" 中逗号 "," 的所有出现位置。

XF.Str.PositionOf("123,456,789",",",2)

结果如下:

Position
4
8
赞(0) 打赏
版权声明:本文为夕枫的原创文章,著作权归作者所有,未经允许不得转载
文章名称:《PowerBI DAX自定义函数-XF.Str.PositionOf》
文章链接:https://www.ximaple.com/posts/1349.html
订阅评论
提醒
guest
0 评论
最新
最久 最赞
内联反馈
查看所有评论

觉得文章有用的话就支持一下吧~

感谢您的打赏支持,我将持续输出有价值的内容!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册

Operation don't support