我的单元格中包含要删除的数据。细胞通常如下所示:
alm1 105430_65042M
1993_5689IB
ALM99 3455 344C
0001_4555Alm5
有些但不是所有的单元格都包含类似" almj"在哪里" j"是一个正整数。我想删除那部分。我希望输出看起来像这样:
105430_65042M
1993_5689IB
3455 344C
0001_4555
这样的事情
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"alm1",""),"ALM99",""),"Alm5","")
但是对于我的完整数据集,我需要这是几百深的嵌套函数,因为我的" alm"有时是大写字母,有时不是,整数可以在1到100之间变化。这似乎是一种痛苦的方法。
有没有办法可以告诉它查找列中列出的文本(所以我可以在不同的工作表中有一个列来自alm,alm1,...,alm100)然后也问它忽略大写,然后只是替换东西?
我尝试在函数替换的第二个参数中引用$ M $ 1:$ M $ 100列,但它无效。
SUBSTITUTE(A2,$M$1:$M$100,"")
M栏包含" alm" alm1",...," alm100"等
答案 0 :(得分:2)
这应该适合您,它会返回您提供的示例数据的预期结果:
=IF(COUNTIF(A2,"*alm*")=0,A2,TRIM(SUBSTITUTE(A2&" ",MID(A2&" ",SEARCH("alm",A2),FIND(" ",A2&" ",SEARCH("alm",A2))),"")))
答案 1 :(得分:1)
Excel具有糟糕的字符串处理功能。正则表达式可以使这项任务变得更加容易。
在JavaScript中,它很简单:
string.replace(/ *alm[0-9]+ */gi,'')
这是一个全局(g)不区分大小写的(i)搜索所有内容:
您可以将数据粘贴到此小提琴的 HTML 框中,它会修复它: