Saya memiliki kolom di excel yang terlihat seperti ini:
Census Tract 2941.10 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5410.02, Carson city, Compton CCD, Los Angeles County, California
Census Tract 5431 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5432.02 (part), Carson city, Compton CCD, Los Angeles County, California
Census Tract 5433.04, Carson city, Compton CCD, Los Angeles County, California
Saya perlu mengekstrak 2941.10, 5410.02, 5431, dll ... Saya mencoba rumus berikut: =MID(E4,MATCH(TRUE,ISNUMBER(1*MID(E4,ROW($3:$606),1)),0),COUNT(1*MID(E4,ROW($3:$606),1)))
Namun, desimal di tengah angka membuatnya sehingga dua angka terakhir terputus. Tidak semua angka memiliki desimal, dan jumlah teks setelah angka bervariasi berdasarkan baris (jadi rumus kiri dan kanan bukan opsi). Saya harus menggunakan formula excel dan bukan VBA / makro.
Ada saran?
microsoft-excel
worksheet-function
L. Batty
sumber
sumber
Jawaban:
Gunakan ini:
Rumus di atas mengasumsikan bahwa angka selalu merupakan "kata" ketiga dalam teks. Jika bukan itu masalahnya DAN hanya ada satu kelompok nomor per string, Anda bisa menggunakan rumus array ini:
Menjadi formula array itu perlu dikonfirmasi dengan Ctrl-Shift-Enter, bukan Enter ketika keluar dari mode edit. Jika dilakukan dengan benar maka Excel akan memasukkan
{}
rumus.Itu iterates melalui kata-kata dan mengembalikan jumlah semua grup angka, dan karena hanya ada satu grup angka itu mengembalikan hanya itu.
sumber
EDIT: Saya menghapus jawaban pertama saya karena saya menyadari bahwa Anda mungkin ingin mengembalikan string angka, termasuk memimpin atau mengekor 0, dan setidaknya dapat dipikirkan bahwa string digit mungkin lebih panjang dari 15 digit.
Jadi rumus di bawah ini mengembalikan angka sebagai string teks, menjaga setiap nol di depan dan di belakangnya. misalnya
2941.10
dikembalikan seperti itu, dan bukan sebagai2941.1
Ini adalah salah satu solusi formula
Pertama didefinisikan
seq
sebagai rumus Bernama:seq
akan mengembalikan array angka{1...255}
Tidak sepertiROW(INDIRECT(...
metode pengembalian array, rumus ini non-volatile.Kemudian Anda dapat menggunakan rumus array yang dimasukkan dengan menahan ctrl+shiftsambil memukulenter
atau, Anda dapat menggunakan rumus ini sedikit lebih lama tetapi biasanya dimasukkan:
Jika demikian, seperti pada contoh Anda, bahwa urutan digit selalu dimulai pada posisi ke-14, maka Anda dapat menggunakan rumus sederhana yang dimasukkan secara normal ini:
sumber