Daptar eusi
Tutorial nunjukkeun kumaha cara nimba nomer tina sababaraha string téks dina Excel nganggo rumus sareng alat Extract.
Nalika ngékspor bagian tina string téks anu panjangna ditangtukeun. , Excel nyadiakeun tilu fungsi Substring (Kénca, Katuhu jeung Mid) pikeun gancang nanganan tugas. Lamun datang ka ékstraksi angka tina string alpanumérik, Microsoft Excel nyadiakeun... nanaon.
Pikeun meunangkeun angka tina string dina Excel, diperlukeun saeutik kapinteran, saeutik kasabaran, sarta kebat fungsi béda. disarangkeun kana séwang-séwangan. Atanapi, anjeun tiasa ngajalankeun alat Extract sareng ngalaksanakeun tugasna ku klik mouse. Di handap ieu anjeun bakal manggihan wincikan lengkep dina duanana métode.
Kumaha cara nimba nomer tina tungtung string téks
Lamun anjeun boga kolom tina string alfanumerik dimana nomer asalna sanggeus. téks, anjeun tiasa nganggo rumus di handap pikeun meunangkeunana.
RIGHT( sel, LEN( sel) - MAX(IF(ISNUMBER(MID( sel)>, BARIS(TIDAK LANGSUNG("1:"&LEN( sél))), 1) *1)=SALAH, BARIS(TEU LANGSUNG("1:"&LEN( sel))), 0)))Urang bakal ngobrol ngeunaan logika rumus engké. Pikeun ayeuna mah, kantun ngaganti sél ku rujukan ka sél nu ngandung string aslina (A2 bisi urang), sarta asupkeun rumus dina sagala sél kosong dina baris sarua, sebutkeun dina B2:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Rumus ieu ngan meunang angka ti tungtung. Lamun string ogé boga angka di awal atawa tengah, aranjeunnateu dipalire:
Ekstraksi dilaksanakeun ku fungsi RIGHT nu kagolong kana kategori fungsi Text. Kaluaran tina fungsi ieu salawasna téks . Dina kasus urang, hasilna mangrupa substring numerik , nu dina hal Excel ogé mangrupa téks, lain angka.
Lamun anjeun peryogi hasilna mangrupa angka (anu anjeun tiasa nganggo dina itungan salajengna), lajeng mungkus rumus kana fungsi VALUE atawa ngalakukeun operasi arithmetic nu teu ngarobah hasilna, sebutkeun, kalikeun ku 1 atawa tambahkeun 0. Pikeun nyekel kasalahan dina string nu teu ngandung a angka tunggal, ngagunakeun fungsi IFERROR. Contona:
=IFERROR(VALUE(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))), "")
atawa
=IFERROR(RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))) +0, "")
Catetan. Dina Dynamic Array Excel (Office 365 and 2021), anjeun ngasupkeun rumus dina cara biasa sareng tombol Enter. Dina Excel 2019 sareng sateuacana, éta ngan ukur tiasa dianggo salaku rumus array, janten émut pencét Ctrl + Shift + Enter pikeun ngalengkepan éta.
Kumaha rumus ieu:
Pikeun nimba nomer tina senar alfanumerik, hal kahiji anu anjeun kedah terang nyaéta dimana ngamimitian ékstraksi. Posisi karakter non-numerik panungtungan dina string ditangtukeun ku bantuan rumus tricky ieu:
MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN)). A2))), 1)*1)=SALAH, JARINGAN(TIDAK LANGSUNG("1:"&LEN(A2))), 0))
Pikeun ngarti logika, hayu urang nalungtik ti jero. :
Kombinasi ROW(INDIRECT("1:"&LEN(A2)))nyieun runtuyan angka pakait jeung total karakter dina string sumber (A2), sarta kami ngalayanan angka sequential ieu MID salaku angka awal:
MID(A2, {1;2;3;4 ;5;6;7;8}, 1)
Fungsi MID narik tiap karakter individu ti A2 jeung mulangkeunana jadi array:
{"0";"5";" -";"E";"C";"-";"0";"1"}
Salaku MID mangrupa pungsi téks, kaluaranna salawasna téks (sakumaha anjeun bisa perhatikeun, sakabéh karakter). diapit ku tanda petik). Pikeun ngarobah angka numerik kana angka, urang kalikeun Asép Sunandar Sunarya ku 1 (negation ganda --MID () bakal boga pangaruh anu sarua). Hasil tina operasi ieu mangrupa Asép Sunandar Sunarya angka na #VALUE! kasalahan ngagambarkeun karakter non-numerik:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
Pungsi ISNUMBER ngaevaluasi unggal unsur array sareng masihan vonisna dina bentuk nilai Boolean - BENER pikeun nomer, PALSU kanggo naon waé:
{BENER; BENER; SALAH; SALAH; SALAH; SALAH; BENER; BENER
Asép Sunandar Sunarya ieu nuju kana uji logis tina fungsi IF, dimana unggal unsur tina Asép Sunandar Sunarya dibandingkeun sareng FALSE:
IF({BENER; BENER; SALAH; SALAH; SALAH; SALAH; BENER ;BENER} = PALSU, ROW (TIDAK LANGSUNG ("1:" & LEN (A2))), 0)
Pikeun unggal PALSU (nilai non-numerik), fungsi ROW séjén (INDIRECT ()) balik deui. posisi relatif na dina senar. Pikeun unggal BENER (nilai numerik), hiji nol balik. Asép Sunandar Sunarya hasilna Sigana salakukieu:
{0;0;3;4;5;6;0;0}
Sésana gampang. Fungsi MAX manggihan jumlah pangluhurna dina Asép Sunandar Sunarya luhur, nu posisi nilai non-numerik panungtungan dina string (6 bisi urang). Kantun, kurangkeun posisi éta tina total panjang senar anu dipulangkeun ku LEN, teras lebetkeun hasilna ka KANAN supados terang sabaraha karakter anu kedah diekstrak ti sisi katuhu senar:
RIGHT(A2, LEN) (A2) - 6)
Rengse!
Kumaha cara nimba nomer ti awal string téks
Upami anjeun damel sareng rékaman dimana téks muncul saatos nomer, anjeun tiasa nimba nomer ti mimiti string ku ngagunakeun rumus generik ieu:
LEFT( cell, MATCH(FALSE, ISNUMBER(MID( cell, ROW(INDIRECT("1:: "&LEN( sél)+1)), 1) *1), 0) -1)Kalayan string aslina dina A2, paké rumus ieu pikeun meunangkeun nomer:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Teu paduli sabaraha digit nu aya di tengah atawa tungtung, ngan angka awal nu diekstrak:
Catetan. Dina Excel 365 sareng Excel 2021, kusabab dukungan pikeun susunan dinamis, rumus biasa tiasa dianggo kalayan saé. Dina Excel 2019 sareng sateuacana, anjeun kedah pencét Ctrl + Shift + Enter pikeun sacara eksplisit ngajantenkeun éta rumus array .
Kumaha rumus ieu jalanna:
Di dieu, urang deui ngagunakeun kombinasi fungsi ROW, INDIRECT jeung LEN pikeun nyieun runtuyan angka sarua jeung total karakter dina string sumber tambah 1 (peran éta.karakter tambahan bakal jelas saeutik engké).
ROW(INDIRECT("1:"&LEN(A2)+1))
MID and ISNUMBER do the same job as in the conto saméméhna - MID narik karakter individu jeung ISNUMBER ngarobahna kana nilai logis. Asép Sunandar Sunarya BENER sarta PALSU urang mana kana fungsi MATCH salaku Asép Sunandar Sunarya lookup:
MATCH(SALAH, {BENER; BENER; SALAH; SALAH; SALAH; SALAH; BENER; BENER; SALAH}, 0)
MATCH ngitung posisi relatif tina FALSE kahiji, méré urang posisi karakter non-numerik munggaran dina string (3 dina A2). Pikeun nimba angka-angka saacanna, urang kurangan 1 tina posisi karakter téks kahiji sareng ngalayanan bédana kana num_chars argumen fungsi LEFT:
LEFT(A2, 3-1)
Ayeuna, balik deui ka karakter "tambahan" dina sekuen anu dihasilkeun ku ROW(INDIRECT()+1)). Sakumaha anjeun parantos terang, sekuen ieu nyayogikeun titik awal pikeun fungsi MID. Tanpa +1, MID bakal ékstrak persis saloba karakter sakumaha aya dina string aslina. Lamun string ngandung ukur angka, ISNUMBER bakal balik ngan BENER bari MATCH peryogi sahanteuna hiji PALSU. Pikeun mastikeun yén, urang tambahkeun hiji karakter deui kana total panjang string, nu fungsi MID bakal ngarobah kana string kosong. Contona, dina B7, MID mulangkeun array ieu:
{"1";"2";"3";"4";""}
Catetan. Sapertos fungsi RIGHT, LEFT ogé ngabalikeun numericsubstring , anu sacara téknis nyaéta téks, sanés angka. Pikeun meunangkeun hasil salaku angka tinimbang string numerik, sayang rumus dina fungsi VALUE atawa kalikeun hasilna ku 1 sakumaha ditémbongkeun dina conto munggaran.
Kumaha carana meunang angka ti posisi mana wae dina string
Upami tugas anjeun nunjukkeun ékstraksi nomer ti mana waé dina senar, anjeun tiasa nganggo rumus anu ngabingungkeun di handap ieu anu diterbitkeun dina forum MrExcel:
=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)
Dimana A2 mangrupikeun string téks aslina.
Ngarecah rumus ieu bakal merlukeun artikel misah, jadi anjeun bisa ngan nyalin kana lembar kerja anjeun pikeun mastikeun eta bener jalan :)
Nalika mariksa hasil, anjeun tiasa perhatikeun hiji kalemahan anu teu penting - upami senar sumber henteu ngandung angka, rumusna bakal nol, sapertos dina baris 6 dina layar di luhur. Pikeun ngalereskeun ieu, anjeun tiasa mungkus rumus dina pernyataan IF, tes logis anu mariksa naha string sumber ngandung angka naon. Upami kitu, rumusna nimba nomerna, upami henteu ngabalikeun senar kosong:
=IF(SUM(LEN(A2)-LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"}, "")))>0, SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2,ROW(INDIRECT("$1:$"&LEN(A2))),1))* ROW(INDIRECT("$1:$"&LEN(A2))),0), ROW(INDIRECT("$1:$"&LEN(A2))))+1,1) * 10^ROW(INDIRECT("$1:$"&LEN(A2)))/10),"")
Sapertos anu dipidangkeun dina screenshot di handap, rumus anu ditingkatkeun tiasa dianggo kalayan saé (puji ka Alex, guru Excel kami, pikeun perbaikan ieu):
Teu kawas dina sakabéh conto saméméhna, hasil rumus ieu nomer . Pikeun mastikeun ieu, ngan perhatikeun niléy anu disejajarkeun ka katuhu dina kolom B sareng nol ngarah dipotong.
Tip. Dina Excel 365 -Excel 2019, aya solusi anu langkung saderhana kalayan bantosan fungsi TEXTJOIN. Mangga tingali Kumaha carana miceun teks jeung nyimpen angka.
Ekstrak nomer tina string téks jeung Ultimate Suite
Sakumaha nu geus katempo, teu aya rumus Excel trivial pikeun narik nomer tina string téks. Upami Anjeun gaduh kasulitan dina ngartos rumus atawa tweaking aranjeunna pikeun set data Anjeun, Anjeun bisa jadi resep cara basajan ieu pikeun meunangkeun nomer tina string dina Excel.
Kalayan Ultimate Suite kami ditambahkeun kana pita Excel Anjeun, ieu kumaha anjeun tiasa gancang nyandak nomer tina string alfanumerik mana waé:
- Pindah ka tab Data Ablebits > Teks , teras klik Ekstrak :
- Pilih sakabeh sél nu mibanda string sumber.
- Dina panel Extract tool, pilih tombol radio Extract numbers .
- Gumantung naha anjeun hoyong hasilna janten rumus atanapi niléy, pilih kotak Selapkeun salaku rumus atanapi tinggalkeun teu dipilih (standar).
Saran kuring nyaéta milih kotak ieu upami anjeun hoyong nomer anu diekstrak sacara otomatis ngapdet pas aya parobihan kana senar sumber. Upami anjeun hoyong hasilna janten mandiri dina senar asli (misalna upami anjeun badé ngahapus data sumber dina waktos engké), teras ulah milih kotak ieu.
- Klik tombol Selapkeun Hasil . Réngsé!
Saperti dina conto saméméhna, hasil tinaékstraksi nyaéta angka , hartina anjeun bébas ngitung, jumlah, rata-rata, atawa ngalakukeun itungan lianna kalayan aranjeunna.
Dina conto ieu, urang geus milih pikeun nyelapkeun hasil salaku Nilai , sarta add-in ngalakukeun persis naon anu dipénta:
Upami kotak centang Selapkeun salaku rumus dipilih, anjeun' d niténan hiji rumus dina rumus bar. Panasaran hoyong terang nu mana? Unduh uji coba Ultimate Suite sareng tingali nyalira :)
Unduh anu sayogi
Nomer Ekstrak Excel - buku kerja sampel (file xlsx)
Ultimate Suite - versi percobaan (.exe). file)