【问题标题】:Finding series of missing numbers in a cell that has numbers separated by commas in Excel在 Excel 中以逗号分隔数字的单元格中查找一系列缺失的数字
【发布时间】:2020-12-21 17:53:21
【问题描述】:

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

【问题讨论】:

  • 如果某个答案有助于解决问题,请检查答案旁边的 ✓ 符号。

标签: string excel-formula excel-2010 comma string-function


【解决方案1】:

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

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

【讨论】:

  • 很好的解决方案!这可能是它!
  • 非常好的解决方案。为什么你使用 ROW(INDIRECT("1:18"))?我尝试将其简化为 ROW(1:18) 并且它也有效。
  • 如果您在工作表中插入新行,ROW(1:18) 将自动增加到另一个数字,而 ROW(INDIRECT("1:18")) 保持不变。
【解决方案2】:

没有 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

【讨论】:

    【解决方案3】:

    使用 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)
    

    【讨论】:

      猜你喜欢
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多