Excel: matn qatoridan raqamni ajratib oling

  • Buni Baham Ko'Ring
Michael Brown

O'quv qo'llanma Excelda formulalar va Extract vositasi yordamida turli matn satrlaridan raqamlarni qanday chiqarishni ko'rsatadi.

Ma'lum uzunlikdagi matn qatorining bir qismini ajratib olish haqida gap ketganda , Excel vazifani tezda bajarish uchun uchta pastki qator funksiyasini (chap, o'ng va o'rta) taqdim etadi. Harf-raqamli satrdan raqamlarni ajratib olish haqida gap ketganda, Microsoft Excel hech narsani ta'minlamaydi.

Excelda satrdan raqam olish uchun biroz zukkolik, biroz sabr va turli funktsiyalar to'plami kerak bo'ladi. bir-biriga ulangan. Yoki Extract vositasini ishga tushirishingiz va ishni sichqonchani bosish bilan bajarishingiz mumkin. Quyida siz ikkala usul bo'yicha to'liq ma'lumotni topasiz.

    Matn satrining oxiridan raqamni qanday chiqarish mumkin

    Raqamdan keyin keladigan alfanumerik qatorlar ustuniga ega bo'lsangiz matn boʻlsa, uni olish uchun quyidagi formuladan foydalanishingiz mumkin.

    OʻNG( hujayra, LEN( yacheyka) - MAX(AGAR(ISNUMBER(MID( yacheyka<2))>, QAT(BEVOVOZ("1:"&LEN( hujayra ))), 1) *1)=YOLG'ON, QATR(BEVOIZO("1:"&LEN( hujayra<) 2>))), 0)))

    Formula mantig'iga biroz keyinroq to'xtalamiz. Hozircha hujayra ni asl qatorni o'z ichiga olgan katakchaga havola bilan almashtiring (bizning holimizda A2) va formulani bitta qatordagi istalgan bo'sh katakka kiriting, masalan B2:

    =RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))

    Bu formula faqat oxiridan boshlab raqam oladi. Agar satrning boshida yoki o'rtasida raqamlar bo'lsa, ular shundaye'tiborga olinmagan:

    Olib tashlash Matn funktsiyalari toifasiga kiruvchi O'RG'A funksiyasi bilan amalga oshiriladi. Bu funksiyaning chiqishi har doim matn bo'ladi. Bizning holatda, natija raqamli pastki satr bo'lib, Excelda bu ham raqam emas, matndir.

    Agar sizga natija raqam bo'lishi kerak bo'lsa. (bundan keyingi hisob-kitoblarda foydalanishingiz mumkin), keyin formulani VALUE funksiyasiga o‘rang yoki natijani o‘zgartirmaydigan arifmetik amalni bajaring, aytaylik, 1 ga ko‘paytiring yoki 0 qo‘shing. bitta raqam, IFERROR funksiyasidan foydalaning. Masalan:

    =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)))), "")

    yoki

    =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, "")

    Eslatma. Dynamic Array Excel (Office 365 va 2021) da siz Enter tugmasi yordamida formulani odatdagi tarzda kiritasiz. Excel 2019 va undan oldingi versiyalarida u faqat massiv formulasi sifatida ishlaydi, shuning uchun uni bajarish uchun Ctrl + Shift + Enter tugmalarini bosishni unutmang.

    Ushbu formula qanday ishlaydi:

    Alfanumerik satrdan raqamni ajratib olish uchun siz bilishingiz kerak bo'lgan birinchi narsa - ajratib olishni qaerdan boshlash kerak. Satrdagi oxirgi raqamli bo'lmagan belgining o'rni ushbu murakkab formula yordamida aniqlanadi:

    MAX(AGAR(ISNUMBER(MID(A2, QAT(INDIRECT)("1:"&LEN() A2))), 1)*1)=YOLG'ON, QAT(BIVO'LOV("1:"&LEN(A2))), 0))

    Mantiqni tushunish uchun uni ichkaridan tekshirib ko'ramiz :

    QATR(INDIRECT("1:"&LEN(A2))) kombinatsiyasimanba satrdagi belgilar jamiga mos keladigan raqamlar ketma-ketligini yaratadi (A2) va biz ushbu ketma-ket raqamlarni MID ga boshlang'ich raqamlar sifatida xizmat qilamiz:

    MID(A2, {1;2;3;4) ;5;6;7;8}, 1)

    MID funksiyasi har bir alohida belgini A2 dan tortib oladi va ularni massiv sifatida qaytaradi:

    {"0";"5";" -";"E";"C";"-";"0";"1"}

    MID matn funksiyasi bo‘lgani uchun uning chiqishi hamisha matn bo‘ladi (e'tibor berganingizdek, barcha belgilar qo'shtirnoq ichiga olinadi). Raqamlilarni raqamlarga aylantirish uchun biz massivni 1 ga ko'paytiramiz (ikki marta inkor qilish --MID() xuddi shunday ta'sirga ega bo'ladi). Bu operatsiya natijasi raqamlar massivi va #VALUE! raqamli bo'lmagan belgilarni ifodalovchi xatolar:

    ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})

    ISNUMBER funksiyasi massivning har bir elementini baholaydi va mantiqiy qiymatlar ko'rinishida o'z hukmini beradi - raqamlar uchun TRUE, boshqa har qanday narsa uchun FALSE:

    {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}

    Ushbu massiv IF funktsiyasining mantiqiy testiga o'tadi, bunda massivning har bir elementi FALSE bilan taqqoslanadi:

    AGAR({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE); ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)

    Har bir FALSE (raqamli bo'lmagan qiymat) uchun boshqa ROW(INDIRECT()) funksiyasi qaytariladi uning satrdagi nisbiy holati. Har bir TRUE (raqamli qiymat) uchun nol qaytariladi. Olingan massiv quyidagicha ko'rinadiquyidagicha:

    {0;0;3;4;5;6;0;0}

    Qolganlari oson. MAX funksiyasi yuqoridagi massivdagi eng yuqori raqamni topadi, bu satrdagi oxirgi noaniq qiymatning o‘rni (bizning holatda 6). Shunchaki, LEN tomonidan qaytarilgan satrning umumiy uzunligidan ushbu pozitsiyani ayirib tashlang va natijani o‘ng tomonga o‘ngga o‘tkazing va unga qatorning o‘ng tomonidan qancha belgi ajratib olish kerakligini bildiring:

    RIGHT(A2, LEN) (A2) - 6)

    Bajarildi!

    Matn satrining boshidan raqamni qanday chiqarish mumkin

    Agar siz raqamdan keyin matn paydo bo'ladigan yozuvlar bilan ishlayotgan bo'lsangiz, quyidagi umumiy formuladan foydalanib, satr boshidan raqamni chiqaring:

    LEFT( yacheyka , MATCH(FALSE, ISNUMBER(MID( yacheyka , ROW(INDIRECT)("1: "&LEN( hujayra )+1)), 1) *1), 0) -1)

    A2 formatidagi asl satr bilan raqamni olish uchun quyidagi formuladan foydalaning:

    =LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)

    O'rtada yoki oxirida qancha raqam bo'lishidan qat'iy nazar, faqat boshlang'ich raqam chiqariladi:

    Eslatma. Excel 365 va Excel 2021 da dinamik massivlarni qo'llab-quvvatlash tufayli oddiy formula yaxshi ishlaydi. Excel 2019 va undan oldingi versiyalarida uni massiv formulasi qilish uchun Ctrl + Shift + Enter tugmalarini bosishingiz kerak.

    Ushbu formula qanday ishlaydi:

    Bu yerda biz yana ROW, INDIRECT va LEN funksiyalarining kombinatsiyasidan manba qatoridagi belgilarning umumiy soniga (plyus 1) teng sonlar ketma-ketligini yaratish uchun foydalanamiz (buning roliqo'shimcha belgi birozdan keyin aniq bo'ladi).

    QATR(INDIRECT("1:"&LEN(A2)+1))

    MID va ISNUMBER xuddi shu vazifani bajaradi. oldingi misol - MID individual belgilarni tortadi va ISNUMBER ularni mantiqiy qiymatlarga aylantiradi. Olingan TRUE va FALSE massivi MATCH funksiyasiga qidiruv massivi sifatida o‘tadi:

    MATCH(FALSE, {TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}, 0)

    MATCH birinchi FALSE ning nisbiy o'rnini hisoblab, bizga satrdagi birinchi raqamli bo'lmagan belgining o'rnini beradi (A2 formatida 3). Oldingi raqamlarni chiqarish uchun matnning birinchi belgisidan 1 ni ayiramiz va farqni CHAP funksiyasining belgilar_soni argumentiga beramiz:

    LEFT(A2, 3-1)

    Endi, ROW (INDIRECT()+1)) tomonidan yaratilgan ketma-ketlikdagi "qo'shimcha" belgiga qayting. Ma'lumki, ushbu ketma-ketlik MID funktsiyasi uchun boshlang'ich nuqtalarni beradi. +1 bo'lmasa, MID asl satrdagi kabi ko'p belgilarni ajratib oladi. Agar satr faqat raqamlardan iborat bo'lsa, ISNUMBER faqat TRUE-ni qaytaradi, MATCH uchun kamida bitta FALSE kerak. Bunga ishonch hosil qilish uchun biz MID funktsiyasi bo'sh satrga aylantiradigan satrning umumiy uzunligiga yana bitta belgi qo'shamiz. Masalan, B7 da MID ushbu massivni qaytaradi:

    {"1";"2";"3";"4";""}

    Eslatma. RIGHT funktsiyasida bo'lgani kabi, LEFT ham raqamni qaytaradisubstring , bu raqam emas, texnik jihatdan matn. Natijani raqamli qator emas, raqam sifatida olish uchun formulani VALUE funksiyasiga joylashtiring yoki birinchi misolda ko'rsatilgandek natijani 1 ga ko'paytiring.

    Qanday qilib satrning istalgan pozitsiyasidan raqamni olish mumkin

    Agar sizning vazifangiz satrning istalgan joyidan raqam chiqarishni nazarda tutsa, MrExcel forumida chop etilgan quyidagi hayratlanarli formuladan foydalanishingiz mumkin:

    =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)

    Bu erda A2 - bu original matn qatori.

    Ushbu formulani parchalash uchun alohida maqola kerak bo'ladi, shuning uchun u haqiqatan ham ishlayotganiga ishonch hosil qilish uchun uni ish varag'ingizga nusxalashingiz mumkin :)

    Natijalarni o'rganib chiqqach, siz bitta ahamiyatsiz kamchilikni ko'rishingiz mumkin - agar manba qatorida raqam bo'lmasa, yuqoridagi skrinshotdagi 6-qatordagi kabi formula nolga qaytadi. Buni tuzatish uchun siz formulani IF iborasiga o'rashingiz mumkin, uning mantiqiy testi manba qatorida biron bir raqam mavjudligini tekshiradi. Agar shunday bo'lsa, formula raqamni chiqaradi, aks holda bo'sh qatorni qaytaradi:

    =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),"")

    Quyidagi skrinshotda ko'rsatilganidek, takomillashtirilgan formula juda yaxshi ishlaydi (Excel guru Aleksga rahmat, bu yaxshilanish uchun):

    Barcha oldingi misollardan farqli o'laroq, bu formulaning natijasi raqam . Bunga ishonch hosil qilish uchun B ustunidagi o'ngga tekislangan qiymatlar va kesilgan bosh nollarga e'tibor bering.

    Maslahat. Excel 365 da -Excel 2019 da TEXTJOIN funksiyasi yordamida ancha sodda yechim mavjud. Iltimos, Matnni qanday olib tashlash va raqamlarni saqlashni ko'ring.

    Ultimate Suite yordamida matn qatoridan raqamni chiqarib oling

    Ko'rganingizdek, matn qatoridan raqamni olish uchun hech qanday ahamiyatsiz Excel formulasi yo'q. Agar siz formulalarni tushunishda yoki maʼlumotlar toʻplamingiz uchun ularni sozlashda qiynalayotgan boʻlsangiz, sizga Excelda qatordan raqam olishning ushbu oddiy usuli yoqishi mumkin.

    Excel tasmangizga bizning Ultimate Suite qoʻshilganligi sababli, siz shunday qilasiz. istalgan alfanumerik satrdan raqamni tezda olishi mumkin:

    1. Ablebits Data yorligʻi > Matn guruhiga oʻting va Ochish tugmasini bosing. :

    2. Manba satrlari boʻlgan barcha yacheykalarni tanlang.
    3. Chiqish vositasi panelida Raqamlarni chiqarish radio tugmasini tanlang.
    4. Natijalar formula yoki qiymat boʻlishini xohlashingizga qarab, Formla sifatida kiritish oynasini tanlang yoki uni tanlanmagan holda qoldiring (standart).

      Mening maslahatim, agar siz manba satrlariga har qanday o'zgartirish kiritilgandan so'ng, olingan raqamlar avtomatik ravishda yangilanishini istasangiz, ushbu katakchani tanlang. Agar natijalar asl satrlardan mustaqil bo'lishini istasangiz (masalan, agar siz keyinchalik manba ma'lumotlarini o'chirishni rejalashtirmoqchi bo'lsangiz), bu qutini tanlamang.

    5. Natijalarni kiritish tugmasini bosing. Bajarildi!

    Avvalgi misoldagi kabi,chiqarish raqamlar , ya'ni siz ular bilan hisoblash, yig'ish, o'rtacha yoki boshqa hisob-kitoblarni bajarishingiz mumkin.

    Ushbu misolda biz natijalarni <9 sifatida kiritishni tanladik>qiymatlar va plagin so'ralgan narsani to'liq bajardi:

    Agar Formula sifatida kiritish katagiga belgi qo'yilgan bo'lsa, siz' d formulalar satrida formula ga rioya qiling. Qaysi birini bilmoqchimisiz? Shunchaki Ultimate Suite-ning sinov versiyasini yuklab oling va o'zingiz ko'ring :)

    Mavjud yuklab olishlar

    Excel Extract Number - namuna ishchi kitobi (.xlsx fayli)

    Ultimate Suite - sinov versiyasi (.exe) fayl)

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.