1

エクセルの問題です。文字列内のテキストと数字を分離する必要があります。文字列は数字で始めることも、文字で始めることもできます。テキストまたは数字の間にスペースが入っている可能性があります。そのため、式は 2 つの列に分けて、1 つの列がテキストのみで構成され、もう 1 つの列が数値のみで構成されているように十分に汎用性が高い必要があります。助けてください。

どうもありがとうございました

テキスト文字列の例

  • 07 7878 8788 ABC JKSDKJK
  • ABCVG HDH 656688
  • AGSGD89789798798
  • 798 99AJSUDFK
4

2 に答える 2

1

テキストのみ

Function Alphas(ByVal strInString As String) As String Dim lngLen As Long, strOut As String Dim i As Long, strTmp As String

lngLen = Len(strInString)
strOut = ""
For i = 1 To lngLen
    strTmp = Left$(strInString, 1)
    strInString = Right$(strInString, lngLen - i)
    'The next statement will extract BOTH Lower and Upper case chars
    If (Asc(strTmp) >= 65 And Asc(strTmp) <= 90 Or Asc(strTmp) >= 97 And Asc(strTmp) <= 122) Then
        'to extract just lower case, use the limit 97 - 122
        'to extract just upper case, use the limit 65 - 90
        strOut = strOut & strTmp
    End If
Next i
Alphas = strOut

終了機能

数字のみ

Function Numerics(ByVal strInString As String) As String Dim lngLen As Long, strOut As String Dim i As Long, strTmp As String

lngLen = Len(strInString)
strOut = ""
For i = 1 To lngLen
    strTmp = Left$(strInString, 1)
    strInString = Right$(strInString, lngLen - i)
    If (Asc(strTmp) >= 48 And Asc(strTmp) <= 57) Then
        strOut = strOut & strTmp
    End If
Next i
Numerics = strOut

終了機能

数字とテキストのみ

Function Alphanumerics(ByVal strInString As String) As String Dim lngLen As Long, strOut As String Dim i As Long, strTmp As String

lngLen = Len(strInString)
strOut = ""
For i = 1 To lngLen
    strTmp = Left$(strInString, 1)
    strInString = Right$(strInString, lngLen - i)
    'The next statement will extract BOTH Lower and Upper case chars
    If (Asc(strTmp) >= 65 And Asc(strTmp) <= 90 Or Asc(strTmp) >= 97 And Asc(strTmp) <= 122 or Asc(strTmp) >= 48 And Asc(strTmp) <= 57) Then
        'to extract just lower case, use the limit 97 - 122
        'to extract just upper case, use the limit 65 - 90
        strOut = strOut & strTmp
    End If
Next i
Alphanumerics = strOut

終了機能

これはExcelでも使用できますが、これはAccessで使用するために私が変更したものです

于 2015-01-31T09:42:16.367 に答える
0

列 A のすべてのセルが {数字 + スペース}{非数値テキスト} またはその逆の形式である限り、最初の数字と最初の非数値、非スペースの位置を見つけることから始めることができます各セルの文字。次に、これらに加えて少し追加のロジックを使用して、 を使用して適切な部分文字列を抽出できますMID

ここにこれを行うための配列数式を投稿しました: セル内の最初の英字以外の文字を見つけるための Excel 数式?

数字でもスペースでもない最初の文字の位置を返すように、2 番目の式を少し変更する必要があります。

=MIN(
        IF(
                  1*ISNUMBER(
                  1*MID(
                      A1,
                      ROW(INDIRECT("A1:A"&LEN(A1))),
                      1
                  )
                ) +
                1*(MID(
                      A1,
                      ROW(INDIRECT("A1:A"&LEN(A1))),
                      1
                  )=" "),
            LEN(A1)+1,
            ROW(INDIRECT("A1:A"&LEN(A1)))

        )
    )
于 2013-03-26T16:08:26.167 に答える