
Formula umum
(=TEXTJOIN("",TRUE,IFERROR(MID(A1,ROW(INDIRECT("1:100")),1)+0,"")))
Ringkasan
Untuk menghapus karakter non-numerik dari string teks, Anda dapat mencoba rumus eksperimental ini berdasarkan fungsi TEXTJOIN, fungsi baru di Excel 2019. Dalam contoh yang ditampilkan, rumus di C5 adalah:
(=TEXTJOIN("",TRUE,IFERROR(MID(B5,ROW(INDIRECT("1:100")),1)+0,"")))
Catatan: ini adalah rumus array dan harus dimasukkan dengan control + shift + enter.
Penjelasan
Bekerja dari dalam ke luar, rumus MID digunakan untuk mengekstrak teks dalam B5, satu karakter dalam satu waktu.
Kuncinya adalah bagian ROW / INDIRECT:
ROW(INDIRECT("1:100"))
yang memutar array yang berisi 100 angka seperti ini:
(1,2,3,4,5,6,7,8… .99,100)
Catatan: 100 mewakili karakter maksimum untuk diproses. Ubah sesuai data Anda.
Array ini masuk ke fungsi MID sebagai argumen start_num . Untuk num_chars , kami menggunakan 1.
Fungsi MID mengembalikan larik seperti ini:
("1"; "0"; "0"; ""; "a"; "p"; "p"; "l"; "e"; "s"; ""; ""; ""; " "…)
(item tambahan dalam array dihapus agar mudah dibaca)
Untuk array ini, kami menambahkan nol. Ini adalah trik sederhana yang memaksa Excel untuk mencoba dan memaksa teks menjadi angka. Nilai teks numerik seperti "1", "2", "3", "4" dll. Dikonversi, sedangkan nilai non-numerik gagal dan menimbulkan kesalahan #VALUE. Kami menggunakan fungsi IFERROR untuk menangkap kesalahan ini dan mengembalikan string kosong (""), sementara nilai numerik masuk ke dalam array. Hasilnya adalah array yang hanya berisi angka dan string kosong:
(1; 0; 0; ""; ""; ""; ""; "";….)
Akhirnya, hasil array ini masuk ke fungsi TEXTJOIN sebagai argumen text1 . Untuk pembatas , kami menggunakan string kosong ("") dan untuk ignore_empty kami menyediakan TRUE. TEXTJOIN kemudian menggabungkan semua nilai yang tidak kosong dalam larik dan mengembalikan hasilnya.
Catatan: TEXTJOIN akan mengembalikan angka sebagai teks, misalnya "100," 500 ", dll. Jika Anda menginginkan hasil numerik yang benar, tambahkan nol, atau bungkus seluruh rumus dalam fungsi VALUE.