我有2張桌子:
- 一個包含一組屬性的屬性:它們的唯一 ID、商品型別和參考點(用于本地化) - 名為 Table_Prop
- 一個包含來自正在搜索屬性的客戶的請求:他們的唯一 ID、報價型別和他們感興趣的參考點。 - 命名為 Table_Req
屬性表
Property ID Offer type Reference points
P1 sell RP1, RP2, RP3
P2 sell RP1, RP4
P3 rent RP5
P4 rent RP5, RP6
P5 sell RP3, RP2
請求表
Request ID Offer type Reference point
R1 sell RP1
R2 rent RP6
R3 sell RP3
我想要的只是為每個請求過濾匹配屬性的 ID。所以我用這個公式:
=TRANSPOSE(FILTER(Table_Prop[Property ID],
(ISNUMBER(SEARCH(Tabel_Req[@[Offer type]], Table_Prop[Offer type], 1))=TRUE)*
(ISNUMBER(SEARCH(Tabel_Req[@[Reference point]], Table_Prop[Reference points]))=TRUE), "NO MATCHES"))
這作業得很好,對于每個請求,它回傳:
R1: P1 P2
R2: P4
R3: P1 P5
但是 1 個客戶有一個或多個他感興趣的參考點,因此請求表將如下所示:
Request ID Offer type Reference points
R1 sell RP1, RP2
R2 rent RP6, RP3
R3 sell RP3, RP4
基本上,現在,我需要一個公式來回傳所有匹配的 ID 屬性,該屬性具有包含在屬性參考點中的請求參考點之一。
它應該回傳這個:
R1: P1 P2 P5
R2: P4
R3: P1 P2 P5
我發現這個公式用“,”分隔符分割單元格值:
=FILTERXML("<t><s>"&SUBSTITUTE(Tabel_Req[@[Reference points]],",","</s><s>")&"</s></t>","//s")
我試過這個公式:
=FILTER(Table_Prop[Property ID], OR(COUNTIF(Table_Prop[@Reference points], "*"&FILTERXML("<t><s>"&SUBSTITUTE(Tabel_Req[@[Reference points]],",","</s><s>")&"</s></t>","//s")&"*"))=TRUE, "NO MATCHES")
但正如我所料,它不起作用。
我怎樣才能達到我的目標,有什么解決方法嗎?任何幫助表示贊賞。
注意:我不想使用 VBA,只是一個單元格中回傳匹配屬性串列的公式。
uj5u.com熱心網友回復:
也許以下內容會有所幫助:

=LET(X,FILTERXML("<t><s>"&SUBSTITUTE(G2,",","</s><s>")&"</s></t>","//s"),TRANSPOSE(FILTER(A$2:A$6,MMULT(ISNUMBER(FIND(", "&TRANSPOSE(X)&", ",", "&C$2:C$6&", "))*(B$2:B$6=F2),SEQUENCE(COUNTA(X),,,0)))))
讓我試著解釋一下(思想)程序:
FILTERXML()將首先將參考點(輸入)“拆分”為一個陣列。有關其作業原理的更多資訊,我想參考
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/338656.html
