web-dev-qa-db-ja.com

MS-Excelで ":"に基づいて文字列を分割する方法

私のExcelのコラムはこんな感じでいっぱいです:

1.) ABC:DCF
2.) DCF:FED

各単語を ":"に基づいて分割し、その結果をセル "A:1"の "ABC:DCF"のように隣接する列に配置します。セル "B:1"では "ABC"、セル "C:1"では "DCF"と各列の対応する値になります。これを行う方法?

58
user1518659

[データ]タブに移動し、[テキストから列へ]オプションを選択します。後で、 "Delimited"オプションを選択してから "other"を選択し、あなたが望む任意のデリミタを置きます。

63
BrOSs

列へのテキストは機能します。元の値を維持したい場合は、式を使用することもできます。
B1の

=left(a1,find(":",a1)-1) 

c1では

=mid(a1,find(":",a1)+1,len(a1))
80
nutsch

あなたがVBAを使うことができるならば、あなたはSplit()関数を利用することができます。これがセルで使用できるユーザー定義関数(UDF)です。それはあなたが選んだキャラクターに分割して n分割リストの番目の要素。

UDFを定義する方法については、 MS OfficeにVBAを追加する方法 を参照してください。

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

だからあなたが入力する必要があるでしょう:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
26
Jamie Bull

それをB1に貼り付けて、右の列と下の列にそれを埋めます。

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

編集:以前にローカライズ版の公式を投稿しました。 '、'は ';'に置き換えられました。米国版のExcelではうまくいきません。

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))

6
Hardi Uutma