Բովանդակություն
Վերջին մի քանի հոդվածներում մենք դիտարկել ենք Excel-ի տողերից նիշերը հեռացնելու տարբեր եղանակներ: Այսօր մենք կուսումնասիրենք օգտագործման ևս մեկ դեպք. ինչպես ջնջել ամեն ինչ որոշակի նիշից առաջ կամ հետո:
Ջնջել տեքստը 2 նիշից առաջ, հետո կամ միջև Find & Փոխարինել
Բազմաթիվ բջիջներում տվյալների մանիպուլյացիաների համար Find and Replace-ը ճիշտ գործիք է: Հատուկ նիշին նախորդող կամ հաջորդող տողի մի մասը հեռացնելու համար պետք է կատարվեն հետևյալ քայլերը.
- Ընտրեք բոլոր բջիջները, որտեղ ցանկանում եք ջնջել տեքստը:
- Սեղմեք Ctrl + H: Գտնել և փոխարինել երկխոսությունը բացելու համար:
- Գտնել ինչ վանդակում մուտքագրեք հետևյալ համակցություններից մեկը.
- Տեքստը վերացնելու համար տրված նիշից առաջ , մուտքագրեք նիշը, որին նախորդում է աստղանիշը (*char):
- Տեքստը որոշակի նիշից հետո հեռացնելու համար մուտքագրեք նիշը, որին հաջորդում է աստղանիշը (char): *).
- Ենթատողը երկու նիշերի միջև ջնջելու համար մուտքագրեք աստղանիշ, որը շրջապատված է 2 նիշով (char*char):
- Թողեք Փոխարինեք դատարկ տուփով:
- Սեղմեք Փոխարինել բոլորը :
Օրինակ, հեռացնելու համար ամեն ինչ ստորակետից հետո ներառյալ ստորակետը, դրեք ստորակետ և աստղանիշ (,*) Գտեք ինչ վանդակում, և դուք կստանաք հետևյալ արդյունքը.
Ենթատողը ստորակետից առաջ ջնջելու համար մուտքագրեք աստղանիշ, ստորակետ,A2-ի 1-ին ստորակետից հետո ամեն ինչ, B2-ի բանաձևը հետևյալն է.
=RemoveText(A3, ", ", 1, TRUE)
A2-ում 1-ին ստորակետից առաջ ամեն ինչ ջնջելու համար, C2-ի բանաձևը հետևյալն է.
=RemoveText(A3, ", ", 1, FALSE)
:
Քանի որ մեր հարմարեցված ֆունկցիան ընդունում է տող` սահմանազատողի համար , մենք 2-րդ արգումենտում դնում ենք ստորակետ և բացատ (", ")` հետագայում առաջատար բացատները կրճատելու դժվարությունից խուսափելու համար:
Մեր հատուկ գործառույթը գեղեցիկ է աշխատում, այնպես չէ՞: Բայց եթե կարծում եք, որ դա համապարփակ լուծումն է, ապա դեռ չեք տեսել հաջորդ օրինակը :)
Ջնջեք ամեն ինչ նախքան, հետո կամ նիշերի միջև
Առանձին նիշերը հեռացնելու ավելի շատ տարբերակներ ստանալու համար կամ տեքստը մի քանի բջիջներից, ըստ համընկնման կամ դիրքի, ավելացրեք մեր Ultimate Suite-ը ձեր Excel-ի գործիքների տուփին:
Այստեղ մենք ավելի մանրամասն կանդրադառնանք Հեռացնել ըստ դիրքի հատկանիշին, որը գտնվում է Ablebits Data ներդիր > Text խումբ > Հեռացնել :
Ստորև մենք կանդրադառնանք երկուսին Ամենատարածված սցենարները:
Հեռացրեք ամեն ինչ որոշակի տեքստից առաջ կամ հետո
Ենթադրենք, ձեր բոլոր սկզբնական տողերը պարունակում են ինչ-որ սովորական բառ կամ տեքստ, և դուք ցանկանում եք ջնջել այն ամենը, ինչ այդ տեքստից առաջ կամ հետո է: Դա անելու համար ընտրեք ձեր աղբյուրի տվյալները, գործարկեք Հեռացնել ըստ դիրքի գործիքը և կազմաձևեք այն, ինչպես ցույց է տրված ստորև.
- Ընտրեք Բոլոր նիշերը տեքստից առաջ<10:> կամ Բոլոր նիշերը տեքստից հետո տարբերակ և հաջորդ վանդակում մուտքագրեք հիմնական տեքստը (կամ նիշը):դրան:
- Կախված նրանից, թե մեծատառերն ու փոքրատառերը պետք է դիտարկվեն որպես տարբեր կամ նույն նիշերը, նշեք կամ հանեք Փոքրատառերի նկատմամբ զգայուն վանդակը:
- Հպեք <9:>Հեռացնել :
Այս օրինակում մենք հեռացնում ենք բոլոր նիշերը, որոնք նախորդում են «սխալ» բառին A2:A8:
<0 բջիջներում:>Եվ ստացեք հենց այն արդյունքը, որը մենք փնտրում ենք.
Հեռացրեք տեքստը երկու նիշերի միջև
Այն իրավիճակում, երբ անհամապատասխան տեղեկատվությունը գտնվում է 2 կոնկրետ նիշերի միջև, ահա թե ինչպես Դուք կարող եք արագ ջնջել այն.
- Ընտրեք Հեռացնել բոլոր ենթատողերը և մուտքագրեք երկու նիշ ներքևի վանդակներում:
- Եթե «միջև» նիշերը նույնպես պետք է հեռացվեն: , նշեք Ներառյալ սահմանազատիչներ վանդակը։
- Սեղմեք Հեռացնել ։
Որպես Օրինակ, մենք ջնջում ենք ամեն ինչ երկու tilde նիշերի միջև (~) և արդյունքում ստանում ենք հիանալի մաքրված տողերը. գործիք, խորհուրդ եմ տալիս ներբեռնել էլ գնահատման տարբերակը այս գրառման վերջում: Շնորհակալություն կարդալու համար և հուսով ենք, որ հաջորդ շաբաթ կտեսնենք ձեզ մեր բլոգում:
Հասանելի ներբեռնումներ
Հեռացրեք առաջին կամ վերջին նիշերը - օրինակներ (.xlsm ֆայլ)
Ultimate Suite - փորձնական տարբերակ (.exe ֆայլ)
և բացատ (*, ) Գտեք ինչվանդակում։Խնդրում ենք, որ մենք փոխարինում ենք ոչ միայն ստորակետը, այլ ստորակետն ու բացատը ՝ առաջատարը կանխելու համար։ բացատներ արդյունքներում: Եթե ձեր տվյալները բաժանված են ստորակետերով առանց բացատների, ապա օգտագործեք աստղանիշ, որին հաջորդում է ստորակետը (*,):
Տեքստը ջնջելու համար երկու ստորակետերի միջև , օգտագործեք աստղանիշ, որը շրջապատված է ստորակետերով (,*,):
Խորհուրդ. Եթե ցանկանում եք անուններն ու հեռախոսահամարները բաժանել ստորակետով, ապա Փոխարինեք դաշտում մուտքագրեք ստորակետ (,):
Հեռացրեք տեքստի մի մասը Flash Fill-ի միջոցով
Excel-ի ժամանակակից տարբերակներում (2013 և ավելի ուշ) կա ևս մեկ հեշտ միջոց՝ վերացնելու տեքստը, որը նախորդում է կամ հաջորդում է որոշակի նիշին՝ Flash Fill ֆունկցիան: Ահա թե ինչպես է այն աշխատում.
- Ձեր տվյալներով առաջին բջիջի կողքին գտնվող բջիջում մուտքագրեք ակնկալվող արդյունքը և սեղմեք Enter:
- Սկսեք մուտքագրել համապատասխան արժեք հաջորդ բջիջում: Երբ Excel-ը զգա օրինակը ձեր մուտքագրած արժեքներում, այն կցուցադրի նախադիտում մնացած բջիջների համար, որոնք հետևում են նույն օրինակին:
- Սեղմեք Enter ստեղնը՝ առաջարկն ընդունելու համար:
Կատարված է:
Հեռացրեք տեքստը բանաձևերի միջոցով
Microsoft Excel-ում տվյալների բազմաթիվ մանիպուլյացիաներ, որոնք կատարվում են ներկառուցված գործառույթների միջոցով, կարող են իրականացվել նաև բանաձևի միջոցով: Ի տարբերություն նախորդ մեթոդների, բանաձևերը որևէ փոփոխություն չեն կատարում սկզբնական տվյալների մեջ և ձեզ ավելի շատ վերահսկողություն են տալիսարդյունքները:
Ինչպես հեռացնել ամեն ինչ կոնկրետ նիշից հետո
Տեքստը որոշակի նիշից հետո ջնջելու համար ընդհանուր բանաձևը հետևյալն է.
LEFT( բջիջ , SEARCH (" char ", բջիջ ) -1)Այստեղ մենք օգտագործում ենք SEARCH ֆունկցիան, որպեսզի ստանանք նիշի դիրքը և փոխանցենք այն LEFT ֆունկցիային, ուստի այն հանում է: տողի սկզբից համապատասխան թվով նիշ: SEARCH-ի կողմից վերադարձված թվից հանվում է մեկ նիշ՝ սահմանազատիչը արդյունքներից բացառելու համար:
Օրինակ, ստորակետից հետո տողի մի մասը հեռացնելու համար մուտքագրում եք ստորև բերված բանաձևը B2-ում և այն ներքև քաշում B7-ի միջով: :
=LEFT(A2, SEARCH(",", A2) -1)
Ինչպես հեռացնել ամեն ինչ կոնկրետ նիշից առաջ
Տեքստային տողի մի մասը որոշակի նիշից առաջ ջնջելու համար, ընդհանուր բանաձևը հետևյալն է.
RIGHT( բջիջ , LEN( բջիջ ) - SEARCH(" char ", բջիջ ))Այստեղ մենք կրկին հաշվարկում ենք թիրախային նիշի դիրքը SEARCH-ի օգնությամբ, այն հանում ենք LEN-ի վերադարձած տողի ընդհանուր երկարությունից և տարբերությունը փոխանցում RIGHT ֆունկցիային, ուստի այն հանում է այդքան շատ նիշեր վերջից: տող:
Օրինակ, ստորակետից առաջ տեքստը հեռացնելու համար բանաձևը հետևյալն է.
=RIGHT(A2, LEN(A2) - SEARCH(",", A2))
Մեր դեպքում ստորակետին հաջորդում է բացատ նիշը: Արդյունքներում առաջատար բացատներից խուսափելու համար մենք հիմնական բանաձևը փաթաթում ենք TRIM ֆունկցիայի մեջ.
=TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))
Նշումներ՝
- Երկուսն էլՎերոհիշյալ օրինակներից ենթադրվում է, որ սկզբնական տողում կա սահմանազատողի միայն մեկ օրինակ : Եթե կան մի քանի դեպքեր, տեքստը կհեռացվի առաջին դեպքից առաջ/հետո :
- SEARCH ֆունկցիան չզգայուն է մեծատառերի նկատմամբ , ինչը նշանակում է, որ տարբերություն չկա փոքրատառ և մեծատառ նիշեր: Եթե ձեր կոնկրետ նիշը տառ է և ցանկանում եք տարբերակել տառի մեծատառը, ապա SEARCH-ի փոխարեն օգտագործեք մեծատառերի նկատմամբ զգայուն FIND ֆունկցիան:
Ինչպես ջնջել տեքստը N-րդ դեպքից հետո: նիշի
Այն իրավիճակում, երբ աղբյուրի տողը պարունակում է սահմանազատողի մի քանի օրինակներ, կարող է անհրաժեշտություն առաջանալ հեռացնել տեքստը որոշակի օրինակից հետո: Դրա համար օգտագործեք հետևյալ բանաձևը՝
LEFT( բջիջ , FIND("#", SUBSTITUTE( բջիջ , " char ", "#" , n )) -1)Որտեղ n նիշի հայտնվելն է, որից հետո պետք է հեռացնել տեքստը:
Այս բանաձևի ներքին տրամաբանությունը պահանջում է օգտագործել որոշ նիշ որը չկա որևէ տեղ սկզբնաղբյուրի տվյալների մեջ, մեր դեպքում հեշ նշանը (#): Եթե այս նիշը հայտնվում է ձեր տվյալների հավաքածուում, ապա օգտագործեք այլ բան «#»-ի փոխարեն:
Օրինակ, A2-ի 2-րդ ստորակետից հետո ամեն ինչ հեռացնելու համար (և հենց ստորակետը), բանաձևը հետևյալն է>
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Ինչպես է աշխատում այս բանաձևը.
Բանաձևի հիմնական մասը FIND ֆունկցիան է, որը հաշվարկում է n-րդի դիրքըսահմանազատող (մեր դեպքում ստորակետ): Ահա թե ինչպես.
Ա2-ի 2-րդ ստորակետը փոխարինում ենք հեշ-ի նշանով (կամ որևէ այլ նշանով, որը գոյություն չունի ձեր տվյալների մեջ) SUBSTITUTE-ի օգնությամբ.
SUBSTITUTE(A2, ",", "#", 2)
Ստացված տողը գնում է FIND-ի 2-րդ արգումենտին, ուստի այն գտնում է «#»-ի դիրքը այդ տողի մեջ.
FIND("#", "Emma, Design# (102) 123-4568")
FIND-ը մեզ ասում է, որ «#»-ը 13-րդ նիշն է: լարայինում։ Դրան նախորդող նիշերի քանակը իմանալու համար պարզապես հանեք 1-ը, և արդյունքում կստանաք 12.
FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1
Այս թիվը ուղղակիորեն գնում է num_chars արգումենտին: LEFT-ից խնդրում են քաշել առաջին 12 նիշերը A2-ից.
=LEFT(A2, 12)
Արդեն վերջ:
Ինչպե՞ս ջնջել տեքստը մինչև նիշերի N-րդ հայտնվելը
Որոշակի նիշից առաջ ենթատողը հեռացնելու ընդհանուր բանաձևը հետևյալն է. ), LEN( բջիջ ) - FIND("#", SUBSTITUTE( բջիջ , " char ", "#", n )) -1)
Օրինակ, A2-ում 2-րդ ստորակետից առաջ տեքստը հեռացնելու համար բանաձևը հետևյալն է.
=RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Առաջատար տարածությունը վերացնելու համար մենք կրկին օգտագործում ենք TRIM գործում է որպես փաթաթան՝
=TRIM(RIGHT(SUBSTITUTE(A2, ",", "#", 2), LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))))
Ինչպես է աշխատում այս բանաձևը.
Ամփոփելով՝ մենք պարզում ենք քանի նիշ կա n-րդ սահմանազատիչից հետո և աջից հանիր համապատասխան երկարության ենթատող: Ստորև բերված է բանաձևի տարանջատում.
Նախ, մենք A2-ի 2-րդ ստորակետը փոխարինում ենք հեշով:խորհրդանիշ՝
SUBSTITUTE(A2, ",", "#", 2)
Ստացված տողը գնում է RIGHT-ի text արգումենտին.
RIGHT("Emma, Design# (102) 123-4568", …
Հաջորդը, մենք պետք է սահմանել, թե քանի նիշ պետք է հանել տողի վերջից: Դրա համար մենք գտնում ենք հեշ նշանի դիրքը վերը նշված տողում (որը 13 է).
FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Եվ այն հանում ենք տողի ընդհանուր երկարությունից (որը հավասար է 28-ի):
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Տարբերությունը (15) գնում է դեպի RIGHT-ի երկրորդ արգումենտը, որը հանձնարարում է նրան առաջին արգումենտի տողից քաշել վերջին 15 նիշերը.
RIGHT("Emma, Design# (102) 123-4568", 15)
Արդյունքը «(102) 123-4568» ենթատող է, որը շատ մոտ է ցանկալի արդյունքին, բացառությամբ առաջատար տարածության: Այսպիսով, մենք օգտագործում ենք TRIM ֆունկցիան դրանից ազատվելու համար:
Ինչպես հեռացնել տեքստը նիշի վերջին հայտնվելուց հետո
Այն դեպքում, երբ ձեր արժեքներն առանձնացված են փոփոխական թվով սահմանազատիչներով, դուք կարող է ցանկանալ հեռացնել ամեն ինչ այդ սահմանազատիչի վերջին օրինակից հետո: Դա կարելի է անել հետևյալ բանաձևով.
LEFT( բջիջ , FIND("#", SUBSTITUTE( բջիջ , " char ", "# ", LEN( բջիջ ) - LEN(SUBSTITUTE( բջիջ , " char ", "")))) -1)Ենթադրենք սյունակ A պարունակում է տարբեր տեղեկություններ աշխատողների մասին, սակայն վերջին ստորակետից հետո արժեքը միշտ հեռախոսահամար է: Ձեր նպատակն է հեռացնել հեռախոսահամարները և պահպանել մնացած բոլոր մանրամասները:
Նպատակին հասնելու համար կարող եք հեռացնել տեքստը A2-ի վերջին ստորակետից հետո այս միջոցով:բանաձև՝
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)
Պատճենեք բանաձևը սյունակում և կստանաք հետևյալ արդյունքը.
Ինչպես է սա Բանաձևն աշխատում է.
Բանաձևի էությունը կայանում է նրանում, որ մենք որոշում ենք վերջին սահմանազատողի (ստորակետի) դիրքը տողի մեջ և ենթատողը ձգում ենք ձախից դեպի սահմանազատիչ: Սահմանազատողի դիրքը ստանալը ամենադժվարն է, և ահա թե ինչպես ենք մենք դա անում.
Նախ, մենք պարզում ենք, թե քանի ստորակետ կա սկզբնական տողում: Դրա համար մենք յուրաքանչյուր ստորակետը փոխարինում ենք ոչինչով ("") և ստացված տողը մատուցում LEN ֆունկցիային.
LEN(SUBSTITUTE(A2, ",",""))
A2-ի համար արդյունքը 35 է, ինչը նիշերի թիվն է: A2-ով առանց ստորակետերի:
Վերոնշյալ թիվը հանեք տողի ընդհանուր երկարությունից (38 նիշ):
LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))
… և կստանաք 3, որը ընդհանուր թիվն է: A2 ստորակետերի (և նաև վերջին ստորակետի հերթական համարը):
Այնուհետև դուք օգտագործում եք FIND և SUBSTITUTE ֆունկցիաների արդեն ծանոթ համակցությունը` տողի վերջին ստորակետի դիրքը ստանալու համար: Օրինակի համարը (մեր դեպքում 3-րդ ստորակետը) տրվում է վերը նշված LEN SUBSTITUTE բանաձևով.
FIND("#", SUBSTITUTE(A2, ",", "#", 3))
Երևում է, որ 3-րդ ստորակետը A2-ի 23-րդ նիշն է, ինչը նշանակում է, որ մեզ անհրաժեշտ է. հանել դրան նախորդող 22 նիշ: Այսպիսով, մենք դրեցինք վերը նշված բանաձևը մինուս 1-ի num_chars LEFT արգումենտում.
LEFT(A2, 23-1)
Ինչպես հեռացնել տեքստը մինչև նիշի վերջին հայտնվելը
Ջնջելու համարամեն ինչ մինչև կոնկրետ նիշի վերջին օրինակը, ընդհանուր բանաձևը հետևյալն է.
RIGHT( բջիջ , LEN( բջիջ ) - FIND("#", SUBSTITUTE( բջիջ , " char ", "#", LEN( բջջ ) - LEN(ՓՈԽՆԱՐԿՈՒՄ( բջիջ , " char ", "")))))Մեր օրինակելի աղյուսակում, վերջին ստորակետից առաջ տեքստը ջնջելու համար բանաձևը ստանում է հետևյալ ձևը. Տեղադրեք այն TRIM ֆունկցիայի մեջ՝ առաջատար տարածությունները վերացնելու համար.
=TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))
Ինչպես է աշխատում այս բանաձևը՝
Ամփոփելով, մենք ստանում ենք վերջին ստորակետի դիրքը, ինչպես բացատրվել է նախորդ օրինակում և այն հանում ենք տողի ընդհանուր երկարությունից.
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))
Արդյունքում մենք ստանում ենք թիվը. նիշերը վերջին ստորակետից հետո և փոխանցեք այն RIGHT ֆունկցիային, այնպես որ այն բերում է այդքան նիշ տողի վերջից:
Պատվիրված ֆունկցիա՝ նիշի երկու կողմերում տեքստը հեռացնելու համար
Ինչպես դուք տեսել եք վերը նշված օրինակներում, դուք կարող եք լուծել գրեթե ցանկացած օգտագործման դեպք՝ օգտագործելով Excel-ի բնիկ f միացումներ տարբեր համակցություններով: Խնդիրն այն է, որ դուք պետք է հիշեք մի քանի բարդ բանաձևեր: Հմմ, իսկ եթե մենք գրենք մեր սեփական գործառույթը բոլոր սցենարները լուսաբանելու համար: Լավ գաղափար է հնչում: Այսպիսով, ձեր աշխատանքային գրքում ավելացրեք հետևյալ VBA կոդը (Excel-ում VBA-ի տեղադրման մանրամասն քայլերն այստեղ են):
Function RemoveText(str As String, Delimiter As String, Desition As Integer, is_after AsԲուլյան ) Dim delimiter_num, start_num, delimiter_len Որպես ամբողջ թիվ Dim str_result Որպես String delimiter_num = 0 start_num = 1 str_result = "" delimiter_len = Len(delimiter) For i = 1 Դեպի առաջանալ delimiter_num = InStrpareT, IfT: < delimiter_num Այնուհետեւ start_num = delimiter_num + delimiter_len Ավարտ, եթե հաջորդը i Եթե 0 < delimiter_num Այնուհետեւ, եթե True = is_after Այնուհետեւ str_result = Mid(str, 1, start_num - delimiter_len - 1) Else str_result = Mid(str, start_num) Վերջ, եթե վերջ Եթե RemoveText = str_result Ավարտ գործառույթըՄեր ֆունկցիան կոչվում է RemoveT և ունի հետևյալ շարահյուսությունը.
RemoveText(տող, սահմանազատող, առաջացում, is_after)Որտեղ:
String - բնօրինակ տեքստի տողն է: Կարող է ներկայացվել բջիջի հղումով:
Delimiter - նիշը, որից առաջ/հետո պետք է հեռացնել տեքստը:
Currence - օրինակը սահմանազատող:
Is_after - Բուլյան արժեք, որը ցույց է տալիս, թե որ կողմում է սահմանազատիչը հեռացնել տեքստը: Կարող է լինել մեկ նիշ կամ նիշերի հաջորդականություն:
- ՃԻՇՏ - ջնջել ամեն ինչ սահմանազատիչից հետո (ներառյալ բուն սահմանազատիչը):
- FALSE - ջնջել ամեն ինչ նախքան սահմանազատիչը (ներառյալ ինքնին սահմանազատող):
Հենց որ ֆունկցիայի կոդը տեղադրվի ձեր աշխատանքային գրքում, դուք կարող եք հեռացնել ենթատողերը բջիջներից՝ օգտագործելով կոմպակտ և էլեգանտ բանաձևեր:
Օրինակ՝ ջնջելու համար