gpt4 book ai didi

Excel如何在遇到字符串中的第一个Alpha后停止LEFT公式

转载 作者:行者123 更新时间:2023-12-02 07:28:16 30 4
gpt4 key购买 nike

所以我试图为 vlookup 提取文本字符串的特定部分(部分编号),

我有一个公式,可以在大多数情况下为我提供所需的零件编号,该公式在到达文本字符串中的最后一个数字后停止 LEFT 公式。一些部件号在文本字符串中还有更多数字。

我需要公式返回文本字符串直到最后一个数字,但一旦再次变回 Alpha 就停止。我希望这是有道理的,我已附上屏幕截图来示例问题和我的代码。如果你在 R 列中看到 FR70YERXX/3,它应该停在 Y 之前,但我就是无法理解这个。 Excel Find formula issue

=LEFT(J2,MAX(IFERROR(FIND({1,2,3,4,5,6,7,8,9,0},J2,ROW(INDIRECT("1:"&LEN(J2)))),0)))

最佳答案

将以下代码放入 Excel 的模块中

Function LeftCode(s As String) As String
i = 1
While Not ((Mid(s, i, 1) >= "0") And (Mid(s, i, 1) <= "9")) And (i <= Len(s))
i = i + 1
Wend
If i > Len(s) Then
LeftCode = s
Else
While Not ((Mid(s, i, 1) < "0") Or (Mid(s, i, 1) > "9")) And (i <= Len(s))
i = i + 1
Wend
If i > Len(s) Then
LeftCode = s
Else
LeftCode = Left(s, i - 1)
End If
End If
End Function

然后在 R 列中输入:

=LeftCode(J2)

并将其复制下来

Results

说明

创建一个函数来获取字符串并返回字符串

Function LeftCode(s As String) As String

从第一个字符开始,一次循环遍历字符串一个字符,直到找到数字 (0-9)

i = 1
While Not ((Mid(s, i, 1) >= "0") And (Mid(s, i, 1) <= "9")) And (i <= Len(s))
i = i + 1
Wend

如果我们已经到达末尾,没有数字,则全部返回

If i > Len(s) Then
LeftCode = s

否则继续循环每个字符,直到找到非数字

Else
While Not ((Mid(s, i, 1) < "0") Or (Mid(s, i, 1) > "9")) And (i <= Len(s))
i = i + 1
Wend

如果我们到达终点,那么我们就想要整个事情

    If i > Len(s) Then
LeftCode = s
Else

否则我们只需要最后一个字符

        LeftCode = Left(s, i - 1)
End If
End If
End Function

关于Excel如何在遇到字符串中的第一个Alpha后停止LEFT公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45859290/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com