當前為10.0版本文檔,更多實例內容將在最新幫助文檔中展現,點選跳轉至 最新版幫助文檔

判斷多項字符串至少一項被包含

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)移動端

1609154731156639.jpg

4. 模板下載

附件列表


主題: 原簡體文檔
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽

文 檔回 饋

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

反饋已提交

網絡繁忙