SQLsever数据,在FR数据集,字符串拆分,求助

如下图,这是一个字符串的值,想要按分隔符【;】分为两个字段。最终想取的值,其实是退后加班的小时数,和提前加班的小时数,以及推后加班有无申请单,和提前加班有无申请单,这四个列。

图片.png

FineReport 今日有雨 发布于 2022-1-28 09:53 (编辑于 2022-1-28 09:57)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
zsh331Lv8专家互助
发布于2022-1-28 10:29

JOINARRAY(GREPARRAY(split(INDEXOFARRAY(split("浮动加班3.08小时(无申请单),提前加班5.78小数(有申请单)",","),1),""),REGEXP(item,"[0-9.]")),"")

-------------

JOINARRAY(GREPARRAY(split(INDEXOFARRAY(split("浮动加班3.08小时(无申请单),提前加班5.78小数(有申请单)",","),2),""),REGEXP(item,"[0-9.]")),"")

————————————————————————————————————

-- 单元格写公式获取即可,灵活运用!

image.png

image.png

最佳回答
0
yzm339714Lv6中级互助
发布于2022-1-28 10:04(编辑于 2022-1-28 10:06)

感觉你这个要拆分好几次, 先用;拆分一次,取第一部分,然后以加班 拆分取第二部分,再以小时拆分取第一部分,得到了退后加班小时数 ,拆分第一次取第一部分的时候 找无申请单这个几个字,找到了就是无申请单 ; 提前加班也是一样的,操作,只是第一次拆分后取第二部分而已  ,

涉及到的函数INDEXOFARRAY 和SPLIT  配合使用,用来绝对取哪一个部分,

FIND 函数 用来找无申请单这个几个字, 具体函数讲解,在帆软选对应函数后旁边可以看到说明

最佳回答
0
胡歌Lv7中级互助
发布于2022-1-28 10:11

先用;将他分成两个字段,再用regexp_substr函数去分别取值

最佳回答
0
3143511Lv5中级互助
发布于2022-1-28 10:11

这个感觉好难啊,请参考:

https://blog.csdn.net/weixin_30879833/article/details/98672279

最佳回答
0
北纬六十六度Lv4初级互助
发布于2022-1-29 14:13

研究一下正则表达式取指定数据,一下就能取到了,参考:

https://help.fanruan.com/finereport/doc-view-252.html

  • 6关注人数
  • 480浏览人数
  • 最后回答于:2022-1-29 14:13
    请选择关闭问题的原因
    确定 取消
    返回顶部