Excel: ამოიღეთ რიცხვი ტექსტური სტრიქონიდან

  • გააზიარეთ ეს
Michael Brown

გაკვეთილი გვიჩვენებს, თუ როგორ უნდა ამოიღოთ რიცხვი სხვადასხვა ტექსტური სტრიქონიდან Excel-ში ფორმულებისა და ამონაწერის ხელსაწყოს გამოყენებით.

როცა საქმე ეხება მოცემული სიგრძის ტექსტის სტრიქონის ნაწილის ამოღებას. , Excel უზრუნველყოფს სამ Substring ფუნქციას (მარცხნივ, მარჯვნივ და შუაში), რათა სწრაფად გაუმკლავდეს ამოცანას. როდესაც საქმე ეხება რიცხვების ამოღებას ალფაციფრული სტრიქონიდან, Microsoft Excel არ იძლევა... არაფერს.

Excel-ში სტრიქონიდან რიცხვის მისაღებად საჭიროა ცოტა ჭკუა, ცოტა მოთმინება და რამდენიმე განსხვავებული ფუნქცია. ბუდობდნენ ერთმანეთში. ან, შეგიძლიათ გაუშვათ ამონაწერი ინსტრუმენტი და დაასრულოთ სამუშაო მაუსის დაწკაპუნებით. ქვემოთ ნახავთ სრულ დეტალებს ორივე მეთოდის შესახებ.

    როგორ ამოიღოთ რიცხვი ტექსტის სტრიქონის ბოლოდან

    როცა გაქვთ ანბანური სტრიქონების სვეტი, სადაც რიცხვი მოდის შემდეგ ტექსტი, შეგიძლიათ გამოიყენოთ შემდეგი ფორმულა მის მისაღებად.

    RIGHT( უჯრედ, LEN( უჯრედ) - MAX(IF(ISNUMBER(MID( უჯრედი, ROW(INDIRECT("1:"&LEN( უჯრედ))), 1) *1)=FALSE, ROW(INDIRECT("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)))

    ეს ფორმულა იღებს რიცხვს მხოლოდ ბოლოდან. თუ სტრიქონს ასევე აქვს რიცხვები დასაწყისში ან შუაში, ისინი არიანიგნორირებულია:

    ექსტრაქცია შესრულებულია RIGHT ფუნქციით, რომელიც ეკუთვნის ტექსტის ფუნქციების კატეგორიას. ამ ფუნქციის გამომავალი ყოველთვის არის ტექსტი . ჩვენს შემთხვევაში, შედეგი არის ციფრული ქვესტრიქონი , რომელიც Excel-ის თვალსაზრისით ასევე არის ტექსტი და არა რიცხვი.

    თუ გჭირდებათ შედეგი იყოს რიცხვი (რომელიც შეგიძლიათ გამოიყენოთ შემდგომ გამოთვლებში), შემდეგ გადაიტანეთ ფორმულა VALUE ფუნქციაში ან შეასრულეთ არითმეტიკული ოპერაცია, რომელიც არ ცვლის შედეგს, ვთქვათ, გავამრავლოთ 1-ზე ან დაამატოთ 0. სტრიქონების შეცდომების დასაფიქსირებლად, რომლებიც არ შეიცავს ერთი ნომერი, გამოიყენეთ IFERROR ფუნქცია. მაგალითად:

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

    ლოგიკის გასაგებად, მოდით გამოვიკვლიოთ იგი შიგნიდან :

    ROW(INDIRECT("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 რიცხვებისთვის, FALSE სხვა ნებისმიერისთვის:

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

    ეს მასივი გადადის IF ფუნქციის ლოგიკურ ტესტზე, სადაც მასივის თითოეული ელემენტი შედარებულია FALSE-სთან:

    IF({TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;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-ს, რათა იცოდეს რამდენი სიმბოლო უნდა ამოიღოს სტრიქონის მარჯვენა მხრიდან:

    RIGHT(A2, LEN (A2) - 6)

    შესრულებულია!

    როგორ ამოიღოთ რიცხვი ტექსტის სტრიქონის დასაწყისიდან

    თუ მუშაობთ ჩანაწერებთან, სადაც ტექსტი გამოჩნდება რიცხვის შემდეგ, შეგიძლიათ ამოიღეთ რიცხვი სტრიქონის დასაწყისიდან ამ ზოგადი ფორმულის გამოყენებით:

    LEFT( უჯრედ, MATCH(FALSE, ISNUMBER(MID( უჯრედ, ROW(INDIRECT("1: "&LEN( უჯრედი)+1)), 1) *1), 0) -1)

    ორიგინალური სტრიქონით A2-ში, გამოიყენეთ შემდეგი ფორმულა ნომრის მისაღებად:

    =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, რათა მკაფიოდ აქციოთ მასივის ფორმულა .

    როგორ მუშაობს ეს ფორმულა:

    აქ ჩვენ კვლავ ვიყენებთ ROW, INDIRECT და LEN ფუნქციების კომბინაციას, რათა შევქმნათ რიცხვების თანმიმდევრობა, რომელიც ტოლია სიმბოლოების ჯამური წყაროს სტრიქონში პლუს 1 (ამის როლიდამატებითი სიმბოლო ცოტა მოგვიანებით გაირკვევა).

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

    MID და ISNUMBER იგივე საქმეს აკეთებენ, როგორც წინა მაგალითი - MID იზიდავს ცალკეულ სიმბოლოებს და ISNUMBER გარდაქმნის მათ ლოგიკურ მნიშვნელობებად. TRUE's და FALSE's-ის შედეგად მიღებული მასივი მიდის MATCH ფუნქციაზე, როგორც საძიებო მასივი:

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

    MATCH ითვლის პირველი FALSE-ის ფარდობით პოზიციას, რაც გვაძლევს პირველი არაციფრული სიმბოლოს პოზიციას სტრიქონში (3 A2-ში). წინა რიცხვების ამოსაღებად, ჩვენ გამოვაკლებთ 1-ს პირველი ტექსტის სიმბოლოს პოზიციიდან და სხვაობას ვემსახურებით LEFT ფუნქციის num_chars არგუმენტს:

    LEFT(A2, 3-1)

    ახლა, დაუბრუნდით "დამატებით" სიმბოლოს ROW(INDIRECT()+1)-ით გენერირებული თანმიმდევრობით. როგორც უკვე იცით, ეს თანმიმდევრობა უზრუნველყოფს MID ფუნქციის საწყის წერტილებს. +1-ის გარეშე, MID ამოიღებს ზუსტად იმდენ სიმბოლოს, რამდენიც ორიგინალურ სტრიქონშია. თუ სტრიქონი შეიცავს მხოლოდ ციფრებს, ISNUMBER დააბრუნებს მხოლოდ TRUE-ს, ხოლო MATCH-ს სჭირდება მინიმუმ ერთი FALSE. ამის უზრუნველსაყოფად, ჩვენ ვამატებთ კიდევ ერთ სიმბოლოს სტრიქონის მთლიან სიგრძეს, რომელსაც MID ფუნქცია გარდაქმნის ცარიელ სტრიქონად. მაგალითად, B7-ში MID აბრუნებს ამ მასივს:

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

    შენიშვნა. როგორც RIGHT ფუნქციის შემთხვევაში, LEFT ასევე აბრუნებს ციფრულსsubstring , რომელიც ტექნიკურად არის ტექსტი და არა ნომერი. შედეგის მისაღებად როგორც რიცხვი და არა რიცხვითი სტრიქონი, ჩადეთ ფორმულა 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-ში სტრიქონიდან რიცხვის მისაღებად.

    ჩვენი Ultimate Suite დაემატა თქვენს Excel ლენტს, აი, როგორ შეუძლია სწრაფად მოიძიოს რიცხვი ნებისმიერი ალფაციფრული სტრიქონიდან:

    1. გადადით Ablebits Data ჩანართზე > Text და დააწკაპუნეთ Extract :

    2. აირჩიეთ ყველა უჯრედი წყაროს სტრიქონებით.
    3. Extract ინსტრუმენტის პანელზე აირჩიეთ Extract numbers რადიო ღილაკი.
    4. დამოკიდებულია იმაზე, გსურთ თუ არა შედეგები იყოს ფორმულები ან მნიშვნელობები, აირჩიეთ ველი ფორმულად ჩასმა ან დატოვეთ ის არჩეული (ნაგულისხმევი).

      ჩემი რჩევაა აირჩიოთ ეს ველი, თუ გსურთ ამოღებული ნომრები ავტომატურად განახლდეს, როგორც კი რაიმე ცვლილება შეიტანება წყაროს სტრიქონებში. თუ გსურთ, რომ შედეგები იყოს დამოუკიდებელი ორიგინალურ სტრიქონებზე (მაგ., თუ ​​თქვენ აპირებთ წყაროს მონაცემების მოგვიანებით წაშლას), მაშინ არ აირჩიოთ ეს ველი.

    5. დააწკაპუნეთ ღილაკზე შედეგების ჩასმა . დასრულდა!

    როგორც წინა მაგალითში, შედეგებიმოპოვება არის ნომრები , რაც ნიშნავს, რომ თქვენ თავისუფლად შეგიძლიათ დათვალოთ, შეაგროვოთ, საშუალოდ ან შეასრულოთ სხვა გამოთვლები მათთან ერთად.

    ამ მაგალითში, ჩვენ ავირჩიეთ შედეგების ჩასმა როგორც მნიშვნელობები და დანამატმა ზუსტად შეასრულა ის, რაც მოთხოვნილია:

    თუ არჩეული იყო ჩამრთველი ფორმულად ჩასმა , თქვენ' დააკვირდით ფორმულა ფორმულების ზოლში. გაინტერესებთ რომელი? უბრალოდ ჩამოტვირთეთ Ultimate Suite-ის საცდელი ვერსია და დარწმუნდებით :)

    ხელმისაწვდომი ჩამოტვირთვები

    Excel Extract Number - სამუშაო წიგნის ნიმუში (ფაილი .xlsx)

    Ultimate Suite - საცდელი ვერსია (.exe ფაილი)

    მაიკლ ბრაუნი არის ტექნოლოგიის ერთგული ენთუზიასტი, რომელსაც აქვს გატაცება პროგრამული ინსტრუმენტების გამოყენებით რთული პროცესების გამარტივებისთვის. ტექნოლოგიურ ინდუსტრიაში ათწლეულზე მეტი გამოცდილებით, მან დახვეწა თავისი უნარები Microsoft Excel-სა და Outlook-ში, ასევე Google Sheets-სა და Docs-ში. მაიკლის ბლოგი ეძღვნება თავისი ცოდნისა და გამოცდილების სხვებს გაზიარებას, ადვილად მისაწვდომ რჩევებსა და გაკვეთილებს პროდუქტიულობისა და ეფექტურობის გასაუმჯობესებლად. მიუხედავად იმისა, გამოცდილი პროფესიონალი ხართ თუ დამწყები, მაიკლის ბლოგი გთავაზობთ ღირებულ შეხედულებებსა და პრაქტიკულ რჩევებს ამ აუცილებელი პროგრამული ხელსაწყოებიდან მაქსიმალური სარგებლობის მისაღებად.