25

私は多くのプログラミング言語でできるように、Excelの式で文字列を分割しようとしています。

string words = "some text".split(' ');

問題は、セルに複数の単語があることを確認できないことです。FIND()またはSEARCH()関数を使用しようとすると、#VALUEスペースがない場合に返されます。個々の単語を返すように (または、最初の単語または他のすべての単語を返すように) 文字列を分割する簡単な方法はありますか?

4

8 に答える 8

24

最初の単語または他のすべての単語を返す式。

=IF(ISERROR(FIND(" ",TRIM(A2),1)),TRIM(A2),MID(TRIM(A2),FIND(" ",TRIM(A2),1),LEN(A2)))

例と結果

Text                  Description                      Results

                      Blank 
                      Space 
some                  Text no space                some
some text             Text with space                  text
 some                 Text with leading space          some
some                  Text with trailing space         some
some text some text   Text with multiple spaces        text some text

フォーミュラへのコメント:

  • TRIM関数は、すべての先頭と末尾のスペースを削除するために使用されます。テキスト内の重複するスペースも削除されます。
  • 次に、FIND関数は最初のスペースを見つけます
  • スペースがない場合は、トリミングされたテキストが返されます
  • それ以外の場合は、MID関数を使用して、最初のスペースの後のテキストを返します。
于 2009-06-23T15:28:29.857 に答える
10
=IFERROR(LEFT(A3, FIND(" ", A3, 1)), A3)

これは最初にセルにスペースが含まれているかどうかをチェックし、含まれている場合はスペースから最初の値を返し、そうでない場合はセル値を返します。

編集

上記の式に追加するだけで、セルに値がない場合は 0 が返されます。メッセージまたはユーザーに空であることを伝える何かを表示する場合は、次を使用できます。

=IF(IFERROR(LEFT(A3, FIND(" ", A3, 1)), A3)=0, "Empty", IFERROR(LEFT(A3, FIND(" ", A3, 1)), A3))
于 2009-06-23T08:43:35.540 に答える
10

以下は、スペースで区切られた場合、セル A1 の最初の単語を返します (Excel 2003 で機能します)。

=LEFT(A1, SEARCH(" ",A1,1))
于 2009-06-23T08:31:25.657 に答える
4

これらのことは、一度にセルを記述して、長い数式を小さな数式に分割し、途中で確認できるようにすると、より単純になる傾向があります。次に、中間計算を非表示にするか、すべてを1つの数式にまとめることができます。

たとえば、Jamesの式をとると:

=IFERROR(LEFT(A3, FIND(" ", A3, 1)), A3)

これはExcel2007以降でのみ有効です。

次のように分割します。

B3: =FIND(" ", A3)
C3: =IF(ISERROR(B3),A3,LEFT(A3,B3-1))

一度に1チャンクずつ作業する方が少し簡単です。それが終わったら、あなたはそれをに変えることができます

=IF(ISERROR(FIND(" ", A3)),A3,LEFT(A3,FIND(" ", A3)-1))

あなたがそう望むなら。

于 2009-06-23T15:40:22.280 に答える
1

セルを強調表示し、Dat => Text to Columns を使用します。DELIMITER はスペースです。結果は、分割がスペースを見つけるのと同じ数の列に表示されます。

于 2014-10-30T04:34:53.357 に答える