函数问题

用$fine_role获取用户登录角色后,展示明细,然后用find()获取某个角色在全部角色中是否存在,很疑惑的是,查找的角色不存在,为什么会返回TRUE呢?1702261809800.png

1702261871575.png

FineReport 阿洋在燃烧 发布于 2023-12-11 10:30 (编辑于 2023-12-11 10:31)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
CD20160914Lv8专家互助
发布于2023-12-11 10:40

 INARRAY("目录-测试-睡眠保单",SPLIT($fine_role,","))

这样就行了

最佳回答
0
孤陌Lv6资深互助
发布于2023-12-11 10:33(编辑于 2023-12-11 10:36)

这个 是符合 就行 而不是全部比较

用 MAPARRAY() 公式可以

  • 阿洋在燃烧 阿洋在燃烧(提问者) 我查的是“目录-测试-睡眠保单”。他的角色是“目录-测试-睡眠保单-个险渠道”
    2023-12-11 10:34 
  • 阿洋在燃烧 阿洋在燃烧(提问者) 明白了,再套一层MAPARRAY()
    2023-12-11 10:39 
  • 孤陌 孤陌 回复 阿洋在燃烧(提问者) GREPARRAY 也可以
    2023-12-11 10:40 
  • 孤陌 孤陌 回复 阿洋在燃烧(提问者) GREPARRAY(SPLIT(A2,\",\"),item=\"目录-测试-生命保单\")
    2023-12-11 10:42 
  • 阿洋在燃烧 阿洋在燃烧(提问者) 回复 孤陌 好的,多谢!
    2023-12-11 10:44 
最佳回答
0
用户k6280494Lv6资深互助
发布于2023-12-11 10:33(编辑于 2023-12-11 10:41)

字符串包含,你圈起来哪里就包含了啊

image.png

FIND(find_text,within_text,start_num):从指定的索引(start_num)处开始,返回第一次出现的指定子字符串(find_text)在此字符串(within_text)中的索引。

Find_text:需要查找的文本或包含文本的单元格引用。

Within_text:包含需要查找文本的文本或单元格引用。

Start_num:指定进行查找字符的索引位置。within_text里的索引从1开始。如果省略start_num,则假设值为1。

备注:

    如果find_text不在within_text中,FIND函数返回值为0。

    如果start_num不大于0,FIND函数返回错误信息*VALUE!。

    如果start_num大于within_text的长度,FIND函数返回值为0。

    如果find_text是空白文本,FIND函数将在搜索串中匹配第一个字符(即编号为start_num或1的字符)。

示例:

FIND("I","Information")等于1。

FIND("i","Information")等于9。

FIND("o","Information",2)等于4。

FIND("o","Information",12)等于0。

FIND("o","Information",-1)等于*VALUE!。

//修改

INARRAY("目录-测试-睡眠保单",split($fine_role,","))>0

  • 阿洋在燃烧 阿洋在燃烧(提问者) find()不应该是查询整个字符串吗,查出来的不应该是“目录-测试-睡眠保单-个险渠道”吗
    2023-12-11 10:36 
  • 用户k6280494 用户k6280494 回复 阿洋在燃烧(提问者) 判断的是包含,这个字符串“目录-测试-睡眠保单-个险渠道”包含“目录-测试-睡眠保单”
    2023-12-11 10:38 
  • 用户k6280494 用户k6280494 回复 阿洋在燃烧(提问者) 用这个 =INARRAY(\"目录-测试-睡眠保单\",split($fine_role,\",\"))>0
    2023-12-11 10:40 
最佳回答
0
ID1208Lv6高级互助
发布于2023-12-11 10:42(编辑于 2023-12-11 10:42)

image.png

=FIND(true,MAPARRAY(SPLIT("目录-测试-睡眠保单A,目录-测试-睡眠保单B,目录-测试-睡眠保单C",","),item="目录-测试-睡眠保单A"))>0

最佳回答
0
GGGGGGGGGLv5初级互助
发布于2023-12-11 10:44

find函数本身是不会替你识别角色的,它只知道这是个字符串

所以由于"目录-测试-睡眠保单"这串字可以在"目录-测试-睡眠保单-个险渠道"  里找到,就返回TRUE了

要保证万无一失,可以改造一下公式,两个参数都在左右拼一个逗号,只要你角色名称没包含逗号就准确了,如下:

find(",目录-测试-睡眠保单,",  ","+$fine_role+",") > 0

image.png

  • 6关注人数
  • 240浏览人数
  • 最后回答于:2023-12-11 10:44
    请选择关闭问题的原因
    确定 取消
    返回顶部