Mündəricat
Təlimat düsturlar və Çıxarış alətindən istifadə etməklə Excel-də müxtəlif mətn sətirlərindən nömrə çıxarmağı göstərir.
Verilmiş uzunluqdakı mətn sətirinin bir hissəsinin çıxarılmasına gəldikdə , Excel tapşırığı tez bir zamanda idarə etmək üçün üç alt sətir funksiyası (Sol, Sağ və Orta) təmin edir. Söhbət əlifba-rəqəm sətirindən nömrələrin çıxarılmasına gəldikdə, Microsoft Excel... heç nə təmin etmir.
Excel-də sətirdən nömrə əldə etmək üçün bir az ixtiraçılıq, bir az səbir və bir çox müxtəlif funksiyalar tələb olunur. bir-birinə yuvalanıb. Yaxud, Çıxarış alətini işə salıb işi siçan ilə yerinə yetirə bilərsiniz. Aşağıda hər iki üsulla bağlı tam təfərrüatları tapa bilərsiniz.
Mətn sətirinin sonundan ədədi necə çıxarmaq olar
Rəqəmdən sonra gələn hərf-rəqəm sətirləri sütununuz olduqda mətni əldə etmək üçün aşağıdakı düsturdan istifadə edə bilərsiniz.
RIGHT( xana, LEN( xana) - MAX(ƏGƏR(ISNUMBER(MID( xana<2))>, SATIR(DOLAYI("1:"&LEN( xana ))), 1) *1)=YANLIŞ, SATIR(DOLAYI("1:"&LEN( xana<) 2>))), 0)))Düsturun məntiqi üzərində bir qədər sonra dayanacağıq. Hələlik, sadəcə olaraq, xana -ni orijinal sətri olan xanaya istinadla əvəz edin (bizim halda A2) və eyni cərgədəki istənilən boş xanaya düstur daxil edin, B2-də deyin:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Bu düstur yalnız sondan nömrə alır. Əgər sətirin əvvəlində və ya ortasında nömrələr varsa, onlar da varnəzərə alınmadı:
Çıxarma Mətn funksiyaları kateqoriyasına aid olan RIGHT funksiyası ilə həyata keçirilir. Bu funksiyanın çıxışı həmişə mətn olur. Bizim vəziyyətimizdə nəticə rəqəm alt sətri dur ki, bu da Excel baxımından rəqəm deyil, mətndir.
Nəticənin rəqəm olması lazımdırsa. (sonrakı hesablamalarda istifadə edə bilərsiniz), sonra düsturu DƏYƏR funksiyasına bükün və ya nəticəni dəyişməyən hesab əməliyyatını yerinə yetirin, məsələn, 1-ə vurun və ya 0 əlavə edin. Tərkibində olmayan sətirlərdə səhvləri tutmaq üçün tək nömrə, IFERROR funksiyasından istifadə edin. Məsələn:
=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)))), "")
və ya
=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, "")
Qeyd. Dynamic Array Excel-də (Office 365 və 2021) siz Enter düyməsi ilə düsturu adi şəkildə daxil edirsiniz. Excel 2019 və daha əvvəlki versiyalarda o, yalnız massiv düsturu kimi işləyir, ona görə də onu tamamlamaq üçün Ctrl + Shift + Enter düymələrini sıxmağı unutmayın.
Bu düstur necə işləyir:
Alfasayısal sətirdən nömrə çıxarmaq üçün bilməli olduğunuz ilk şey çıxarmaya haradan başlamaq lazımdır. Sətirdəki sonuncu qeyri-rəqəm simvolunun mövqeyi bu çətin düsturun köməyi ilə müəyyən edilir:
MAX(ƏGƏR(ISNUMA(MID(A2, ROW)DOLAYI("1:"&LEN() A2))), 1)*1)=YANLIŞ, SATIR(DOLAYI("1:"&LEN(A2))), 0))
Məntiqi başa düşmək üçün onu daxildən araşdıraq :
SƏRƏ(DOLAYI("1:"&LEN(A2))) kombinasiyasımənbə sətirindəki simvolların cəminə (A2) uyğun gələn nömrələr ardıcıllığını yaradır və biz bu ardıcıl nömrələri başlanğıc nömrələr kimi MID-ə təqdim edirik:
MID(A2, {1;2;3;4) ;5;6;7;8}, 1)
MID funksiyası hər bir fərdi simvolu A2-dən çıxarır və onları massiv kimi qaytarır:
{"0";"5";" -";"E";"C";"-";"0";"1"}
MID mətn funksiyası olduğundan onun çıxışı həmişə mətndir (baxdığınız kimi, bütün simvollar dırnaq içərisindədir). Rəqəmliləri rəqəmlərə çevirmək üçün massivi 1-ə vururuq (ikiqat inkar --MID() eyni təsirə malik olacaq). Bu əməliyyatın nəticəsi ədədlər massivi və #VALUE! qeyri-rəqəm simvollarını təmsil edən xətalar:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
ISNUMBER funksiyası massivin hər bir elementini qiymətləndirir və öz hökmünü Boolean qiymətləri şəklində verir - rəqəmlər üçün TRUE, başqa hər şey üçün FALSE:
{DOĞRU;DOĞRU;YANLIŞ;YANLIŞ;YANLIŞ;YANLIŞ;DOĞRU;DOĞRU} 3>
Bu massiv ƏGƏR funksiyasının məntiqi testinə keçir, burada massivin hər bir elementi FALSE ilə müqayisə edilir:
ƏGƏR({TRUE;DOĞRU;YANLIŞ;YANLIŞ;YANLIŞ;YANLIŞ;TRUE ;DOĞRU}=YANLIŞ, SATIR(DOLAYI("1:"&LEN(A2))), 0)
Hər FALSE (qeyri-rəqəm dəyər) üçün başqa ROW(DOOLAYI()) funksiyası qaytarır onun sətirdəki nisbi mövqeyi. Hər TRUE (rəqəmli dəyər) üçün sıfır qaytarılır. Nəticə massiv belə görünüraşağıdakı:
{0;0;3;4;5;6;0;0}
Qalanı asandır. MAX funksiyası yuxarıdakı massivdə ən yüksək rəqəmi tapır ki, bu da sətirdəki sonuncu qeyri-ədədi dəyərin mövqeyidir (bizim halda 6). Sadəcə olaraq, LEN tərəfindən qaytarılan sətirin ümumi uzunluğundan həmin mövqeyi çıxarın və sətrin sağ tərəfindən neçə simvol çıxaracağını bildirmək üçün nəticəni RIGHT tərəfə ötürün:
RIGHT(A2, LEN) (A2) - 6)
Hazırdır!
Mətn sətirinin əvvəlindən nömrəni necə çıxarmaq olar
Əgər siz nömrədən sonra mətnin göründüyü qeydlərlə işləyirsinizsə, bunu edə bilərsiniz bu ümumi düsturdan istifadə edərək sətirin əvvəlindən nömrə çıxarın:
LEFT( xana , MATCH(YANLIŞ, ISNUMBER(MID( xana , ROW(DOLU)("1: "&LEN( hüceyrə )+1)), 1) *1), 0) -1)A2-də orijinal sətirlə nömrə almaq üçün aşağıdakı düsturdan istifadə edin:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Ortada və ya sonunda nə qədər rəqəm olsa da, yalnız başlanğıc rəqəm çıxarılır:
Qeyd. Excel 365 və Excel 2021-də dinamik massivlər üçün dəstək sayəsində adi düstur yaxşı işləyir. Excel 2019 və daha əvvəlki versiyalarda onu açıq şəkildə massiv düsturu etmək üçün Ctrl + Shift + Enter düymələrini sıxmalısınız.
Bu düstur necə işləyir:
Burada mənbə sətirindəki simvolların cəminə üstəgəl 1-ə bərabər rəqəmlər ardıcıllığını yaratmaq üçün yenidən ROW, DOLAYI və LEN funksiyalarının birləşməsindən istifadə edirik (onun roluəlavə simvol bir az sonra aydınlaşacaq).
ROW(DOLLAYI("1:"&LEN(A2)+1))
MID və ISNUMBER ilə eyni işi görür. əvvəlki nümunə - MID fərdi simvolları çəkir və ISNUMBER onları məntiqi dəyərlərə çevirir. Nəticədə DOĞRU və YANLIŞ massivi MATCH funksiyasına axtarış massivi kimi keçir:
MATCH(FALSE, {DOĞRU;DOĞRU;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)
MATCH birinci FALSE-in nisbi mövqeyini hesablayır və bizə sətirdəki ilk qeyri-rəqəm simvolunun mövqeyini verir (A2-də 3). Əvvəlki rəqəmləri çıxarmaq üçün biz birinci mətn simvolunun mövqeyindən 1-i çıxarırıq və fərqi SOL funksiyasının simvol_sayı arqumentinə veririk:
LEFT(A2, 3-1)
İndi, ROW (DOLU ()+1)) tərəfindən yaradılan ardıcıllıqla "əlavə" simvola qayıdın. Artıq bildiyiniz kimi, bu ardıcıllıq MID funksiyası üçün başlanğıc nöqtələrini təmin edir. +1 olmadan MID orijinal sətirdə olduğu qədər simvol çıxaracaq. Əgər sətir yalnız rəqəmlərdən ibarətdirsə, MATCH üçün ən azı bir FALSE lazımdır, ISNUMBER yalnız TRUE-ləri qaytaracaq. Bunu təmin etmək üçün biz MID funksiyasının boş sətirə çevirəcəyi sətirin ümumi uzunluğuna daha bir simvol əlavə edirik. Məsələn, B7-də MID bu massivi qaytarır:
{"1";"2";"3";"4";""}
Qeyd. RIGHT funksiyasında olduğu kimi, LEFT də rəqəmini qaytarıralt sətir , texniki baxımdan nömrə deyil, mətndir. Nəticəni ədədi sətirdən çox ədəd kimi əldə etmək üçün düsturu VALUE funksiyasında yerləşdirin və ya ilk nümunədə göstərildiyi kimi nəticəni 1-ə vurun.
Sətrin istənilən mövqeyindən ədədi necə əldə etmək olar
Əgər tapşırığınız sətirdə hər hansı bir yerdən nömrə çıxarmağı nəzərdə tutursa, MrExcel forumunda dərc edilmiş aşağıdakı ağlasığmaz düsturdan istifadə edə bilərsiniz:
=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)
A2 burada orijinal mətn sətri.
Bu düsturun parçalanması ayrıca məqalə tələb edəcək, ona görə də onun həqiqətən işlədiyinə əmin olmaq üçün sadəcə onu iş vərəqinizə kopyalaya bilərsiniz :)
Nəticələri araşdırarkən, siz bir əhəmiyyətsiz çatışmazlıq görə bilərsiniz - əgər mənbə sətirində rəqəm yoxdursa, yuxarıdakı ekran görüntüsündə 6-cı sətirdə olduğu kimi düstur sıfırı qaytarır. Bunu düzəltmək üçün məntiqi testi mənbə sətirində hər hansı bir nömrənin olub-olmadığını yoxlayan IF ifadəsində düsturu bükə bilərsiniz. Əgər belədirsə, düstur nömrəni çıxarır, əks halda boş sətir qaytarır:
=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),"")
Aşağıdakı ekran görüntüsündə göstərildiyi kimi, təkmilləşdirilmiş düstur gözəl işləyir (Excel müəllimimiz Alexə təşəkkürlər, bu təkmilləşdirmə üçün):
Bütün əvvəlki nümunələrdən fərqli olaraq, bu düsturun nəticəsi rəqəm dur. Buna əmin olmaq üçün B sütununda sağa yığılmış dəyərlərə və kəsilmiş baş sıfırlara diqqət yetirin.
İpucu. Excel 365-də -Excel 2019-da TEXTJOIN funksiyasının köməyi ilə daha sadə həll yolu var. Lütfən, mətni silmək və rəqəmləri saxlamaq üçün baxın.
Ultimate Suite ilə mətn sətirindən nömrə çıxarın
İndicə gördüyünüz kimi, mətn sətirindən nömrə çıxarmaq üçün heç bir əhəmiyyətsiz Excel düsturu yoxdur. Əgər düsturları başa düşməkdə və ya məlumat dəstləriniz üçün onları tənzimləməkdə çətinlik çəkirsinizsə, Excel-də sətirdən nömrə əldə etməyin bu sadə yolunu bəyənə bilərsiniz.
Excel lentinizə Ultimate Suite-imiz əlavə olunduqda, siz belə edirsiniz. istənilən alfasayısal sətirdən nömrəni tez əldə edə bilər:
- Ablebits Data tab > Mətn qrupuna keçin və Çıxarış üzərinə klikləyin :
- Mənbə sətirləri olan bütün xanaları seçin.
- Çıxarış alətinin panelində Nömrələri çıxarın radio düyməsini seçin.
- Nəticələrin düstur və ya dəyər olmasını istəməyinizdən asılı olaraq, Düstur olaraq daxil edin qutusunu seçin və ya onu seçilməmiş qoyun (defolt).
Məsləhətim odur ki, mənbə sətirlərində hər hansı dəyişiklik edilən kimi çıxarılan nömrələrin avtomatik olaraq yenilənməsini istəyirsinizsə, bu xananı seçin. Nəticələrin orijinal sətirlərdən müstəqil olmasını istəyirsinizsə (məsələn, mənbə məlumatını sonradan silməyi planlaşdırırsınızsa), bu xananı seçməyin.
- Nəticələri daxil edin düyməsini klikləyin. Tamamlandı!
Əvvəlki nümunədə olduğu kimi, nəticələriçıxarma rəqəmlər dur, yəni siz onlarla saymaq, toplamaq, orta hesabla aparmaq və ya hər hansı digər hesablamalar aparmaqda sərbəstsiniz.
Bu nümunədə biz nəticələri <9 kimi daxil etməyi seçmişik>dəyərlər və əlavə tam olaraq tələb olunanı etdi:
Əgər Düstur olaraq daxil et qutusu seçilibsə, siz' d düstur çubuğunda düsturu müşahidə edin. Hansı birini bilmək maraqlıdır? Sadəcə Ultimate Suite-in sınaq versiyasını yükləyin və özünüz baxın :)
Mövcud yükləmələr
Excel Extract Number - nümunə iş kitabı (.xlsx faylı)
Ultimate Suite - sınaq versiyası (.exe) fayl)