Bagaimana cara membagi string berdasarkan ":" di MS-Excel?

58

Kolom excel saya diisi dengan kata-kata seperti ini:

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

Saya ingin membagi setiap kata berdasarkan ":" dan meletakkan hasilnya di kolom yang berdekatan sehingga "ABC: DCF" di sel "A: 1" menjadi "ABC" di sel "B: 1" dan "DCF" di sel " C: 1 "dan juga nilai yang sesuai di setiap kolom. Bagaimana cara melakukannya?

Andrea
sumber

Jawaban:

63

Buka tab Data, lalu opsi Teks ke Kolom. Kemudian, pilih opsi "Dibatasi" dan kemudian pilih "lain" dan masukkan pembatas yang Anda inginkan.

Bros
sumber
80

Teks ke kolom akan berfungsi. Opsi lain, jika Anda ingin mempertahankan nilai asli, adalah menggunakan rumus:
di B1

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

di C1

=mid(a1,find(":",a1)+1,len(a1))
gila
sumber
2
Nilai asli dapat disimpan bahkan dengan solusi lain (Anda dapat menentukan kolom yang berbeda untuk menyimpan nilai-nilai baru), tapi saya suka solusi ini lebih baik karena memungkinkan untuk selalu memiliki nilai terkini (yaitu jika Anda memodifikasi A1, B1 dan C1 akan memperbarui, sedangkan opsi teks-ke-kolom tidak).
psychowood
Ini adalah solusi yang brilian
jsg
26

Jika Anda dapat menggunakan VBA maka Anda dapat menggunakan Split()fungsinya. Berikut adalah Fungsi Buatan Pengguna (UDF) yang dapat Anda gunakan dalam sel. Itu terbagi pada pilihan karakter Anda dan mengembalikan elemen ke- n dari daftar split.

Lihat Bagaimana cara menambahkan VBA di MS Office? untuk informasi tentang cara mendefinisikan UDF.

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

Jadi, Anda harus memasukkan:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
Jamie Bull
sumber
1
Sangat Bagus, tidak tahu itu sangat mudah untuk membuat formula Anda sendiri
cowls
1
Ini sempurna untuk memisahkan URL menjadi bagian-bagian komponennya.
Underverse
7

Rekatkan ke B1 dan isi kolom di kanan dan baris:

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

Sunting: Saya sebelumnya memposting versi rumus yang dilokalkan, di mana ',' diganti dengan ';'. Itu tidak berfungsi di Excel versi AS:

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

Hardi Uutma
sumber
1
Selamat datang di Pengguna Super. Bisakah Anda menambahkan beberapa kalimat pada jawaban Anda untuk menjelaskan apa yang dilakukannya dan bagaimana cara kerjanya? Itu akan meningkatkan nilai pendidikannya. Terima kasih.
fixer1234
Ya, tentu. Itu melakukan hal yang sama seperti yang dilakukan Teks ke Kolom dari tab Data, kecuali itu tidak dengan rumus. Anda bisa mengganti ":" dengan Pembatas yang berbeda atau merujuk ke pembatas dari sel lain.
Hardi Uutma
Excel mengatakan bahwa ini bukan formula yang valid ketika Anda menempelkannya ke dalam sel. Silakan periksa dan perbarui.
thilina R
Hai, Rina! Terima kasih telah memberi tahu. Saya membuat penyesuaian untuk versi AS Excel. Tolong beri tahu saya jika Anda memiliki masalah dengan itu sekarang atau jika ada sesuatu yang tidak jelas.
Hardi Uutma
Sangat bagus. Satu-satunya jawaban sejauh ini yang memungkinkan Anda untuk menangani sebanyak mungkin pembatas yang Anda inginkan, tanpa membuat fungsi Anda sendiri.
CWilson