Ինչպես հեռացնել տեքստը կամ թվերը 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-ից յուրաքանչյուր նիշ՝ սկսած առաջինից և վերադարձնում դրանք որպես զանգված.

    {"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:

    Այստեղ մենք նայում ենք սկզբնաղբյուրի յուրաքանչյուր նիշին մեկ առ մեկ: մեկը և ստուգեք՝ թվային է, թե ոչ: Եթե ​​թիվ է, նիշը ավելացվում է ստացված տողին:

    Function RemoveText(str As String ) 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 Function

    VBA կոդ 2:

    Կոդը ստեղծում է օբյեկտ՝ կանոնավոր արտահայտությունը մշակելու համար: Օգտագործելով RegExp, մենք հեռացնում ենք բոլոր այլ նիշերը, բացի 0-9 թվանշաններից, աղբյուրի տողից:

    Function RemoveText(str As String) As String With CreateObject ("VBScript.RegExp") .Global = True .Pattern = "[^0-9]" RemoveText = .Replace(str, "") Ավարտել End Function-ով

    Փոքր աշխատաթերթերում երկու կոդերն էլ հավասարապես լավ կաշխատեն: Մեծ աշխատաթերթերում, որտեղ գործառույթը կանչվել է հարյուրավոր կամ հազարավոր անգամներ, 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( բջիջ , SEQUENCE(LEN( բջիջ 1) *1), MID ( բջիջ , SEQUENCE(LEN( բջիջ )), 1), ""))

    Օրինակ, A2-ի տողից թվերը հանելու համար բանաձևը հետևյալն է. 3>

    =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 As String 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 Function

    VBA կոդը 2:

    Function RemoveNumbers(str As String) As String With CreateObject ( «VBScript.RegExp» ) .Global = True .Pattern = "[0-9]" RemoveNumbers2 = .Replace(str, "" ) End With End Function

    Ինչպես RemoveText ֆունկցիայի դեպքում, երկրորդ կոդը ավելի լավ է օգտագործել. մեծաշխատաթերթեր՝ արդյունավետությունը օպտիմալացնելու համար:

    Հենց որ կոդը ավելացվի ձեր աշխատանքային գրքում, դուք կարող եք հեռացնել բոլոր թվային նիշերը բջիջից՝ օգտագործելով այս հատուկ գործառույթը.

    RemoveNumbers(string)

    Մեր դեպքում՝ B2-ի բանաձևը հետևյալն է.

    =RemoveNumbers(A2)

    Առաջատար բացատները, եթե այդպիսիք կան, տեղադրեք հատուկ գործառույթը TRIM-ի ներսում, ինչպես բնիկ բանաձևը.

    =TRIM(RemoveNumbers(A2))

    Թվերն ու տեքստը բաժանեք առանձին սյունակների

    Այն իրավիճակում, երբ ցանկանում եք տեքստը և թվերը բաժանել երկու սյունակի, լավ կլիներ, որ աշխատանքը կատարվեր մեկ բանաձևով։ , համաձայնվել? Դրա համար մենք պարզապես միավորում ենք RemoveText և RemoveNumbers ֆունկցիաների կոդը մեկ ֆունկցիայի մեջ, որը կոչվում է SplitTextNumbers , կամ պարզապես Split , կամ ինչ ուզում ես :)

    VBA կոդը 1:

    Function SplitTextNumbers(str As String , is_remove_text as Boolean ) As String Dim sNum, sText, sChar Որպես տող sCurChar = sNum = sText = "" For i = 1 To Len(str) sCurChar = Mid(str, i, 1) If 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 Function

    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 Function

    Մեր նոր հատուկ ֆունկցիան պահանջում է երկու արգումենտ.

    SplitTextNumbers(string, is_remove_text)

    Where 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 ներդիրում, Text խմբում սեղմեք Հեռացնել > Հեռացնել նիշերը :

  • Հավելվածի վահանակում ընտրեք աղբյուրի տիրույթը, ընտրեք Հեռացնել նիշերի հավաքածուները տարբերակը և ընտրեք Տեքստ նիշերը կամ Թվային նիշերը բացվող ցանկում:
  • Կտտացրեք Հեռացնել և վայելեք արդյունքը :)
  • Հուշում. Եթե ​​արդյունքները պարունակում են որոշ առաջատար բացատներ, ապա կտրեք բացատներըգործիքը կարճ ժամանակում կվերացնի դրանք:

    Այսպես կարելի է հեռացնել տեքստը կամ թվային նիշերը Excel-ի տողից: Ես շնորհակալություն եմ հայտնում կարդալու համար և անհամբեր սպասում եմ ձեզ հաջորդ շաբաթ մեր բլոգում տեսնելու համար:

    Հասանելի ներբեռնումներ

    Հեռացրեք տեքստը կամ թվերը Excel-ից. օրինակներ (.xlsm ֆայլ)

    Ultimate Suite - փորձնական տարբերակ (.exe ֆայլ)

    Մայքլ Բրաունը նվիրված տեխնոլոգիայի էնտուզիաստ է, որը ձգտում է պարզեցնել բարդ գործընթացները՝ օգտագործելով ծրագրային գործիքները: Տեխնոլոգիական ոլորտում ավելի քան մեկ տասնամյակ փորձ ունենալով՝ նա կատարելագործել է իր հմտությունները Microsoft Excel-ում և Outlook-ում, ինչպես նաև Google Sheets-ում և Docs-ում: Մայքլի բլոգը նվիրված է իր գիտելիքներն ու փորձառությունը ուրիշների հետ կիսելուն՝ տրամադրելով հեշտ օգտագործվող խորհուրդներ և ձեռնարկներ՝ արտադրողականությունն ու արդյունավետությունը բարձրացնելու համար: Անկախ նրանից, թե դուք փորձառու մասնագետ եք, թե սկսնակ, Մայքլի բլոգը առաջարկում է արժեքավոր պատկերացումներ և գործնական խորհուրդներ՝ առավելագույն օգուտ քաղելու այս կարևոր ծրագրային գործիքներից: