Мазмұны
Оқулық формулалар мен Шығару құралын пайдалану арқылы Excel бағдарламасындағы әртүрлі мәтін жолдарынан санды шығару жолын көрсетеді.
Берілген ұзындықтағы мәтін жолының бір бөлігін шығаруға келгенде. , Excel тапсырманы жылдам орындау үшін үш ішкі жол функциясын (Сол, Оң және Орта) қамтамасыз етеді. Әріптік-цифрлық жолдан сандарды шығаруға келетін болсақ, Microsoft Excel бағдарламасы... ештеңе бермейді.
Excel бағдарламасында жолдан сан алу үшін аздап тапқырлық, аздап шыдамдылық және әртүрлі функциялар жиынтығы қажет. бір-біріне ұялады. Немесе Extract құралын іске қосып, тінтуірді басу арқылы тапсырманы орындауға болады. Төменде екі әдіс бойынша толық мәліметтерді таба аласыз.
Мәтін жолының соңынан санды қалай шығаруға болады
Сізде саннан кейін келетін әріптік-цифрлық жолдар бағанасы болғанда мәтінді алу үшін келесі формуланы пайдалана аласыз.
ОҢ( ұяшық, LEN( ұяшық) - MAX(ЕГЕР(ISNUMBER(MID( ұяшық<2))>, ROW(ЖАМАМА("1:"&LEN( ұяшық ))), 1) *1)=ЖАЛҒАН, ҚОЛДА("1:"&LEN( ұяшық< ))), 0)))Формуланың логикасына сәл кейінірек тоқталамыз. Әзірге ұяшық -ді бастапқы жолды қамтитын ұяшыққа сілтемемен ауыстырыңыз (біздің жағдайда A2) және формуланы сол жолдағы кез келген бос ұяшыққа енгізіңіз, мысалы, B2:
=RIGHT(A2, LEN(A2) - MAX(IF(ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1) *1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)))
Бұл формула санды тек соңынан алады. Егер жолдың басында немесе ортасында сандар болса, олареленбейді:
Шығару Мәтін функциялары санатына жататын ОҢАЙ функциясымен орындалады. Бұл функцияның шығысы әрқашан мәтін болады. Біздің жағдайда нәтиже сандық ішкі жол болып табылады, ол Excel тілінде де сан емес, мәтін болып табылады.
Егер нәтиже сан болуы керек болса. (бұдан әрі есептеулерде қолдануға болады), содан кейін формуланы VALUE функциясына орап немесе нәтижені өзгертпейтін арифметикалық әрекетті орындаңыз, айталық, 1-ге көбейтіңіз немесе 0 қосыңыз. Құрамында жоқ жолдардағы қателерді анықтау жалғыз нөмір үшін ҚАУІСІЗ функциясын пайдаланыңыз. Мысалы:
=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)))), "")
немесе
=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, "")
Ескерту. Excel динамикалық массивінде (Office 365 және 2021) формуланы әдеттегідей Enter пернесі арқылы енгізесіз. Excel 2019 және одан бұрынғы нұсқаларында ол тек массив формуласы ретінде жұмыс істейді, сондықтан оны аяқтау үшін Ctrl + Shift + Enter пернелерін басуды ұмытпаңыз.
Бұл формула қалай жұмыс істейді:
Алфавиттік-цифрлық жолдан санды шығару үшін, ең алдымен, алуды қай жерден бастау керек екенін білу керек. Жолдағы соңғы сандық емес таңбаның орны мына күрделі формуланың көмегімен анықталады:
MAX(IF(ISNUMBER(MID(A2, ROW)INDIRECT("1:"&LEN() A2))), 1)*1)=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0))
Логиканы түсіну үшін оны ішінен зерттеп көрейік :
ҚОЛ(ЖАНА("1:"&LEN(A2))) комбинациясыбастапқы жолдағы таңбалар жиынтығына сәйкес сандар тізбегін жасайды (A2) және біз осы реттік сандарды MID-ге бастапқы сандар ретінде қызмет етеміз:
MID(A2, {1;2;3;4) ;5;6;7;8}, 1)
MID функциясы әрбір жеке таңбаны A2-ден шығарып, оларды массив ретінде қайтарады:
{"0";"5";" -";"E";"C";"-";"0";"1"}
MID мәтіндік функция болғандықтан, оның шығысы әрқашан мәтін болып табылады (байқағаныңыздай, барлық таңбалар тырнақшаға алынады). Санды сандарды сандарға айналдыру үшін массивді 1-ге көбейтеміз (қос терістеу --MID() бірдей нәтиже береді). Бұл әрекеттің нәтижесі - сандар массиві және #VALUE! сандық емес таңбаларды көрсететін қателер:
ISNUMBER({0;5;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0;1})
ISNUMBER функциясы массивтің әрбір элементін бағалайды және логикалық мәндер түрінде өз шешімін береді - сандар үшін TRUE, қалған кез келген нәрсе үшін ЖАЛҒАН:
{TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE}
Бұл массив ЕСЕР функциясының логикалық сынағына өтеді, мұнда алаптың әрбір элементі ЖАЛҒАН:
ЕГЕР({ШЫН;ШЫН;ЖАЛҒАН;ЖАЛҒАН;ЖАЛҒАН;ЖАЛҒАН;ШЫН. ;TRUE}=FALSE, ROW(INDIRECT("1:"&LEN(A2))), 0)
Әр FALSE (сандық емес мән) үшін басқа ROW(INDIRECT()) функциясы қайтарады оның жолдағы салыстырмалы орны. Әрбір TRUE (сандық мән) үшін нөл қайтарылады. Алынған массив келесідей көрінедімынадай:
{0;0;3;4;5;6;0;0}
Қалғаны оңай. MAX функциясы жолдағы соңғы сандық емес мәннің орны (біздің жағдайда 6) жоғарыдағы массивтегі ең жоғары санды табады. Жай ғана, LEN қайтарған жолдың жалпы ұзындығынан сол позицияны алып тастаңыз және жолдың оң жағынан қанша таңба шығару керектігін білу үшін нәтижені ОҢ жаққа жіберіңіз:
RIGHT(A2, LEN) (A2) - 6)
Дайын!
Мәтін жолының басынан санды шығару жолы
Егер сіз саннан кейін мәтін пайда болатын жазбалармен жұмыс істеп жатсаңыз, осы жалпы формуланы пайдаланып жолдың басынан нөмірді шығарыңыз:
LEFT( ұяшық , SATCH(FALSE, ISNUMBER(MID( ұяшық , ROW(INDIRECT("1:") "&LEN( ұяшық )+1)), 1) *1), 0) -1)А2 форматындағы бастапқы жолмен нөмірді алу үшін келесі формуланы пайдаланыңыз:
=LEFT(A2, MATCH(FALSE, ISNUMBER(MID(A2, ROW(INDIRECT("1:"&LEN(A2)+1)), 1) *1), 0) -1)
Ортасында немесе соңында қанша цифр болса да, тек бастапқы сан алынады:
Ескерту. Excel 365 және Excel 2021 нұсқаларында динамикалық массивтерді қолдауға байланысты кәдімгі формула жақсы жұмыс істейді. Excel 2019 және одан бұрынғы нұсқаларында оны массив формуласы ету үшін Ctrl + Shift + Enter пернелерін басу керек.
Бұл формула қалай жұмыс істейді:
Мұнда біз бастапқы жолдағы таңбалардың жалпы санына 1 плюс (оның рөлі) тең сандар тізбегін жасау үшін ROW, DIRECT және LEN функцияларының тіркесімін қайтадан пайдаланамыз.қосымша таңба сәл кейінірек түсінікті болады).
ROW(INDIRECT("1:"&LEN(A2)+1))
MID және ISNUMBER келесі жұмысты орындайды. алдыңғы мысал - MID жеке таңбаларды тартады және ISNUMBER оларды логикалық мәндерге түрлендіреді. ШЫН және ЖАЛҒАН мәндерінің алынған массиві іздеу массиві ретінде MATCH функциясына өтеді:
МАТЧ(ЖАЛҒАН, {ШЫН;ШЫН;ЖАЛҒАН;ЖАЛҒАН;ЖАЛҒАН;ЖАЛҒАН;ШЫН;ШЫН;ЖАЛҒАН}, 0)
MATCH бірінші FALSE салыстырмалы орнын есептеп, бізге жолдағы бірінші сандық емес таңбаның орнын береді (A2 форматында 3). Алдыңғы сандарды шығару үшін бірінші мәтін таңбасының орнынан 1-ді алып тастаймыз және айырмашылықты LEFT функциясының таңбалар_саны аргументіне келтіреміз:
СОЛ(A2, 3-1)
Енді, ROW(ЖАНА()+1)) арқылы жасалған реттіліктегі "қосымша" таңбаға оралыңыз. Өздеріңіз білетіндей, бұл реттілік MID функциясының бастапқы нүктелерін қамтамасыз етеді. +1 болмаса, MID бастапқы жолда қанша таңба болса, сонша таңбаны шығарады. Жолда тек сандар болса, ISNUMBER тек ШЫН мәнді қайтарады, ал MATCH үшін кемінде бір FALSE қажет. Мұны қамтамасыз ету үшін MID функциясы бос жолға түрлендіретін жолдың жалпы ұзындығына тағы бір таңба қосамыз. Мысалы, B7 ішінде MID мына жиымды қайтарады:
{"1";"2";"3";"4";""
Ескертпе. RIGHT функциясы сияқты, LEFT те санды қайтарадыішкі жол , ол сан емес, техникалық мәтін болып табылады. Нәтижені сандық жол емес, сан ретінде алу үшін, формуланы VALUE функциясына кірістіріңіз немесе нәтижені бірінші мысалда көрсетілгендей 1-ге көбейтіңіз.
Сандық жолдағы кез келген позициядан қалай алуға болады
Егер тапсырмаңыз жолдың кез келген жерінен санды шығаруды көздейтін болса, 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)
Мұндағы A2 - бұл бастапқы мәтін жолы.
Бұл формуланы бөлшектеу үшін бөлек мақала қажет болады, сондықтан оның шынымен жұмыс істейтініне көз жеткізу үшін оны жай ғана жұмыс парағына көшіруге болады :)
Нәтижелерді тексерген кезде, сіз бір елеусіз кемшілікті байқай аласыз - егер бастапқы жолда сан болмаса, жоғарыдағы скриншоттағы 6-жолдағыдай формула нөлді қайтарады. Бұны түзету үшін формуланы IF операторына орауға болады, оның логикалық сынағы бастапқы жолда кез келген санның бар-жоғын тексереді. Олай болса, формула санды шығарып алады, әйтпесе бос жолды қайтарады:
=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),"")
Төмендегі скриншотта көрсетілгендей, жақсартылған формула әдемі жұмыс істейді (Алекске, біздің Excel гуруымызға, бұл жақсарту үшін):
Алдыңғы барлық мысалдардан айырмашылығы, бұл формуланың нәтижесі сан болып табылады. Бұған көз жеткізу үшін B бағанындағы оң жаққа тураланған мәндерге және қысқартылған бастапқы нөлдерге назар аударыңыз.
Кеңес. Excel 365 бағдарламасында -Excel 2019, TEXTJOIN функциясының көмегімен әлдеқайда қарапайым шешім бар. Мәтінді жою және сандарды сақтау әдісі бөлімін қараңыз.
Ultimate Suite көмегімен мәтін жолынан нөмірді шығарып алу
Жаңа ғана көргеніңіздей, мәтін жолынан нөмірді шығару үшін тривиальды Excel формуласы жоқ. Формулаларды түсінуде немесе деректер жиындары үшін оларды түзетуде қиындықтар туындаса, сізге Excel бағдарламасындағы жолдан нөмір алудың осы қарапайым әдісі ұнауы мүмкін.
Excel лентасына біздің Ultimate Suite қосылды, осылайша сіз кез келген әріптік-цифрлық жолдан нөмірді жылдам шығарып ала алады:
- Ablebits Data қойындысы > Мәтін тобына өтіп, Шығару түймесін басыңыз. :
- Бастапқы жолдары бар барлық ұяшықтарды таңдаңыз.
- Шығару құралының тақтасында Сандарды шығару радио түймешігін таңдаңыз.
- Нәтижелердің формулалар немесе мәндер болуын қалауыңызға байланысты Формула ретінде кірістіру жолағын таңдаңыз немесе оны таңдаусыз қалдырыңыз (әдепкі).
Менің кеңесім - бастапқы жолдарға кез келген өзгертулер енгізілгеннен кейін алынған нөмірлердің автоматты түрде жаңартылуын қаласаңыз, осы жолақты таңдау. Нәтижелердің бастапқы жолдарға тәуелсіз болуын қаласаңыз (мысалы, бастапқы деректерді кейінірек жоюды жоспарласаңыз), онда бұл жолақты таңдамаңыз.
- Нәтижелерді кірістіру түймесін басыңыз. Орындалды!
Алдыңғы мысалдағыдай,шығару сандар , яғни олармен санауға, қосуға, орташалауға немесе кез келген басқа есептеулерді орындауға еркінсіз.
Бұл мысалда біз нәтижелерді <9 ретінде енгізуді таңдадық>мәндер және қондырма дәл сұралған нәрсені орындады:
Егер Формула ретінде кірістіру құсбелгісі таңдалса, сіз' d формулалар жолағында формула қараңыз. Қайсысын білгіңіз келе ме? Ultimate Suite сынақ нұсқасын жүктеп алып, өзіңіз көріңіз :)
Қолжетімді жүктеулер
Excel Extract Number - үлгі жұмыс кітабы (.xlsx файлы)
Ultimate Suite - сынақ нұсқасы (.exe) файл)