我有一列包含字串。對于列中的每一行,我想檢查字串是否以陣列中包含的幾個字串之一開頭。這個陣列可以包含任意數量的字串來檢查列。
我想要的輸出是一個陣列 {TRUE;FALSE;TRUE;TRUE; 等},其中,如果該字串與任何包含在陣列中的字串的開始回傳TRUE。
有人知道怎么做嗎?謝謝!
澄清編輯: Office 365(版本 2109)。我無法共享電子表格本身,但該列包含諸如 {1.1;1.1.1;1.1.2;1.2;1.3; 之類的值。等},并且有問題的陣列類似于{1.1;1.2},所以我希望它知道在這種情況下列中的哪些單元格以 1.1 或 1.2 開頭。所以它基本上是一個分層排序的串列,我希望能夠將給定的資料行拉入一個陣列,無論給定的資料行是陣列中的任何專案的子項還是它本身。
理想情況下,它只是一個公式解決方案,但如果有必要,我對 VBA 很酷。
示例資料

請記住,在實際資料中,B 列中有許多單元格,其中包含的條目不止兩個。
uj5u.com熱心網友回復:
假設要檢查的第一個條目在A1:
=0 LEFT(A1,LEN(MyArray))=MyArray
放置在作業表中的某個位置,將產生一個與MyArray維度相同的溢位陣列,并包含所需的布林值。我讓你來決定如何處理這個結果陣列。
uj5u.com熱心網友回復:
我們可以使用 MMULT 和 MATCH 來回傳正確的陣列:
=LET(
lkprng, FILTER(A:A,A:A<>""),
depcll, B2&CHAR(10),
depclm, FILTERXML("<a><b>"&SUBSTITUTE(depcll,CHAR(10),"</b><b>")&"</b></a>","//b"),
dep, TRANSPOSE(depclm&""),
mtch, --(ISNUMBER(MATCH(LEFT(lkprng,LEN(dep)),dep,0))),
mmt, MMULT(mtch,SEQUENCE(COUNTA(dep))),
TEXTJOIN(CHAR(10),,FILTER(lkprng,mmt>0,"")))

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/319083.html
上一篇:使用ExcelVBADir()函式回圈并打開檔案目錄提前退出
下一篇:如何將具有值的陣列放入一列
