Мазмұны
Соңғы бірнеше мақалада біз Excel бағдарламасындағы жолдардан таңбаларды жоюдың әртүрлі жолдарын қарастырдық. Бүгін біз тағы бір қолдану жағдайын зерттейміз - белгілі бір таңбаға дейін немесе одан кейін барлығын қалай жоюға болады.
Табу & Ауыстыру
Бірнеше ұяшықтардағы деректермен жұмыс істеу үшін «Табу және ауыстыру» дұрыс құрал болып табылады. Белгілі бір таңбаның алдындағы немесе одан кейінгі жолдың бөлігін жою үшін мыналар орындалатын қадамдар:
- Мәтінді жойғыңыз келетін барлық ұяшықтарды таңдаңыз.
- Ctrl + H пернелерін басыңыз. Табу және ауыстыру диалогтық терезесін ашу үшін.
- Нені табу өрісіне келесі комбинациялардың бірін енгізіңіз:
- Мәтінді жою үшін берілген таңбаның алдында жұлдызша (*char) алдында тұрған таңбаны теріңіз.
- Мәтінді жою үшін белгілі бір таңбадан кейін жұлдызша (char) бар таңбаны теріңіз. *).
- екі таңба арасындағы ішкі жолды жою үшін, 2 таңбамен қоршалған жұлдызшаны теріңіз (char*char).
- Қолдандырыңыз. Ауыстыру ұяшығы бос.
- Барлығын ауыстыру түймесін басыңыз.
Мысалы, жою үшін үтірден кейін барлығын, соның ішінде үтірдің өзін, Нені табу ұяшығына үтір мен жұлдызшаны (,*) қойыңыз, сонда сіз келесі нәтиже аласыз:
Үтір алдындағы ішкі жолды жою үшін жұлдызшаны теріңіз, үтір,A2-де 1-ші үтірден кейін барлығы, В2-дегі формула:
=RemoveText(A3, ", ", 1, TRUE)
A2-де 1-ші үтірден бұрын барлығын жою үшін, C2-дегі формула:
=RemoveText(A3, ", ", 1, FALSE)
Біздің теңшелетін функциямыз бөлгіш жолын қабылдайтындықтан, кейінгі бос орындарды қию мәселесін болдырмау үшін 2-ші аргументке үтір мен бос орын (", ") қоямыз.
Біздің теңшелетін функция әдемі жұмыс істейді, солай емес пе? Бірақ егер бұл жан-жақты шешім деп ойласаңыз, келесі мысалды әлі көрген жоқсыз :)
Таңбаларға дейінгі, кейін немесе олардың арасындағы барлығын жою
Жеке таңбаларды жоюдың қосымша опцияларын алу үшін немесе бірнеше ұяшықтағы мәтінді сәйкестік немесе орын бойынша Excel құралдар жәшігіне Ultimate Suite қосыңыз.
Осы жерде біз <бетінде орналасқан Орны бойынша жою мүмкіндігін егжей-тегжейлі қарастырамыз. 9>Ablebits Data қойындысы > Мәтін тобы > Жою .
Төменде біз екеуін қарастырамыз ең жиі кездесетін сценарийлер.
Белгілі бір мәтінге дейін немесе одан кейін барлығын жою
Барлық бастапқы жолдарыңызда қандай да бір жалпы сөз немесе мәтін бар делік және сіз осы мәтінге дейін немесе кейін бәрін жойғыңыз келеді делік. Оны орындау үшін бастапқы деректерді таңдаңыз, Орны бойынша жою құралын іске қосыңыз және оны төменде көрсетілгендей конфигурациялаңыз:
- Мәтін алдындағы барлық таңбаларды таңдаңыз немесе Мәтіннен кейінгі барлық таңбалар опциясын таңдап, келесі жолаққа негізгі мәтінді (немесе таңбаны) теріңіз.оған.
- Бас әріп пен кіші әріптер әртүрлі немесе бірдей таңбалар ретінде қарастырылуына байланысты Регізгі әріптерді ескеретін ұяшығына белгі қойыңыз немесе құсбелгіні алып тастаңыз.
- <9 басыңыз>Жою .
Бұл мысалда біз A2:A8:
<0 ұяшықтарындағы "қате" сөзінің алдындағы барлық таңбаларды алып тастаймыз>Және дәл біз іздеген нәтижеге қол жеткізіңіз:
Екі таңба арасындағы мәтінді жою
Қауіпсіз ақпарат 2 нақты таңбаның арасында болған жағдайда, міне оны жылдам жоюға болады:
- Барлық ішкі жолдарды жою пәрменін таңдап, төмендегі жолақтарға екі таңбаны теріңіз.
- Егер "арадағы" таңбаларды да алып тастау керек болса. , Бөлгіштерді қосқанда құсбелгісін қойыңыз.
- Жою түймесін басыңыз.
Қандай Мысалы, біз екі тильде таңбасының (~) арасындағы барлығын жойып, нәтижесінде тамаша тазартылған жолдарды аламыз:
Осы көп функциялы функцияның басқа пайдалы мүмкіндіктерін қолданып көру үшін құралын жүктеп алуға шақырамын осы жазбаның соңындағы бағалау нұсқасы. Оқығаныңызға рахмет және келесі аптада блогымызда көреміз деп үміттенеміз!
Қолжетімді жүктеп алулар
Бірінші немесе соңғы таңбаларды жою - мысалдар (.xlsm файлы)
Ultimate Suite - сынақ нұсқасы (.exe файлы)
Нені табужолағында бос орын (*, ) қойыңыз.Бастауыштың алдын алу үшін тек үтірді ғана емес, үтір мен бос орынды ауыстырып жатқанымызды ескеріңіз. нәтижелердегі бос орындар. Егер деректер бос орынсыз үтірмен бөлінген болса, одан кейін үтір (*,) қойылатын жұлдызшаны пайдаланыңыз.
Мәтінді жою үшін екі үтір , үтірмен (,*,) қоршалған жұлдызшаны пайдаланыңыз.
Кеңес. Аттар мен телефон нөмірлерінің үтірмен бөлінгенін қаласаңыз, Ауыстыру өрісіне үтірді (,) енгізіңіз.
Flash Fill көмегімен мәтіннің бір бөлігін жою
Excel бағдарламасының заманауи нұсқаларында (2013 және одан кейінгі) белгілі бір таңбаның алдындағы немесе одан кейінгі мәтінді жоюдың тағы бір оңай жолы бар - Flash Fill мүмкіндігі. Ол былай жұмыс істейді:
- Деректері бар бірінші ұяшықтың жанындағы ұяшықта күтілетін нәтижені теріп, Enter пернесін басыңыз.
- Келесі ұяшыққа сәйкес мәнді теруді бастаңыз. Excel сіз енгізіп жатқан мәндердегі үлгіні сезінгеннен кейін, сол үлгі бойынша қалған ұяшықтар үшін алдын ала қарауды көрсетеді.
- Ұсынысты қабылдау үшін Enter пернесін басыңыз.
Дайын!
Формулаларды пайдаланып мәтінді жою
Microsoft Excel бағдарламасында кірістірілген мүмкіндіктерді пайдалану арқылы орындалатын көптеген деректер манипуляцияларын формуламен де орындауға болады. Алдыңғы әдістерден айырмашылығы, формулалар бастапқы деректерге ешқандай өзгерістер енгізбейді және сізге көбірек бақылау бередінәтижелер.
Нақты таңбадан кейін барлығын жою жолы
Белгілі бір таңбадан кейінгі мәтінді жою үшін жалпы формула:
СОЛ( ұяшық , ІЗДЕУ (" char ", ұяшық ) -1)Мұнда біз SEARCH функциясын таңбаның орнын алу және LEFT функциясына беру үшін қолданамыз, сондықтан ол шығарып алады жолдың басынан таңбалардың сәйкес саны. Нәтижелерден бөлгішті алып тастау үшін SEARCH қайтарған саннан бір таңба шегеріледі.
Мысалы, үтірден кейінгі жолдың бір бөлігін алып тастау үшін төмендегі формуланы B2 ішіне енгізіп, оны B7 арқылы төмен сүйреңіз. :
=LEFT(A2, SEARCH(",", A2) -1)
Нақты таңба алдында барлығын жою жолы
Белгілі бір таңба алдындағы мәтін жолының бір бөлігін жою үшін, жалпы формула:
ОҢ( ұяшық , LEN( ұяшық ) - SEARCH(" чар ", ұяшық ))Мұнда біз SEARCH көмегімен мақсатты таңбаның орнын тағы да есептейміз, оны LEN қайтарған жолдың жалпы ұзындығынан шегереміз және айырмашылықты ОҢҒА функциясына береміз, сондықтан ол көптеген таңбаларды соңынан тартады. жол.
Мысалы, үтір алдындағы мәтінді алып тастау үшін формула:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2))
Біздің жағдайда үтірден кейін бос орын белгісі қойылады. Нәтижелерде алдыңғы бос орындарды болдырмау үшін біз негізгі формуланы TRIM функциясына орап аламыз:
=TRIM(RIGHT(A2, LEN(A2) - SEARCH(",", A2)))
Ескертулер:
- Екеуі дежоғарыдағы мысалдардың ішінде бастапқы жолда бөлгіштің тек бір данасы бар деп болжайды. Бірнеше рет қайталанатын болса, мәтін бірінші данаға дейін/кейін жойылады.
- ІЗДЕУ функциясы регистрді ескермейді , яғни оның арасында ешқандай айырмашылық жоқ. кіші және бас әріптер. Егер сіздің нақты таңбаңыз әріп болса және әріп регистрін ажыратқыңыз келсе, ІЗДЕУ орнына регистрді ескеретін ТАБУ функциясын пайдаланыңыз.
N-ші рет пайда болғаннан кейін мәтінді қалай жоюға болады таңбаның
Бастапқы жолда бөлгіштің бірнеше даналары болған жағдайда, белгілі бір даннан кейін мәтінді жою қажет болуы мүмкін. Ол үшін келесі формуланы пайдаланыңыз:
LEFT( ұяшық , FIND("#", SUBSTITUTE( ұяшық , " чар ", "#" , n )) -1)Мұндағы n - мәтінді алып тастайтын таңбаның пайда болуы.
Бұл формуланың ішкі логикасы кейбір таңбаны пайдалануды талап етеді. бұл бастапқы деректерде еш жерде жоқ, біздің жағдайда хэш таңбасы (#). Егер бұл таңба деректер жинағында орын алса, "#" орнына басқасын пайдаланыңыз.
Мысалы, A2 файлындағы 2-ші үтірден кейін (және үтірдің өзін) барлығын жою үшін формула:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)
Бұл формула қалай жұмыс істейді:
Формуланың негізгі бөлігі - табу функциясын есептейтін FIND n-ші орынбөлгіш (біздің жағдайда үтір). Мынадай:
А2 пішіміндегі 2-ші үтірді SUBSTITUTE көмегімен хэш белгісімен (немесе деректеріңізде жоқ кез келген басқа таңбамен) ауыстырамыз:
SUBSTITUTE(A2, ",", "#", 2)
Нәтижедегі жол FIND функциясының 2-аргументіне өтеді, сондықтан ол осы жолда "#" орнын табады:
RIGHT("Emma, Design# (102) 123-4568", 15)
FIND бізге "#" 13-таңба екенін айтады жіпте. Оның алдындағы таңбалар санын білу үшін жай ғана 1-ді алып тастаңыз, нәтижесінде 12 шығады:
FIND("#", SUBSTITUTE(A2, ",", "#", 2)) - 1
Бұл сан тікелей таңбалар_саны аргументіне өтеді. A2-ден алғашқы 12 таңбаны алуды сұрайтын LEFT:
=LEFT(A2, 12)
Болды!
Таңбаның N-ші қайталануына дейін мәтінді қалай жоюға болады
Белгілі бір таңба алдындағы ішкі жолды жоюдың жалпы формуласы:
ОҢ(ОРЫНДЫҚ( ұяшық , " char ", "#", n ), LEN( ұяшық ) - ТАБУ("#", SUBSTITUTE( ұяшық , " чар ", "#", 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("Emma, Design# (102) 123-4568", …
Келесі, бізге қажет жолдың соңынан қанша таңба алу керектігін анықтаңыз. Ол үшін жоғарыдағы жолдағы хэш символының орнын табамыз (ол 13):
FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Және оны жолдың жалпы ұзындығынан (28-ге тең) шегереміз:
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", 2))
Айырмашылық (15) бірінші аргументтегі жолдан соңғы 15 таңбаны шығаруға нұсқау беретін RIGHT екінші аргументіне өтеді:
RIGHT("Emma, Design# (102) 123-4568", 15)
Шығару " (102) 123-4568" ішкі жолы болып табылады, ол қажетті нәтижеге өте жақын, алдыңғы бос орыннан басқа. Сонымен, біз одан құтылу үшін TRIM функциясын қолданамыз.
Таңбаның соңғы пайда болуынан кейінгі мәтінді қалай жоюға болады
Мәндеріңіз айнымалы бөлгіштер санымен бөлінген жағдайда, сіз сол бөлгіштің соңғы данасы кейін барлығын жоюды қалауы мүмкін. Мұны келесі формуламен жасауға болады:
LEFT( ұяшық , FIND("#", SUBSTITUTE( ұяшық , " char ", "# ", LEN( ұяшық ) - LEN(SUBSTITUTE( ұяшық , " char ", "")))) -1)А бағаны делік қызметкерлер туралы әртүрлі ақпаратты қамтиды, бірақ соңғы үтірден кейінгі мән әрқашан телефон нөмірі болып табылады. Сіздің мақсатыңыз - телефон нөмірлерін жою және барлық басқа мәліметтерді сақтау.
Мақсатқа жету үшін A2 пішіміндегі соңғы үтірден кейінгі мәтінді осы арқылы жоюға болады.формула:
=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))) -1)
Формуланы бағанның төменгі жағына көшіріңіз, сонда мына нәтиже шығады:
Бұл қалай формула жұмыс істейді:
Формуланың мәні мынада: біз жолдағы соңғы бөлгіштің (үтір) орнын анықтаймыз және ішкі жолды солдан жоғары бөлгішке тартамыз. Бөлгіштің орнын алу - ең қиын бөлік және біз оны қалай өңдейміз:
Біріншіден, бастапқы жолда қанша үтір бар екенін анықтаймыз. Ол үшін әрбір үтірді ештеңемен («») ауыстырамыз және алынған жолды LEN функциясына қызмет етеміз:
LEN(SUBSTITUTE(A2, ",",""))
A2 үшін нәтиже 35, яғни таңбалар саны. А2 пішімінде үтірсіз.
Жоғарыдағы санды жолдың жалпы ұзындығынан (38 таңба) шегеріңіз:
LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))
… және сіз 3 аласыз, бұл жалпы сан. A2 пішіміндегі үтірлердің саны (сонымен қатар соңғы үтірдің реттік нөмірі).
Кейін, жолдағы соңғы үтірдің орнын алу үшін FIND және SUBSTITUTE функцияларының бұрыннан таныс комбинациясын пайдаланасыз. Дана нөмірі (біздің жағдайда 3-ші үтір) жоғарыда аталған LEN SUBSTITUTE формуласымен беріледі:
FIND("#", SUBSTITUTE(A2, ",", "#", 3))
3-ші үтір A2 форматындағы 23-ші таңба болып көрінеді, яғни бізге қажет алдындағы 22 таңбаны шығару үшін. Сонымен, жоғарыдағы минус 1 формуласын LEFT-тің таңбалар_саны аргументіне қоямыз:
LEFT(A2, 23-1)
Таңбаның соңғы пайда болуына дейін мәтінді қалай жоюға болады
Жою үшіннақты таңбаның соңғы данасына дейін барлығы, жалпы формуласы:
ОҢ( ұяшық , LEN( ұяшық ) - ТАБУ("#", SUBSTITUTE( ) ұяшық , " char ", "#", LEN( ұяшық ) - LEN(SUBSTITUTE( ұяшық , " char ", "")))))Біздің үлгі кестеде соңғы үтір алдындағы мәтінді жою үшін формула келесі пішінді алады:
=RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",","")))))
Соңғы нүкте ретінде біз алдыңғы бос орындарды жою үшін оны TRIM функциясына кірістіріңіз:
=TRIM(RIGHT(A2, LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))))
Бұл формула қалай жұмыс істейді:
Қорытындылай келе, алдыңғы мысалда түсіндірілгендей соңғы үтірдің орнын аламыз және оны жолдың жалпы ұзындығынан шегереміз:
LEN(A2) - FIND("#", SUBSTITUTE(A2, ",", "#", LEN(A2) - LEN(SUBSTITUTE(A2, ",",""))))
Нәтижесінде біз санды аламыз соңғы үтірден кейінгі таңбаларды қойып, оны ОҢ жақ функциясына өткізіңіз, осылайша ол жолдың соңынан сонша көп таңбаны әкеледі.
Таңбаның екі жағындағы мәтінді жоюға арналған теңшелетін функция
Сол сияқты жоғарыдағы мысалдарда көрдіңіз, Excel бағдарламасының жергілікті f көмегімен кез келген дерлік пайдалану жағдайын шеше аласыз әртүрлі комбинациялардағы функциялар. Мәселе мынада, сіз бірнеше күрделі формулаларды есте сақтауыңыз керек. Хмм, егер біз барлық сценарийлерді қамту үшін өз функциямызды жазсақ ше? Жақсы идея сияқты. Сонымен, жұмыс кітабыңызға келесі VBA кодын қосыңыз (Excel бағдарламасына VBA кірістіру үшін егжей-тегжейлі қадамдар мына жерде):
Функция RemoveText(str As String , delimiter As String , insideence As Integer , is_after As As).Логикалық ) Көңілді бөлгіш_сан, бастау_саны, бөлгіш_лен Бүтін сан Көңілді str_нәтиже ретінде Жол бөлгіш_саны = 0 бастау_саны = 1 стр_нәтиже = "" бөлгіш_лен = Лен(бөлгіш) үшін i = 1 пайда болу үшін delimiter_num, InStr. < delimiter_num Содан кейін start_num = delimiter_num + delimiter_len End If Next i Егер 0 < delimiter_num Содан кейін True болса = is_after Содан кейін str_result = Mid(str, 1, start_num - delimiter_len - 1) Else str_result = Mid(str, start_num) End If End If RemoveText = str_result End функциясыБіздің функциямыз RemoveText деп аталады. және оның келесі синтаксисі бар:
Мәтінді алып тастаңыз(жол, бөлгіш, пайда болу,_кейін)Мұндағы:
Жол - бастапқы мәтін жолы. Ұяшық сілтемесі арқылы ұсынылуы мүмкін.
Бөлгіш - мәтінді жоюға дейінгі/соңғы таңба.
Кездесу - данасы бөлгіш.
Is_after - бөлгіштің қай жағында мәтінді алып тастау керектігін көрсететін логикалық мән. Жалғыз таңба немесе таңбалар тізбегі болуы мүмкін.
- TRUE - бөлгіштен кейінгі (соның ішінде бөлгіштің өзін) барлығын жою.
- ЖАЛҒАН - бөлгішке дейін (соның ішінде шектегіштің өзі).
Функция коды жұмыс кітабына енгізілгеннен кейін, шағын және талғампаз формулаларды пайдаланып ұяшықтардан ішкі жолдарды жоюға болады.
Мысалы, өшіру үшін