როგორ ამოიღოთ ტექსტი ან რიცხვები Excel-ის უჯრედიდან

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

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

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

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

    როგორ წაშალოთ ტექსტი და შეინახოთ რიცხვები Excel-ის უჯრედებში

    გადაწყვეტა მუშაობს Excel 365-ში, Excel 2021-ში , და Excel 2019

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

    ზოგადი ფორმულა არის:

    TEXTJOIN("", TRUE, IFERROR(MID( უჯრედი, ROW(INDIRECT("1:"&LEN( უჯრედი))), 1) *1, ""))

    Excel 365-სა და 2021-ში ესეც იმუშავებს:

    TEXTJOIN("", TRUE,IFERROR(MID( უჯრედ, SEQUENCE(LEN( უჯრედ)), 1) *1, ""))

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

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

    Excel 365 - 2019:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2))), 1) *1, ""))

    Excel 2019-ში ის უნდა იყოს შეყვანილი მასივის ფორმულის სახით Ctrl + Shift + Enter . დინამიურ მასივში Excel, ის მუშაობს როგორც ნორმალური ფორმულა, რომელიც სრულდება Enter კლავიშით.

    Excel 365-ში და 2021-ში:

    =TEXTJOIN("", TRUE, IFERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1, ""))

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

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

    ლოგიკის უკეთ გასაგებად, დავიწყოთ გამოძიება ფორმულა შიგნიდან:

    თქვენ იყენებთ ROW(INDIRECT("1:"&LEN(string))) ან SEQUENCE(LEN(string)) რათა შექმნათ რიგითი რიცხვი, რომელიც შეესაბამება საერთო რიცხვს სიმბოლოების წყაროს სტრიქონში და შემდეგ მიაწოდეთ ეს თანმიმდევრული რიცხვები MID ფუნქციას, როგორც საწყისი ნომრები. B2-ში ფორმულის ეს ნაწილი ასე გამოიყურება:

    MID(A2, {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15}, 1)

    MID ფუნქცია ამოიღებს თითოეულ სიმბოლოს A2-დან პირველიდან დაწყებული და აბრუნებს მასივის სახით:

    <. 0> {"2";"1";"0";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}

    ეს მასივი მრავლდება 1-ზე. რიცხვითი მნიშვნელობები გადარჩება ცვლილების გარეშე, ხოლო არაციფრული სიმბოლოს გამრავლების შედეგად მიიღება #VALUE! შეცდომა:

    {2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

    IFERROR ფუნქცია ამუშავებსეს შეცდომები და ცვლის მათ ცარიელი სტრიქონებით:

    {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""}

    ეს საბოლოო მასივი ემსახურება TEXTJOIN ფუნქციას, რომელიც აერთიანებს მასივის არა ცარიელი მნიშვნელობებს ( ignore_empty არგუმენტი დაყენებულია TRUE-ზე) ცარიელი სტრიქონის ("") გამოყენებით დელიმიტერისთვის:

    TEXTJOIN("", TRUE, {2;1;0;"";"";"";"";"";"";"";"";"";"";"";""})

    რჩევა. Excel 2016 - 2007 წლებისთვის, გამოსავალი ასევე არსებობს, მაგრამ ფორმულა ბევრად უფრო რთულია. თქვენ შეგიძლიათ იპოვოთ ის ამ სახელმძღვანელოში: როგორ ამოიღოთ ნომრები Excel-ში.

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

    გამოსავალი მუშაობს Excel-ის ყველა ვერსიისთვის

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

    VBA კოდი 1:

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

    ფუნქცია RemoveText(str როგორც სტრიქონი ) Dim sRes As String sRes = "" For i = 1 To Len(str) If True = IsNumeric(Mid(str, i , 1)) შემდეგ sRes = sRes & amp; Mid(str, i, 1) End If Next i RemoveText = sRes End ფუნქცია

    VBA კოდი 2:

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

    ფუნქცია RemoveText(str როგორც სტრიქონი) როგორც სტრიქონი CreateObject-ით ("VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "" ) დასრულება ბოლო ფუნქციით

    მცირე სამუშაო ფურცლებზე ორივე კოდი ერთნაირად კარგად მუშაობს. დიდ სამუშაო ფურცლებზე, სადაც ფუნქცია ასობით ან ათასობით ჯერ არის გამოძახებული, კოდი 2, რომელიც იყენებს VBScript.RegExp-ს, იმუშავებს უფრო სწრაფად.

    თქვენს სამუშაო წიგნში კოდის ჩასმის დეტალური ნაბიჯები შეგიძლიათ იხილოთ აქ: როგორ ჩავსვათ VBA კოდი Excel-ში.

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

    RemoveText(string)

    მაგალითად, ამოიღეთ არარიცხობრივი სიმბოლოები A2 უჯრედიდან, B2-ის ფორმულა არის:

    =RemoveText(A2)

    უბრალოდ დააკოპირეთ იგი სვეტში და მიიღებთ ამ შედეგს:

    შენიშვნა. როგორც მშობლიური ფორმულები, ასევე მორგებული ფუნქცია გამოაქვს ციფრული სტრიქონი . რიცხვად გადაქცევისთვის, შედეგი გაამრავლეთ 1-ზე, ან დაამატეთ ნული, ან გადაიტანეთ ფორმულა VALUE ფუნქციაში. მაგალითად:

    =RemoveText(A2) + 0

    =VALUE(RemoveText(A2))

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

    გადაწყვეტა მუშაობს Excel 365-ში, Excel 2021-ში და Excel-ში 2019

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

    Excel 365 - 2019:

    TEXTJOIN(" ", TRUE, IF(ISERR(MID( უჯრედ , ROW(INDIRECT("1:"&LEN( უჯრედი ) )), 1) *1), MID( უჯრედი , ROW(INDIRECT("1:"&LEN( უჯრედი ))), 1), ""))

    Excel 2019-ში დაიმახსოვრეთ, რომ გახადოთ ის მასივის ფორმულა Ctrl + Shift + Enter კლავიშების ერთად დაჭერით.

    Excel 365-ისთვის და 2021-ისთვის:

    TEXTJOIN("", TRUE, IF(ISERROR(MID( cell , SEQUENCE(LEN( cell 1) *1), MID ( უჯრედი , SEQUENCE(LEN( cell )), 1), ""))

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

    =TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))

    ან

    =TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), ""))

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

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

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

    =TRIM(TEXTJOIN("", TRUE, IF(ISERROR(MID(A2, SEQUENCE(LEN(A2)), 1) *1), MID(A2, SEQUENCE(LEN(A2)), 1), "")))

    ახლა, თქვენი შედეგები აბსოლუტურად სრულყოფილია!

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

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

    როგორც გახსოვთ,MID(…)+0 წარმოქმნის რიცხვების მასივს და #VALUE! შეცდომები, რომლებიც წარმოადგენენ ტექსტის სიმბოლოებს იმავე პოზიციებზე:

    {2;1;0;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!}

    ISERROR ფუნქცია იჭერს შეცდომებს და გადასცემს მიღებული ლოგიკური მნიშვნელობების მასივს IF:

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

    როდესაც ფუნქცია IF ხედავს TRUE-ს (შეცდომას), ის ათავსებს შესაბამის ტექსტურ სიმბოლოს დამუშავებულ მასივში სხვა MID ფუნქციის დახმარებით. როდესაც IF ფუნქცია ხედავს FALSE-ს (რიცხვს), ის ცვლის მას ცარიელი სტრიქონით:

    {"";"";"";" ";"S";"u";"n";"s";"e";"t";" ";"R";"o";"a";"d"}

    ეს საბოლოო მასივი გადაეცემა TEXTJOIN-ს, ამიტომ იგი აერთიანებს ტექსტის სიმბოლოებს და გამოსცემს შედეგი.

    მორგებული ფუნქცია ნომრების ტექსტიდან ამოსაღებად

    გადაწყვეტა მუშაობს Excel-ის ყველა ვერსიისთვის

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

    VBA კოდი 1:

    Function RemoveNumbers(str As String ) Dim sRes როგორც სტრიქონი sRes = "" For i = 1 To Len(str) If False = IsNumeric(Mid(str, i, 1)) მაშინ sRes = sRes & Mid(str, i, 1) End If Next i RemoveNumbers = sRes End ფუნქცია

    VBA კოდი 2:

    ფუნქცია RemoveNumbers(str როგორც სტრიქონი) როგორც სტრიქონი CreateObject-ით ("VBScript.RegExp" ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End With End ფუნქცია

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

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

    RemoveNumbers(string)

    ჩვენს შემთხვევაში, ფორმულა B2-ში არის:

    =RemoveNumbers(A2)

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

    =TRIM(RemoveNumbers(A2))

    დაყავით რიცხვები და ტექსტი ცალკეულ სვეტებად

    იმ სიტუაციაში, როდესაც გსურთ ტექსტისა და რიცხვების ორ სვეტად გამოყოფა, კარგი იქნებოდა, რომ სამუშაო შესრულდეს ერთი ფორმულით. , თანახმა ხართ? ამისათვის ჩვენ უბრალოდ ვაერთებთ RemoveText და RemoveNumbers ფუნქციების კოდს ერთ ფუნქციაში, სახელად SplitTextNumbers , ან უბრალოდ Split , ან რაც გინდა :)

    VBA კოდი 1:

    ფუნქცია SplitTextNumbers(str როგორც სტრიქონი, is_remove_text როგორც ლოგიკური) როგორც სიმებიანი Dim sNum, sText, sChar როგორც სტრიქონი sCurChar = sNum = sText = "" For i = 1 To Len(str) sCurChar = Mid(str, i, 1) თუ True = IsNumeric(sCurChar) მაშინ sNum = sNum & sCurChar Else sText = sText & amp; sCurChar End If Next i If True = is_remove_text მაშინ SplitTextNumbers = sNum Else SplitTextNumbers = sText End If End ფუნქცია

    VBA კოდი 2:

    Function SplitTextNumbers(str As String Asremoole_)ext. CreateObject-ით ("VBScript.RegExp") .Global = True If True = is_remove_text შემდეგ .Pattern = "[^0-9]" სხვა.Pattern = "[0-9]" End If SplitTextNumbers = .Replace(str, "" ) End With End ფუნქცია

    ჩვენი ახალი მორგებული ფუნქცია მოითხოვს ორ არგუმენტს:

    SplitTextNumbers(string, is_remove_text)

    სად is_remove_text არის ლოგიკური მნიშვნელობა, რომელიც მიუთითებს რომელი სიმბოლოების ამოღება:

    • TRUE ან 1 - წაშალეთ ტექსტი და შეინახეთ რიცხვები
    • FALSE ან 0 - ამოიღეთ რიცხვები და შეინახეთ ტექსტი

    ჩვენი ნიმუშის მონაცემთა ნაკრებისთვის ფორმულები იღებენ შემდეგ ფორმას:

    არაციფრული სიმბოლოების წასაშლელად:

    =SplitTextNumbers(A2, TRUE)

    ციფრული სიმბოლოების წასაშლელად :

    =SplitTextNumbers(A2, FALSE)

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

    =TRIM(SplitTextNumbers(A2, FALSE))

    სპეციალური ინსტრუმენტი რიცხვების ან ტექსტის წასაშლელად

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

    თუ ვივარაუდებთ, რომ ჩვენი Ultimate Suite დაემატება თქვენს Excel ლენტს, ეს არის ის, რასაც აკეთებთ:

    1. Ablebits Data ჩანართზე, ტექსტი ჯგუფში დააწკაპუნეთ წაშლა > სიმბოლოების წაშლა .

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

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

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

    წაშალეთ ტექსტი ან რიცხვები Excel-ში - მაგალითები (ფაილი .xlsm)

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

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