使用 Excel Table 中的整个字符串过滤掉部分文本字符串

Filter out parts of text strings using whole String in Excel Table

我想使用 A 列中的整个文本字符串过滤掉 B 列(在长列表的行中分别编码字符串组合)。

我所做的是在 B 列中手动过滤掉 table 几个字符串,但将来我会得到很多字符串,我需要快速有效地进行过滤。

C 列是每行 B 列的所有组合的结果,我需要原样的值,因此没有唯一值。因为如果您查看 B 列和组合,其中一些组合的代码不止一个(这很好),我需要在结果列中包含准确的组合。

在 B 列和 C 列中,您可以在行中看到“基值”,它们是预先定义的,应该在那里。

我使用这个函数做了一些调整:

=FILTER(Table1;ISNUMBER(SEARCH("CSxxxFX_CE1,CE2_Dxx_Exx_FB0_FMx_GP3_IT0_JH0_LB0_MV1_MW0_NZ0_OZ0_QS0";Table1[Code String])))

但它实际上不能将整个字符串输入...只能输入部分内容。类似于我在 Power Query 中所做的....

我也会接受 VBA 解决方案..

数据和工作簿在下面的 link 上。

https://docs.google.com/spreadsheets/d/1nQxYcrj_jnv2xf-QX9hwKCjdWdso2QM7/edit?usp=sharing&ouid=101738555398870704584&rtpof=true&sd=true

对,如果我现在理解正确的话;以下可能有效:

E2中的公式:

=VSTACK(B2:B3,UNIQUE(FILTER(B4:B374,BYROW(IFERROR(SEARCH(","&TEXTSPLIT(A2,{"_",","})&",",","&B4:B374&","),0),LAMBDA(a,SUM(a))),"None Found")))

TEXTSPLIT() and VSTACK()是目前ms365内幕用户可用的比较新的功能BETA-channels.


如果没有访问权限,可以在 C4 中使用以下内容(假设您将静态地引入 B2:B3

=UNIQUE(FILTER(B4:B374,LET(X,TRANSPOSE(FILTERXML("<t><s>"&SUBSTITUTE(SUBSTITUTE(A2,",","_"),"_","</s><s>")&"</s></t>","//s")),MMULT(IFERROR(FIND(","&X&",",","&B4:B374&","),0),SEQUENCE(COUNTA(X),,,0))),"None Found"))