İçindekiler
Son birkaç makalede, metin dizelerini işlemek için kullanılan farklı Metin işlevlerini ele aldık. Bugün odak noktamız, bir dizenin en sağ tarafından belirli sayıda karakter döndürmek için tasarlanmış olan SAĞ işlevidir. Diğer Excel Metin işlevleri gibi SAĞ da çok basit ve anlaşılırdır, ancak aşağıdaki durumlarda yararlı olabilecek birkaç açık olmayan kullanımı vardırsenin işin.
Excel SAĞ işlev sözdizimi
Excel'deki SAĞ işlevi, bir metin dizesinin sonundan itibaren belirtilen karakter sayısını döndürür.
RIGHT fonksiyonunun söz dizimi aşağıdaki gibidir:
RIGHT(metin, [num_chars])Nerede?
- Metin (gerekli) - karakterleri ayıklamak istediğiniz metin dizesi.
- Num_chars (isteğe bağlı) - en sağdaki karakterden başlayarak ayıklanacak karakter sayısı.
- Eğer num_chars atlanırsa, dizenin son 1 karakteri döndürülür (varsayılan).
- Eğer num_chars dizedeki toplam karakter sayısından büyükse, tüm karakterler döndürülür.
- Eğer num_chars negatif bir sayı ise, Doğru formül #DEĞER! hatası döndürür.
Örneğin, A2 hücresindeki dizeden son 3 karakteri ayıklamak için şu formülü kullanın:
=RIGHT(A2, 3)
Sonuç şuna benzer bir şey olabilir:
Önemli not! Excel SAĞ işlevi her zaman bir metin dizesi Orijinal değer bir sayı olsa bile. Bir Right formülünü bir sayı çıktısı vermeye zorlamak için, bu örnekte gösterildiği gibi VALUE işleviyle birlikte kullanın.
Excel'de SAĞ işlevi nasıl kullanılır - formül örnekleri
Gerçek hayattaki çalışma sayfalarında, Excel SAĞ işlevi nadiren tek başına kullanılır. Çoğu durumda, daha karmaşık formüllerin bir parçası olarak diğer Excel işlevleriyle birlikte kullanırsınız.
Belirli bir karakterden sonra gelen bir alt dize nasıl elde edilir
Belirli bir karakteri takip eden bir alt dizeyi çıkarmak istediğinizde, bu karakterin konumunu belirlemek için SEARCH veya FIND işlevini kullanın, konumu LEN işlevi tarafından döndürülen toplam dize uzunluğundan çıkarın ve orijinal dizenin en sağından o kadar karakteri çekin.
Diyelim ki A2 hücresi bir boşlukla ayrılmış ad ve soyadı içeriyor ve siz soyadını başka bir hücreye çekmeyi amaçlıyorsunuz. Yukarıdaki genel formülü alın ve A2 yerine Dize 'nin hızında " " (boşluk) ve karakter:
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
Formül aşağıdaki sonucu verecektir:
Benzer şekilde, virgül, noktalı virgül, kısa çizgi vb. gibi herhangi bir karakterden sonra gelen bir alt dizeyi alabilirsiniz. Örneğin, kısa çizgiden sonra gelen bir alt dizeyi ayıklamak için şu formülü kullanın:
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
Sonuç buna benzer görünecektir:
Sınırlayıcının son oluşumundan sonra bir alt dize nasıl çıkarılır
Aynı sınırlayıcının birkaç kez geçtiği karmaşık dizelerle uğraşırken, genellikle son sınırlayıcının geçtiği yerin sağındaki metni almanız gerekebilir. Anlaşılmasını kolaylaştırmak için aşağıdaki kaynak verilere ve istenen sonuca bir göz atın:
Yukarıdaki ekran görüntüsünde görebileceğiniz gibi, A Sütunu bir hata listesi içermektedir. Amacınız, her bir dizideki son iki nokta üst üste işaretinden sonra gelen hata açıklamasını çekmektir. Ek bir komplikasyon, orijinal dizelerin farklı sayıda sınırlayıcı örneği içerebilmesidir, örneğin A3 3 iki nokta üst üste işareti içerirken A5 yalnızca bir tane içerir.
Bir çözüm bulmanın anahtarı, kaynak dizedeki son sınırlayıcının konumunu belirlemektir (bu örnekte iki nokta üst üste işaretinin son geçtiği yer). Bunu yapmak için bir avuç farklı işlev kullanmanız gerekecektir:
- Orijinal dizgedeki sınırlayıcıların sayısını alır. Bu kolay bir bölümdür:
- İlk olarak, LEN işlevini kullanarak dizenin toplam uzunluğunu hesaplarsınız: LEN(A2)
- İkinci olarak, SUBSTITUTE işlevini kullanarak sınırlayıcılar olmadan dizenin uzunluğunu hesaplarsınız, bu işlev iki nokta üst üste işaretinin tüm geçtiği yerleri hiçbir şeyle değiştirmez: LEN(SUBSTITUTE(A2,":",""))
- Son olarak, sınırlayıcılar olmadan orijinal dizenin uzunluğunu toplam dize uzunluğundan çıkarırsınız: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Formülün doğru çalıştığından emin olmak için, formülü ayrı bir hücreye girebilirsiniz ve sonuç A2 hücresindeki iki nokta üst üste sayısı olan 2 olacaktır.
- Son sınırlayıcıyı benzersiz bir karakterle değiştirin. Dizedeki son sınırlayıcıdan sonra gelen metni ayıklamak için, sınırlayıcının son oluşumunu bir şekilde "işaretlememiz" gerekir. Bunun için, iki nokta üst üste işaretinin son oluşumunu orijinal dizelerde hiçbir yerde görünmeyen bir karakterle, örneğin bir pound işareti (#) ile değiştirelim.
Excel SUBSTITUTE işlevinin sözdizimine aşinaysanız, belirtilen karakterin yalnızca belirli bir oluşumunu değiştirmeye izin veren 4. isteğe bağlı bağımsız değişkene (instance_num) sahip olduğunu hatırlayabilirsiniz. Ve dizedeki sınırlayıcıların sayısını zaten hesapladığımız için, yukarıdaki işlevi başka bir SUBSTITUTE işlevinin dördüncü bağımsız değişkeninde sağlamanız yeterlidir:
=SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Bu formülü ayrı bir hücreye koyarsanız, bu dizeyi döndürür: ERROR:432#Bağlantı zaman aşımına uğradı
- Son sınırlayıcının dize içindeki konumunu alın. Son sınırlayıcıyı hangi karakterle değiştirdiğinize bağlı olarak, bu karakterin dize içindeki konumunu belirlemek için büyük/küçük harfe duyarlı olmayan SEARCH veya büyük/küçük harfe duyarlı FIND kullanın. Son iki nokta üst üste işaretini # işaretiyle değiştirdik, bu nedenle konumunu bulmak için aşağıdaki formülü kullanırız:
=SEARCH("#", SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
Bu örnekte formül, değiştirilen dizede # öğesinin konumu olan 10 değerini döndürür.
- Son sınırlayıcının sağındaki bir alt dizeyi döndürür. Artık bir dizedeki son sınırlayıcının konumunu bildiğinize göre, tek yapmanız gereken bu sayıyı toplam dize uzunluğundan çıkarmak ve RIGHT işlevinin orijinal dizenin sonundan bu kadar karakter döndürmesini sağlamaktır:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
Aşağıdaki ekran görüntüsünde gösterildiği gibi, formül mükemmel çalışıyor:
Farklı hücrelerin farklı sınırlayıcılar içerebileceği büyük bir veri kümesiyle çalışıyorsanız, olası hataları önlemek için yukarıdaki formülü EĞERHATA işlevine dahil etmek isteyebilirsiniz:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
Belirli bir dizenin belirtilen sınırlayıcının tek bir oluşumunu içermemesi durumunda, aşağıdaki ekran görüntüsünde 6. satırda olduğu gibi orijinal dize döndürülür:
Bir dizeden ilk N karakter nasıl kaldırılır
Excel RIGHT işlevi, bir dizenin sonundan bir alt dizeyi çıkarmanın yanı sıra, dizenin başından belirli sayıda karakteri kaldırmak istediğiniz durumlarda da kullanışlıdır.
Önceki örnekte kullanılan veri kümesinde, her dizenin başında görünen "HATA" kelimesini kaldırmak ve yalnızca hata numarasını ve açıklamasını bırakmak isteyebilirsiniz. Bunu yapmak için, kaldırılacak karakter sayısını toplam dize uzunluğundan çıkarın ve bu sayıyı num_chars Excel RIGHT işlevinin bağımsız değişkeni:
DOĞRU( Dize , LEN( Dize )- number_of_chars_to_remove )Bu örnekte, A2'deki metin dizesinden ilk 6 karakteri (5 harf ve iki nokta üst üste) kaldırıyoruz, böylece formülümüz aşağıdaki gibi oluyor:
=RIGHT(A2, LEN(A2)-6)
Excel SAĞ işlevi bir sayı döndürebilir mi?
Bu eğitimin başında belirtildiği gibi, Excel'deki SAĞ işlevi, orijinal değer bir sayı olsa bile her zaman bir metin dizesi döndürür. Peki ya sayısal bir veri kümesiyle çalışıyorsanız ve çıktının da sayısal olmasını istiyorsanız? Kolay bir geçici çözüm, bir sayıyı temsil eden bir dizeyi sayıya dönüştürmek için özel olarak tasarlanmış olan DEĞER işlevine bir Sağ formülü yerleştirmektir.
Örneğin, A2'deki dizeden son 5 karakteri (posta kodu) çekmek ve çıkarılan karakterleri bir sayıya dönüştürmek için bu formülü kullanın:
=DEĞER(SAĞ(A2, 5))
Aşağıdaki ekran görüntüsü sonucu göstermektedir - lütfen A sütunundaki sola hizalı metin dizelerinin aksine B sütunundaki sağa hizalı sayılara dikkat edin:
RIGHT işlevi neden tarihlerle çalışmıyor?
Excel SAĞ işlevi metin dizeleriyle çalışmak üzere tasarlandığından, tarihler ise dahili Excel sisteminde sayılarla temsil edildiğinden, bir Sağ formülü bir tarihin gün, ay veya yıl gibi ayrı bir bölümünü alamaz. Bunu yapmaya çalışırsanız, elde edeceğiniz tek şey tarihi temsil eden sayının son birkaç basamağı olacaktır.
Diyelim ki, elinizde tarih var 18-Jan-2017 RIGHT(A1,4) formülüyle yılı çıkarmaya çalışırsanız, sonuç Excel sisteminde 18 Ocak 2017'yi temsil eden 42753 sayısının son 4 basamağı olan 2753 olacaktır.
"Peki, bir tarihin belirli bir bölümünü nasıl alabilirim?" diye sorabilirsiniz. Aşağıdaki fonksiyonlardan birini kullanarak:
- Bir günü çıkarmak için DAY işlevi: =DAY(A1)
- Bir ay elde etmek için MONTH işlevi: =MONTH(A1)
- Bir yılı çekmek için YEAR işlevi: =YEAR(A1)
Aşağıdaki ekran görüntüsü sonuçları göstermektedir:
Eğer senin tarihler metin dizeleri ile temsil edilir Verileri harici bir kaynaktan dışa aktardığınızda genellikle olduğu gibi, tarihin belirli bir bölümünü temsil eden dizedeki son birkaç karakteri çekmek için RIGHT işlevini kullanmanızı engelleyen hiçbir şey yoktur:
Excel DOĞRU işlevi çalışmıyor - nedenleri ve çözümleri
Doğru bir formül çalışma sayfanızda doğru çalışmıyorsa, bunun nedeni büyük olasılıkla aşağıdaki nedenlerden biridir:
- Bir veya daha fazla sondaki boşluklar Hücrelerdeki fazladan boşlukları hızlı bir şekilde kaldırmak için Excel TRIM işlevini veya Hücre Temizleyici eklentisini kullanın.
- Bu num_chars argüman şudur sıfırdan az Elbette, formülünüze bilerek negatif bir sayı koymak istemeyeceksiniz, ancak eğer num_chars bağımsız değişkeni başka bir Excel işlevi veya farklı işlevlerin birleşimi tarafından hesaplanırsa ve Sağ formülünüz #DEĞER! hatası döndürürse, iç içe geçmiş işlev(ler)de hata olup olmadığını kontrol ettiğinizden emin olun.
- Orijinal değer bir Tarih Bu öğreticiyi yakından takip ettiyseniz, SAĞ işlevinin neden tarihlerle çalışmadığını zaten biliyorsunuzdur. Önceki bölümü atlayan biri varsa, tüm ayrıntıları Excel SAĞ işlevi neden tarihlerle çalışmıyor bölümünde bulabilirsiniz.
Bu eğitimde ele alınan formüllere daha yakından bakmak için aşağıdaki örnek çalışma kitabımızı indirebilirsiniz. Okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum.
Mevcut indirmeler
Excel SAĞ işlevi - örnekler (.xlsx dosyası)