Sadržaj
U posljednjih nekoliko članaka raspravljali smo o različitim funkcijama teksta - onima koje se koriste za manipulaciju tekstualnim nizovima. Danas je naš fokus na funkciji RIGHT, koja je dizajnirana da vrati određeni broj znakova s krajnje desne strane niza. Kao i druge funkcije Excel Text, RIGHT je vrlo jednostavan i jasan, ali ipak ima nekoliko neočiglednih upotreba koje bi se mogle pokazati od pomoći u vašem radu.
Sintaksa funkcije Excel RIGHT
Funkcija DESNO u Excelu vraća određeni broj znakova s kraja tekstualnog niza.
Sintaksa funkcije RIGHT je sljedeća:
DESNO(tekst, [broj_znakova])Gdje :
- Text (obavezno) - tekstualni niz iz kojeg želite izdvojiti znakove.
- Broj_znakova (opcionalno) - broj znakova za izdvajanje, počevši od krajnjeg desnog znaka.
- Ako je num_chars izostavljen, vraća se 1 posljednji znak niza (podrazumevano).
- Ako je num_chars veći od ukupnog broja znakova u nizu, vraćaju se svi znakovi.
- Ako je num_chars negativan broj, desna formula vraća #VRIJEDNOST! greška.
Na primjer, da biste izdvojili posljednja 3 znaka iz niza u ćeliji A2, koristite ovu formulu:
=RIGHT(A2, 3)
Rezultat bi mogao izgledati otprilike ovako:
Važna napomena! Excel funkcija DESNO uvijek vraća tekststring , čak i ako je originalna vrijednost broj. Da biste prisilili desnu formulu da ispiše broj, koristite je u kombinaciji s funkcijom VALUE kao što je prikazano u ovom primjeru.
Kako koristiti funkciju DESNO u Excelu - primjeri formule
U stvarnom životu radnim listovima, funkcija Excel DESNO se rijetko koristi samostalno. U većini slučajeva ćete ga koristiti zajedno s drugim Excel funkcijama kao dio složenijih formula.
Kako dobiti podniz koji dolazi nakon određenog znaka
U slučaju da želite izdvojiti podniz koji slijedi određeni znak, koristite funkciju SEARCH ili FIND da odredite poziciju tog znaka, oduzmite poziciju od ukupne dužine niza koju vraća funkcija LEN i povucite toliko znakova s krajnje desne strane originalnog niza.
DESNO( string , LEN( string ) - SEARCH( znak , niz ))Recimo, ćelija A2 sadrži ime i prezime odvojene razmakom, a vi želite da prezime povučete u drugu ćeliju. Samo uzmite generičku formulu iznad i stavite A2 na mjesto string , a " " (razmak) u tempu znaka:
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Formula će dati sljedeći rezultat:
Na sličan način, možete dobiti podniz koji slijedi bilo koji drugi znak, npr. zarez, tačka-zarez, crtica, itd. Na primjer, da biste izdvojili podniz koji dolazi nakon crtice,koristite ovu formulu:
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
Rezultat će izgledati slično ovome:
Kako izdvojiti podniz nakon posljednjeg pojavljivanja graničnika
Kada ako se bavite složenim nizovima koji sadrže nekoliko pojavljivanja istog graničnika, možda ćete često morati da preuzmete tekst desno od posljednjeg pojavljivanja graničnika. Da biste stvari lakše razumjeli, pogledajte sljedeće izvorne podatke i željeni rezultat:
Kao što možete vidjeti na slici iznad, kolona A sadrži listu grešaka. Vaš cilj je da izvučete opis greške koji dolazi iza zadnje dvotačke u svakom nizu. Dodatna komplikacija je da originalni nizovi mogu sadržavati različit broj instanci graničnika, npr. A3 sadrži 3 dvotočke dok A5 samo jednu.
Ključ za pronalaženje rješenja je određivanje položaja posljednjeg graničnika u izvornom nizu (posljednje pojavljivanje dvotočke u ovom primjeru). Da biste to učinili, morat ćete upotrijebiti nekoliko različitih funkcija:
- Dobijte broj graničnika u originalnom nizu. To je jednostavan dio:
- Prvo, izračunavate ukupnu dužinu niza koristeći LEN funkciju: LEN(A2)
- Drugo, izračunavate dužinu niza bez graničnika koristeći SUBSTITUTE funkcija koja zamjenjuje sva pojavljivanja dvotočke ničim: LEN(SUBSTITUTE(A2,":",""))
- Konačno, oduzimate dužinu originalnog nizabez graničnika od ukupne dužine niza: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Da biste bili sigurni da formula radi ispravno, možete je unijeti u odvojite ćeliju, a rezultat će biti 2, što je broj dvotočka u ćeliji A2.
- Zamijenite zadnji graničnik nekim jedinstvenim karakterom. Da bismo izdvojili tekst koji dolazi nakon posljednjeg graničnika u nizu, moramo na neki način "označiti" to konačno pojavljivanje graničnika. Za ovo, zamijenimo posljednje pojavljivanje dvotočke sa znakom koji se ne pojavljuje nigdje u originalnim nizovima, na primjer sa znakom funte (#).
Ako ste upoznati sa sintaksom funkcije Excel SUBSTITUTE, možda ćete se sjetiti da ona ima 4. opcijski argument (instance_num) koji dozvoljava zamjenu samo određenog pojavljivanja navedenog znaka. A pošto smo već izračunali broj graničnika u nizu, jednostavno unesite gornju funkciju u četvrti argument druge ZAMJENSKE funkcije:
=SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))
Ako ovu formulu stavite u zasebnu ćeliju , vratio bi ovaj niz: ERROR:432#Connection time out
- Nabavite poziciju posljednjeg graničnika u nizu. Ovisno o tome kojim ste znakom zamijenili posljednji graničnik, koristite SEARCH bez obzira na velika i mala slova ili FIND da odredite poziciju tog znaka u nizu. Zamenili smo poslednje debelo crevosa znakom #, pa koristimo sljedeću formulu da saznamo njen položaj:
=SEARCH("#", SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
U ovom primjeru, formula vraća 10, što je pozicija # u zamijenjenom nizu.
- Vrati podniz desno od posljednjeg graničnika. Sada kada znate poziciju posljednjeg graničnika u nizu, sve što trebate učiniti je oduzeti taj broj od ukupne dužine niza i dobiti funkciju DESNO da vrati toliko znakova s kraja originalnog niza:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
Kao što je prikazano na slici ispod, formula radi savršeno:
Ako radite s velikim skupom podataka gdje različite ćelije mogu sadržavati različite graničnike, možda ćete htjeti da priložite gornju formulu u funkciju IFERROR kako biste spriječili moguće greške:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
U slučaju da određeni niz ne sadrži niti jedno pojavljivanje navedenog graničnika, originalni niz će biti vraćen, kao u redu 6 na slici ispod:
Kako ukloniti prvih N znakova iz niza
Osim izdvajanja podniza s kraja niza, funkcija Excel DESNO je zgodna u situacijama kada želite ukloniti određeni broj znakova s početka niza.
U skupu podataka korištenom u prethodnom Kao primjer, možete ukloniti riječ "ERROR" koja se pojavljuje na početku svakog niza i ostaviti samo broj greške i opis. Da ga imamgotovo, oduzmite broj znakova koje treba ukloniti od ukupne dužine niza i dostavite taj broj argumentu num_chars funkcije DESNO Excel:
DESNO( string , LEN ( string )- broj_znakova_za_uklanjanje )U ovom primjeru uklanjamo prvih 6 znakova (5 slova i dvotačku) iz tekstualnog niza u A2, tako da naša formula ide kao slijedi:
=RIGHT(A2, LEN(A2)-6)
Može li Excelova funkcija RIGHT vratiti broj?
Kao što je spomenuto na početku ovog vodiča, funkcija RIGHT u Excelu uvijek vraća tekstualni niz čak i ako je originalna vrijednost broj. Ali što ako radite s numeričkim skupom podataka i želite da i izlaz bude numerički? Lako rješenje je ugniježđenje prave formule u funkciju VALUE, koja je posebno dizajnirana za pretvaranje niza koji predstavlja broj u broj.
Na primjer, za izvlačenje posljednjih 5 znakova (poštanskog broja) iz niza u A2 i pretvorite izdvojene znakove u broj, koristite ovu formulu:
=VALUE(RIGHT(A2, 5))
Snimak ispod prikazuje rezultat - obratite pažnju na brojeve koji se poravnavaju udesno u koloni B, a ne na lijevo -poravnani tekstualni nizovi u koloni A:
Zašto funkcija DESNO ne radi s datumima?
Budući da je Excel funkcija DESNO dizajnirana za rad s tekstualnim nizovima, dok su datumi predstavljeni brojevima u interni Excel sistem, prava formula nije u stanju da povrati pojedincadio datuma kao što je dan, mjesec ili godina. Ako pokušate to učiniti, sve što ćete dobiti je nekoliko zadnjih cifara broja koji predstavlja datum.
Pretpostavimo da imate datum 18-Jan-2017 u ćeliji A1. Ako pokušate da izdvojite godinu sa formulom DESNO(A1,4), rezultat bi bio 2753, što su poslednje 4 cifre broja 42753 koji predstavlja 18. januar 2017. u Excel sistemu.
"Pa, kako da povratim određeni dio datuma?", možete me pitati. Korištenjem jedne od sljedećih funkcija:
- Funkcija DAN za izdvajanje dana: =DAY(A1)
- MJESEC funkcija za dobivanje mjeseca: =MONTH(A1)
- YEAR funkcija za izvlačenje godine: =YEAR(A1)
Sljedeći snimak ekrana prikazuje rezultate:
Ako su vaši datumi predstavljeni tekstualnim nizovima , što je čest slučaj kada izvozite podatke iz vanjskog izvora, ništa vas ne sprječava da koristite funkciju DESNO za povlačenje zadnjih nekoliko znakova u nizu koji predstavljaju određeni dio datuma:
Excel DESNO funkcija ne radi - razlozi i rješenja
Ako ispravna formula ne radi točno na vašem radnom listu, najvjerovatnije je to zbog jednog od sljedećih razloga:
- Postoji jedan ili više završni razmaci u originalnim podacima. Da biste brzo uklonili dodatne razmake u ćelijama, koristite ili Excel funkciju TRIM ili dodatak Cell Cleaner.
- Argument num_chars je manji od nule . OfNaravno, teško da ćete htjeti namjerno staviti negativan broj u svoju formulu, ali ako argument num_chars izračunava druga Excel funkcija ili kombinacija različitih funkcija i vaša desna formula vraća #VRIJEDNOST! greška, obavezno provjerite ugniježđene funkcije za greške.
- Originalna vrijednost je datum . Ako ste pažljivo pratili ovaj vodič, već znate zašto funkcija DESNO ne može raditi s datumima. Ako je neko preskočio prethodni odjeljak, sve detalje možete pronaći u Zašto Excel funkcija DESNO ne radi s datumima.
Ovako koristite funkciju DESNO u Excelu. Da biste bliže pogledali formule o kojima se govori u ovom vodiču, možete preuzeti naš primjer radne sveske ispod. Zahvaljujem vam na čitanju i nadam se da se vidimo na našem blogu sljedeće sedmice.
Dostupna preuzimanja
Excel DESNA funkcija - primjeri (.xlsx datoteka)