反馈已提交

网络繁忙

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

  • 文档创建者:axing
  • 历史版本:7
  • 最近更新:Ehin-马艺轩 于 2024-04-26
  • 1. 概述

    1.1 应用场景

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

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

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

    222

    1.2 实现思路

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

    2. 解决步骤

    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, SPLIT(字符串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

    3. 示例

    3.1 模板设计

    1)将数据集字段拖到单元格 A2、B2 ,如下图所示:

    2020-12-28_19-19-28.jpg

    2)依次选中 C2~G2 单元格,设置形态公式,如下表所示:


    单元格公式作用
    C2SPLIT(A2,",")将字符串1分割成数组
    D2IF(FIND(",", B2) > 0, SPLIT(B2,","), ARRAY(B2))第二个字符串转化为数组
    E2GREPARRAY(C2, INARRAY(item, SPLIT(D2,",")) > 0)判断字符串1转化的数组的每一项是否存在字符串 2 数组
    F2IF(LEN(E2)>0,"包含","不包含")判断上一步结果的项数,项数大于0则包含,否则不包含
    G2IF(LEN(GREPARRAY(SPLIT(A2,","), INARRAY(item, IF(FIND(",", B2) > 0, SPLIT(B2,","), ARRAY(B2))) > 0)) > 0, "包含", "不包含")整合公式

    2020-12-28_19-22-42.jpg


    3.2 效果预览

    1)PC端

    保存模板,点击PC端预览,如下图所示:

    2020-12-28_19-23-30.jpg

    2)移动端

    4. 模板下载

    附件列表


    主题: 报表专题
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持