比较单元格中逗号分隔的字母数字字符

时间:2020-10-19 18:42:20

标签: excel excel-formula

Original Question

请参考上面的原始问题。有人告诉我要问一个新问题。

罗恩·罗森菲尔德(Ron Rosenfeld)的解决方案在数字上效果很好,但是如果我的两个列表都是字母数字(例如, P1234,C4321,P0123,P0678?

公式:

=TEXTJOIN(",",TRUE,IFERROR(1/(1/(ISNUMBER(FIND(","&TRIM(MID(SUBSTITUTE(B2,",",REPT(" ",99)),seq_99,99))&",",","&A2&","))))*TRIM(MID(SUBSTITUTE(B2,",",REPT(" ",99)),seq_99,99)),""))

在第二个TRIM之前,如果我只添加“ 0”,则结果有效,但每个结果前都有一个0。例如:

))))*"0"&TRIM(MID(SUBSTITUTE

结果类似于0C4321,0P0123,0P0678。

2 个答案:

答案 0 :(得分:3)

可以这样修改:

=TEXTJOIN(",",TRUE,IF(ISNUMBER(FIND(","&TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",99)),seq_99,99))&",",","&A1&",")),TRIM(MID(SUBSTITUTE(B1,",",REPT(" ",99)),seq_99,99)),""))

但是有一个较短的版本,不需要命名范围。

=TEXTJOIN(",",TRUE,FILTERXML("<a><b>"&SUBSTITUTE(B2,",","</b><b>")&"</b></a>","//b[contains(',"&A2&",',concat(',', ., ','))]"))

根据版本的不同,退出编辑模式时可能需要使用Ctrl-Shift-Enter而不是Enter进行确认。

答案 1 :(得分:2)

您可以尝试:

enter image description here

C1中的公式:

=TEXTJOIN(",",,FILTERXML("<t><s>"&SUBSTITUTE(A1&","&B1,",","</s><s>")&"</s></t>","//s[preceding::*=.]"))