1

我试图在一个单元格中找到所有缺失的数字,这些数字的值用逗号分隔,但前提是 A 列在文本中有“E”。下面我有一个数据样例以及 C 列中的预期结果应该是什么:

4

3 回答 3

2

C2,数组(Ctrl+Shift+Enter)公式向下复制:

=IF(ISERR(FIND("E",A2)),B2,TEXTJOIN(",",1,IF(ISERR(FIND(","&ROW(INDIRECT("1:18"))&",",","&B2&",")),ROW(INDIRECT("1:18")),"")))

在此处输入图像描述

于 2020-12-25T12:34:50.010 回答
1

使用 Office 365:

=IF(ISNUMBER(FIND("E",A2)),LET(x,FILTERXML("<a><b>"&SUBSTITUTE(B2,",","</b><b>")&"</b></a>","//b"),y,SEQUENCE(18),TEXTJOIN(",",TRUE,FILTER(y,ISERROR(MATCH(y,x,0))))),B2)

在此处输入图像描述

于 2020-12-28T20:00:25.597 回答
1

没有 VBA 脚本就没有好的解决方案。

没有 VBA 的解决方案

  1. 使用此功能将逗号分隔的数字转换为分隔单元格
=TRIM(MID(SUBSTITUTE($A2;",";REPT(" ";LEN($A2)));(D$1-1)*LEN($A2)+1;LEN($A2)))

来源:https ://exceljet.net/formula/split-text-with-delimiter

  1. 并编写公式以检查所需范围内是否缺少值:
=IF(COUNTIF($D2:$H2;"=1")>0;"";"1,")&IF(COUNTIF($D2:$H2;"=2")>0;"";"2,")&IF(COUNTIF($D2:$H2;"=3")>0;"";"3,")&IF(COUNTIF($D2:$H2;"=4")>0;"";"4,")&IF(COUNTIF($D2:$H2;"=5")>0;"";"5,")

这是范围 1-5 的示例,您可以根据需要多次复制公式的一部分来调整自己。

  1. 从字符串中修剪最后一个逗号
=IF(LEN($C2)<>0;LEFT($C2;LEN($C2)-1);"")

检查单词是否包含子字符串的公式:

=ISNUMBER(SEARCH("I";$A8))

如果单元格A8中的单词包含字母“I” ,则返回 true 。

这是带有示例的 XLS 文件:https ://bpavol.sk/downloads/missing_numbers.xls

于 2020-12-24T20:09:49.403 回答