源單元格是這個字串:A[B,C,D]E
需要將所有組合生成不同的單元格:
ABE
ACE
ADE
應該使用更復雜的源,例如A[B,C,D]E[F,G]:
ABEF
ACEG
ADEF
ABEG
ACEF
ADEG
uj5u.com熱心網友回復:
如果您可以訪問
公式B1:
=LET(X,"<t><s>",Y,"</s><s>",Z,"</s></t>",TRANSPOSE(FILTERXML(X&SUBSTITUTE(REDUCE("",FILTERXML(X&SUBSTITUTE(SUBSTITUTE(A1,"]","["),"[",Y)&Z,"//s[node()]"),LAMBDA(a,b,TEXTJOIN(",",,IFERROR(FILTERXML(X&SUBSTITUTE(a,",",Y)&Z,"//s"),"")&TRANSPOSE(FILTERXML(X&SUBSTITUTE(b,",",Y)&Z,"//s"))))),",",Y)&Z,"//s")))
是的,簡而言之,這很難解釋,但無論如何我都會嘗試=)
- 的第一個引數
REDUCE()是我們的起始值,在我們的例子中,我們需要字串值,所以我們使用空字串""。稍后在此函式中,我們可以將此起始值稱為“a”。 - 第二個引數是范圍參考或陣列。在這種特殊情況下是一個陣列,因為我們曾經
FILTERXML()將輸入分成不同的部分。 - 在第三個引數中,有一個嵌套的
LAMBDA(). 此函式有兩個自定義命名變數,“a”和“b”。請注意,我們已經在 的第一個引數中設定了“a”值REDUCE()。'b' 值是第二個引數中陣列的每個元素的值。
現在的想法是,隨著下一個元素的每次傳遞,LAMBDA()執行遞回函式。當我們的第一個元素通過時,嵌套函式的本質是將前一個元素的每個子節點(或第一次通過的空字串)與當前元素的每個子節點連接起來。REDUCE()只有當所有元素都通過時才會回傳最終結果LAMBDA()。
這個最后的字串將最終通過FILTERXML(). 為了更好地理解這個特定功能,我想參考
uj5u.com熱心網友回復:
編輯:我的錯,我忘了以不同的方式組合字符。我會盡快更新修復程式。
原答案:
假設您只查看要組合的單個字串,您可以在沒有 lambda 函式的情況下執行此操作。請注意,我根本沒有對此進行優化:
=LET(
Txt, A1,
Seq, SEQUENCE(LEN(Txt)),
TxtArr, MID(Txt, Seq, 1),
Open, IFERROR(FIND("[",TxtArr),0),
Close, IFERROR(FIND("]",TxtArr),0) * -1,
Starts, FILTER(Open * Seq, Open <> 0),
Lens, FILTER(-Close * Seq, Close <> 0) - Starts 1,
ORs, SUBSTITUTE(MID(Txt, Starts 1, Lens - 2),",",""),
OrGroup, MMULT(IF(Seq >= TRANSPOSE(Seq)=TRUE,1,0),Open),
Mask, -MMULT(IF(Seq >= TRANSPOSE(Seq)=TRUE,1,0),Open Close) 1,
Masked, MID(Txt, Mask*Seq, 1),
ReplacedMasked, IF(Masked = "]", INDEX(ORs, OrGroup), Masked),
CleanArray, FILTER(ReplacedMasked,ISERROR(ReplacedMasked)=FALSE),
ArrayLens, LEN(CleanArray),
ArrayProd, PRODUCT(ArrayLens),
ExtendArray, REPT(CleanArray, ArrayProd/ArrayLens),
CharacterArray, MID(TRANSPOSE(ExtendArray), SEQUENCE(ArrayProd),1),
ReturnLen, ROWS(CleanArray),
MID(CONCAT(CharacterArray), SEQUENCE(ROWS(CharacterArray))* ReturnLen - ReturnLen 1, ReturnLen)
)
這個公式需要你的文本,并找到括號。它創建了一個名為CleanArray. 它查找組合中重復字符的總數,CleanArray以便每行包含一個字串的所有選項的長度。它組合了每個字串的第一個字符,然后是每個字串的第二個字符,依此類推。最后,它將所有內容連接在一起并將其重新分隔成行。
| 一種 | A[B,C] | A[B,C][D,E] |
|---|---|---|
| 一種 | AB | ABD |
| 交流電 | 高手 | |
| ABD | ||
| 高手 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/337311.html
