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


58

私のExcel列には次のような言葉がいっぱいです:

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

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

回答:


63

[データ]タブに移動し、[テキストから列へ]オプションを選択します。後で、「区切り」オプションを選択し、「その他」を選択して、必要な区切り文字を入力します。


80

列へのテキストは機能します。元の値を保持する場合の別のオプションは、式を使用することです:
B1

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

C1で

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

2
元の値は他のソリューションでも保持できます(新しい値を保存するために別の列を指定できます)が、常に最新の値を持つことができるため(つまり、A1 B1とC1は更新されますが、テキストから列へのオプションは更新されません。
サイコウッド

これは素晴らしいソリューションです
-jsg

26

VBAを使用できる場合は、Split()関数を使用できます。以下は、セルで使用できるユーザー定義関数(UDF)です。選択した文字で分割し、分割リストのn番目の要素を返します。

MS OfficeにVBAを追加する方法を参照してください UDFの定義方法に関する情報。

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

1
非常に素晴らしい、独自の数式を作成するのがとても簡単だとは知らなかった
カウル

1
これは、URLをコンポーネント部分に分割するのに最適です。
アンダーバース

7

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))


1
スーパーユーザーへようこそ。回答にいくつかの文を追加して、これが何をするのか、どのように機能するのかを説明してもらえますか?それはその教育的価値を高めます。ありがとう。
fixer1234

そうだね。[データ]タブの[テキストから列へ]の場合と同じことを行いますが、式では行われません。「:」を別の区切り文字に置き換えるか、他のセルの区切り文字を参照できます。
ハーディウトマ

Excelは、セルに貼り付けると、これは有効な数式ではないと言います。確認して更新してください。
チリナR

こんにちは、チリナR!お知らせいただきありがとうございます。Excelの米国版に合わせて調整しました。何か問題がある場合、または不明な点がある場合はお知らせください。
ハーディウトマ16

非常に素晴らしい。これまでのところ、独自の関数を作成せずに、必要な数の区切り文字を扱うことができる唯一の答えです。
CWilson 16
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.