【发布时间】:2017-11-20 17:11:35
【问题描述】:
我有一个包含客户信息的专栏。我只想从每个单元格中提取 CS 编号。以下是一些单元格外观的示例。
John Smith/CS41628644/555-555-5555
johnsmith,cs41923409,5555555555
John Smith - CS41821976 - 555-555-5555
Smith CS21893002 PN 5555555555
John Smith 555-555-5555 (CS17838618)
如您所见,就 CS# 在单元格中的位置或在其之前或之后的内容而言,它们并没有遵循一致的模式。更复杂的是,在少数情况下,数字是 7 位而不是 8 位(但绝大多数是 8 位)。
这就是我想做的事情。编写一个函数说:“当找到'CS'(不区分大小写)时,提取所有连续的整数,直到找到一个非整数,然后停止。”
这有意义吗?有一个更好的方法吗?我目前的公式实际上缺少一些 8 位 CS 数字,所以我的想法是我应该从头开始。以下是我的更多内容。
=LOOKUP(2,1/(MMULT(0+(ISNUMBER(-MID(" "&N252,ROW(INDIRECT("1:"&LEN(N252)))+{0,1,2,3,4,5,6,7,8,9},1))+0={0,1,1,1,1,1,1,1,1,0}),{1;1;1;1;1;1;1;1;1;1})=10),MID(N252,ROW( INDIRECT("1:"&LEN(N252))),8))
【问题讨论】:
-
我无法说明如何在 Excel 中执行此操作,但如果您可以使用正则表达式,则可以匹配
[cC][sC](\d+)。不是答案,而是给 Google 一些东西。 -
@Vityata - 有什么建议吗?
-
我们可以安全地说如果“CS”后面的数字是8个字符,最后一个字符是数字吗?如果“CS”后面的第 8 个数字是非数字,那么 CS 是 7 个字符?
-
@BruceWayne 是的,这是正确的。如果 CS 是 8 个数字,则第 8 个数字是数字。如果不是,CS 是 7 个数字
标签: excel function excel-formula