判断多项字符串至少一项被包含

编辑
  • 文档创建者:axing
  • 浏览次数:2901次
  • 编辑次数:3次
  • 最近更新:Kevin-s 于 2019-06-18
  • 1. 描述

    有时候我们要判断一个多项字符串是否至少有一项被另外个字符串包含。

    如:有一批货原本是属于"A 供货商,B 供货商"的,结果却被"B 供货商,C 供货商"拼车拉走了。

    这批货有没有出问题呢,只要判断"A 供货商,B 供货商"中是否至少有一项在"B 供货商,C 供货商"中,如果有就没问题。

    222


    2. 思路

    将两个字符串都转化为数组,判断一个数组的每一项是否存在其中一项在另外个数组中,如果有,则包含,否则不包含。


    3. 解决步骤

    1)将字符串1分割成数组:SPLIT(字符串1,",")

    222

    2)确保第二个字符串转化为数组:IF(FIND(",", 字符串2) > 0,SPLIT(字符串2,","), ARRAY(字符串2))

    这是因为字符串 2 中如果没有分隔符,则SPLIT(字符串2,",")的结果还是一个字符串。

    字符串 1 就算没转化成功也能参与后面的运算,就不强制。

    222

    3)判断字符串1转化的数组的每一项是否存在字符串 2 数组中:GREPARRAY(字符串1数组, INARRAY(item, 字符串2数组) > 0)

    这里使用了 INARRAY( ) 函数来判断是否存在, INARRAY( ) 的第二个参数一定要是数组,这就是第二步需要强制转化的原因。

    222

    4)判断上一步结果的项数,项数大于0则包含,否则不包含:IF(LEN(上一步结果)>0,"包含","不包含")

    222

    5)综合判断公式为:IF(LEN(GREPARRAY(SPLIT(字符串1,","), INARRAY(item, IF(FIND(",", 字符串2) > 0, SPLIT(字符串2,","), ARRAY(字符串2))) > 0)) > 0, "包含", "不包含")

    222


    附件列表


    主题: 报表应用
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]