使用 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 上。
对,如果我现在理解正确的话;以下可能有效:
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"))
我想使用 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 上。
对,如果我现在理解正确的话;以下可能有效:
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"))