3

Excel のフィールドには、セミコロンで区切られた単語が含まれています。

A1 = 保存;国;宝物;のために;良い

Excel のテキスト数式を適用して、このフィールドから別のフィールドに別の単語を生成するにはどうすればよいですか? 例えば:

A2 should contain a formula to get the first word ("save")
A3 should contain a (different) formula to get the second word ("the")
etc.

ただし、これらの式は、たとえば A1 の値が

A1 = こんにちは;はい;元気ですか;あなた

この点での助けは高く評価されます。

(問題は、この場合、独自の関数を作成することは許可されていないことです。 、 、 などの元の関数を使用する必要がありfindますsearchmid)

4

3 に答える 3

5

このからフィールドを分割する VBA 関数を作成できます。

Function ExtractElement(str, n, sepChar)
'   Returns the nth element from a string,
'   using a specified separator character
    Dim x As Variant
    x = Split(str, sepChar)
    If n > 0 And n - 1 <= UBound(x) Then
       ExtractElement = x(n - 1)
    Else
        ExtractElement = ""
    End If
End Function

その場合、A2 式は次のようになります=ExtractElement(A1, 1, ";")。A3 は次=ExtractElement(A1, 2, ";")のようになります。

于 2010-02-12T05:02:50.790 に答える
2

A1で解析するテキストがある場合、次の式が機能するはずです

A2に式を入力します

=IF(ISERROR(LEFT(A1,FIND(";",A1)-1)),A1,LEFT(A1,FIND(";",A1)-1))

B2 に式を入力します。

=IF(ISERROR(RIGHT(A1,LEN(A1)-FIND(";",A1))),"",RIGHT(A1,LEN(A1)-FIND(";",A1)))

その後、必要なだけそれらをコピーできます。列 A は左端の単語を取得し、列 B は解析対象の残りの文字列を表示します。解析する単語が不足している場合、式は空白を表示します。列 B も非表示にすることができます。

于 2010-02-12T23:27:07.757 に答える
1

中間式を使用できる場合、これは機能します。

A1 -- 保存;国;宝物;のために;良い

B1 -- ブランク

C1 -- =IFERROR(FIND(";",$A1,1+(B1)),LEN($A1)+1)

C1をD1:H1にコピー

C2 -- =MID($A1,B1+1,(C1-B1)-1)

C2をD2:H2にコピー

行 1 は、A1 の各セミコロンの位置を表示します。これは、前のセルで見つかったセミコロンの 1 文字後に文字列の検索を開始するためです。

たとえば、セル E1 は、D1+1 =10 から始まる A1 のセミコロンを検索します。

C1:H1 の iferror ステートメントは、検索でそれ以上セミコロンが見つからない場合に発生するエラーをトラップし、文字列 A1 の全長に末尾の架空のセミコロンに 1 を加えた長さを返します。

最初のゼロを作成するには、B1 を空白にする必要があります。

セル C2:H2 は、Mid 関数を使用して、B1:G1 のそれぞれの値の 1 文字後に始まる A1 文字列のセクションを、長さ (C1-B1)-1、(d1-c1)-1 など (マイナス) でコピーします。セミコロン自体を切り取るもの)

行 1 に 5、9、18、27、31、36 が表示され、これらのセルの下に個々の単語が表示されます。

お役に立てれば。

于 2010-02-12T11:56:09.257 に答える