返回单元格的右文本字符串,直到右起的第一个数字,例如
“GEB.1956年10月14日”必须返回Westerkerk HRL
“GEB.14 1956”必须返回空单元格
“”必须返回空单元格
发布于 2014-11-12 07:52:33
公式解决方案:
=TRIM(MID(A1,1+MAX(FIND({1,2,3,4,5,6,7,8,9,0},A1&"1234567890")*ISNUMBER(FIND({1,2,3,4,5,6,7,8,9,0},A1))),LEN(A1)))
EDIT:我意识到如果有重复的数字,上面的公式可能会遇到问题(例如,如果是1966而不是1956),所以我返回并提出了这个不受该问题影响的公式:
=TRIM(MID(A1,1+LOOKUP(2,1/ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),ROW(INDIRECT("1:"&LEN(A1)))),LEN(A1)))
然而,INDIRECT是一个易失性函数,我通常会尽量避免它。您可以改用一个大于文本字符串长度的数字,以便在不使用易失性函数的情况下实现相同的目标,尽管这实际上可能不会比在公式中使用INDIRECT函数快:
=TRIM(MID(A1,1+LOOKUP(2,1/ISNUMBER(--MID(A1,ROW($1:$255),1)),ROW($1:$255)),LEN(A1)))
所以基本上,你可以使用任何一个公式,无论你喜欢哪一个。
https://stackoverflow.com/questions/26875613
复制相似问题