我有一組具有這種格式的資料:每個單元格都有一個或一些名稱,每個單元格后面都有一個日期。我想比較每個單元格中顯示的日期并檢查它們是否相同。
單元格內容示例:university XXX (2016-10-21) company YYY (2016-10-22)
我使用公式: =MID(A1,SEARCH("(",A1,1) 1,10) 來查找第一個日期。我怎樣才能找到第二個、第三個、...日期?
先感謝您,
uj5u.com熱心網友回復:
一步一步完成最簡單:
所以分解你的 MID(A1,SEARCH("(",A1,1) 1,10) (并使其更具體到日期 - 你不想匹配“(KACST) ") as:
B1: =SEARCH("(2",A1,1)
and H1: =mid(A1,B1 1,10)
Then add
C1:=SEARCH("(2",A1,B1 1)
這告訴搜索從它已經找到的字符之后的字符開始
I1:=mid(A1,C1 1,10)
等等
uj5u.com熱心網友回復:
如果您有 Office 365 (Windows),根據實際資料的可變性,這是一種可行的方法:
=LET(arr,--MID(FILTERXML("<t><s>" & SUBSTITUTE(A1," ","</s><s>") & "</s></t>","//s[contains(.,'(')]"),2,10),
numDates,COUNT(arr),
AGGREGATE(14,6,arr,SEQUENCE(numDates)))
- 創建一個 XML
- 用于
FILTERXML
僅回傳包含(
- 將這些節點轉換為日期序列號
- 如果后面的 10 個字符
(
不是數字,將 => 錯誤
- 如果后面的 10 個字符
- 回傳這些值。
- 然后您可以根據需要比較這些值
例如,如果您想查看所有日期是否相同:
=COUNT(UNIQUE(
LET(arr,--MID(FILTERXML("<t><s>" & SUBSTITUTE(A1," ","</s><s>") & "</s></t>","//s[contains(.,'(')]"),2,10),
numDates,COUNT(arr),
AGGREGATE(14,6,arr,SEQUENCE(numDates)))))=1
如果您沒有 Office 365,或者您的資料比您顯示的更多樣化,因此我用于確定括號中的值是否為日期的方法不可靠,我建議您開發一個 VBA 解決方案,可能使用常規運算式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/494362.html