普通报表截取特殊字符之间的值

我想截取“|”之间的字符提取出来

例如:

XXXX集团|IT中心|软件开发部|前端开发科

需要的结果提取的结果是中心:IT中心  部门:软件开发部

XXXX集团|采购中心|供应链部

需要的结果提取的结果是中心:采购中心  部门:供应链部

XXXX集团|营销中心

需要的结果提取的结果是中心:营销中心  部门: 

*因为每个人的组织架构不同。可能存在以上这种有人细分到科室,有人只细分到部门。甚至有人可能只到中心级。

我实现了到科室的截取。但是我发现我的截取是写死的。会导致其他长度的组织架构 他截取的内容会错乱掉

有没有办法可实现我直接提取他数组之间的第几位?

如没有希望能得到解决方法

split 不行 split($$$,"|")结果变成

Snipaste_2023-05-19_09-19-42.png

FineReport lku 发布于 2023-5-19 09:09 (编辑于 2023-5-19 09:20)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
1592Lv6高级互助
发布于2023-5-19 09:20

"中心:"+INDEXOFARRAY(SPLIT(replace('XXXX集团|营销中心','|','@'),'@'),2)+"  部门:"+INDEXOFARRAY(SPLIT(replace('XXXX集团|营销中心','|','@'),'@'),3)

最佳回答
0
用户k6280494Lv6资深互助
发布于2023-5-19 09:12(编辑于 2023-5-19 09:13)

SPLIT("XXXX集团|IT中心|软件开发部|前端开发科","|")

中心:INDEXOFARRAY(SPLIT("XXXX集团|IT中心|软件开发部|前端开发科","|"),1)

部门:INDEXOFARRAY(SPLIT("XXXX集团|IT中心|软件开发部|前端开发科","|"),2)

  • lku lku(提问者) split 有个毛病。我不知道为什么 他会把我每个字符都用,分开。
    2023-05-19 09:16 
  • lku lku(提问者) 我试过了。INDEXOFARRAY(SPLIT($$$,\"|\"),1) X,X,X,X,集,团,|,I,T,中,心,|,软,件,开,发,部,|,前,端,开,发,科 会变成这样子。然后最后只截取了第二字
    2023-05-19 09:17 
  • lku lku(提问者) 回复 用户k6280494 你看我上传的图。我前两年用它也不会的。我这次用它就变成这样子了
    2023-05-19 09:20 
  • 用户k6280494 用户k6280494 回复 lku(提问者) 确实会,应该是特殊字符的原因
    2023-05-19 09:20 
  • 用户k6280494 用户k6280494 回复 lku(提问者) 楼下给你答案了
    2023-05-19 09:22 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-5-19 09:13(编辑于 2023-5-19 09:20)

INDEXOFARRAY(REVERSEARRAY(split(a2,"\\|")),1)

  • lku lku(提问者) split 不行。他会让我的数组变成X,X,X,X,集,团,|,I,T,中,心,|,软,件,开,发,部,|,前,端,开,发,科 而不是”|\"根据这个区分
    2023-05-19 09:19 
  • Z4u3z1 Z4u3z1 回复 lku(提问者) 上面已经修改了
    2023-05-19 09:20 
最佳回答
0
CD20160914Lv8专家互助
发布于2023-5-19 10:18

有中心与部门或者部,类似这样,这个可以不用固定位置

取中心的:CONCATENATE("中心:",GREPARRAY(SPLIT(a2,"\\|"),FIND("中心",item)>0))

取部门的:CONCATENATE("部门:",GREPARRAY(SPLIT(a2,"\\|"),FIND("部门",item)>0||FIND("部",item)>0))

image.png

  • 4关注人数
  • 421浏览人数
  • 最后回答于:2023-5-19 10:18
    请选择关闭问题的原因
    确定 取消
    返回顶部