Excel verilerinden iyi biçimlendirilmiş metin oluşturma sık karşılaşılan bir ihtiyaçtır; ancak değerleri peş peşe eklemek karmaşıklaşabilir. Excel'in TEXTJOIN() işlevi, bir ayırıcı kullanarak metin aralıklarını bir araya getirmenize ve boş hücreleri atlamanıza olanak tanıyan, doğrudan bir çözüm sunar.
Bu yazıda TEXTJOIN() temellerini adım adım anlatacak, CONCAT() ve CONCATENATE() gibi benzer işlevlerle nasıl karşılaştırıldığını görecek ve parladığı pratik senaryolar üzerinde çalışacağım. İlerledikçe TEXTJOIN() lehine argümanlar sunacağım; çünkü artık metni birleştirmek için daha iyi araç olduğuna inanıyorum ve yazının sonunda sizin de ikna olacağınıza düşünüyorum.
Excel TEXTJOIN() Nasıl Çalışır
Önce TEXTJOIN() tam olarak ne yapar ve neden sözdizimi önceki seçeneklere göre çok daha esnektir, bunu netleştirelim.
Özünde TEXTJOIN(), birden fazla hücredeki metin değerlerini aralarına bir ayırıcı (virgül, boşluk veya noktalı virgül gibi) ekleyerek birleştirmenizi sağlar. Eski yaklaşımlardan farklı olarak tek seferde tüm bir aralığı işleyebilir ve boşları yok sayıp saymayacağınıza siz karar verirsiniz.
A2 boşsa, yalnızca A1 ve A3’teki değerleri virgülle ayrılmış olarak elde edersiniz.
Bu neden önemli? Diğer işlevler (CONCATENATE() aklıma geliyor) her hücreyi tek tek listelemenizi gerektirir ve boşları atlamaz. TEXTJOIN() yazması daha kısadır ve bakımı çok daha kolaydır.
TEXTJOIN() ve CONCATENATE() ve CONCAT()
Artık TEXTJOIN() temellerini ele aldığına göre, bunun eski Excel metin işlevleriyle doğrudan nasıl karşılaştırıldığını görmekte fayda var. CONCATENATE() veya CONCAT() kullandıysanız neden geçiş yapmanız gerektiğini merak edebilirsiniz.
TEXTJOIN(): Bir ayırıcı belirtmenize ve boşları kolayca atlamanıza izin verir. Aralıkları kabul eder.
CONCAT(): Aralıkları veya tek tek metin hücrelerini birleştirir, ancak bir ayırıcı belirleyemezsiniz. Boşları atlamaz.
CONCATENATE(): En eski seçenek. Her hücreyi tek tek belirtmeye zorlar. Ayırıcı alanı yoktur, aralık desteği de yoktur.
Örneğin, B1, B2 ve B3’teki değerleri aralarına noktalı virgül koyarak birleştirelim. Farklı işlevlerin nasıl göründüğüne bakalım:
Gördüğünüz gibi, yalnızca TEXTJOIN() fazladan uğraşmadan ayırıcı seçmenize imkan tanır. CONCAT() veya CONCATENATE() ile ayırıcı istiyorsanız, bunları elle eklemeniz gerekir:
Ayrıca, verinizin yapısına bağlı olarak herhangi bir hücre boşsa, TEXTJOIN() bunu sizin için atlayabilir. CONCATENATE() ve CONCAT() boşu dahil eder.
Ayırıcılar ve Boş Hücrelerle Çalışma
Şu iki yaygın sıkıntı hakkında biraz daha konuşmama izin verin: tutarlı ayırıcılar ekleme ve boş hücreleri yok sayma.
Özel ayırıcılar
Farklı durumlar için farklı ayırıcılar isteyebilirsiniz. Ayraç olarak virgül, dikey çizgi, yeni satır veya başka tür karakterler kullanmak isteyebilirsiniz.
Satır sonu için CHAR(10) bile kullanabilirsiniz; ancak etkisini görmek için hücre biçimlendirmesinde Metni Kaydır seçeneğini açmanız gerekir.
Boşları atlamak
Veri birleştirmede en sinir bozucu şeylerden biri boşlarla uğraşmaktır. TEXTJOIN() kontrolü size verir. ignore_empty bağımsız değişkenini TRUE yapın; boşlar tamamen dışarıda bırakılır.
Şimdi sonuç: “Red, , Blue”. O fazladan virgül göze batıyor (ve genellikle istenen bu değil). Deneyimlerime göre çoğu durumda TRUE en iyisidir.
Tüm bunlar küçük bir fark gibi görünebilir; ancak bu işlevi biraz pratik ederseniz, sonradan temizlik işlerinde zaman kazanırsınız.
Dinamik Listeler ve Etiketler Oluşturma
Artık temelleri gördüğünüze göre, TEXTJOIN() ile nasıl sorun çözülebileceğini keşfedelim. Muhtemelen karşılaşacağınız iki senaryoya odaklanacağım: dinamik özetler oluşturma ve değişken veriden etiket derleme.
Kullanıcı girdilerinden özetler oluşturma
Diyelim ki kullanıcıların bir dizi isteğe bağlı soruya Evet/Hayır yanıt verdiği bir anket topluyorsunuz. Yalnızca bir kısmı yanıtlayacak; bu nedenle sonuçlar F1’den J1’e yayılmış durumda.
Yalnızca “Yes” yanıtı verilen soruları listelemek istiyorsanız, TEXTJOIN() işlevini IF() ve FILTER() ile (yeni Excel sürümlerindeki dinamik dizilerle) birlikte kullanabilirsiniz.
G1:G5’te soru metni, F1:F5’te karşılık gelen Evet/Hayır olduğunu varsayalım:
Artık çıktı hücreniz yalnızca kullanıcının “Yes” dediği soruları virgülle ayrılmış şekilde listeler.
Dinamik dizileriniz yoksa, yalnızca yanıt Evet ise soru metnini veren bir yardımcı sütun oluşturabilir, ardından bu yardımcı aralığı TEXTJOIN() ile birleştirebilirsiniz.
Değişken veriden özel etiketler oluşturma
Bazen (“Apartment” veya “Suite” gibi) bazı alanların boş olabildiği bir tablodan kargo etiketleri hazırladığınızı düşünün. Adres bileşenlerini tek satırda birleştirmek istiyorsunuz.
Adresiniz H1’de (“123 Main St”), H2’de (“Apt 4B” veya boş), H3’te (“Springfield”), H4’te (“IL”), H5’te (“62704”) ise, şöyle kullanırsınız:
H2 boşsa bile çıktınız temiz kalır (çift virgül yok!) çünkü TEXTJOIN() boş hücreyi atlar.
Bunlar yaygın örneklerdir; ancak aynı mantık, isteğe bağlı alanlar veya koşullu dahil etme ile veri birleştirdiğiniz her yerde geçerlidir.
Dikkate Alınacak Diğer Noktalar
TEXTJOIN() ne kadar kullanışlı olsa da, birkaç küçük nokta var:
TEXTJOIN() ile birden fazla aralık kullanmak
TEXTJOIN() hakkında bilinmesi gereken şeylerden biri, birden fazla aralığı nasıl ele aldığıdır. Birbirine bitişik olmasalar bile birden fazla aralığı geçebilirsiniz; yeter ki ayrı ayrı listeleyin:
Bu gayet iyi çalışır. Excel iki aralıktaki değerleri birleştirip bir araya getirir. Yalnız şunu unutmayın: Bunları (A1:A3,C1:C3) gibi tek bir dizi olarak yazamazsınız. Her aralığı kendi bağımsız değişkeni olarak listelemeniz gerekir.
İç içe işlevler ve dinamik diziler
TEXTJOIN() işlevini bir dinamik dizi formülünün (örneğin UNIQUE() veya FILTER() ile) parçası olarak kullanıyorsanız, ayırıcı ve ignore_empty bağımsız değişkenlerinin yine tekil değerler olması gerektiğini unutmayın. Buralarda dizi kullanmak #VALUE! hatası döndürür.
Ayırıcılar ve son biçimlendirme
Bazen hiç ayırıcı istemezsiniz (metnin tamamını bitişik istersiniz). Ayırıcıyı "" (boş dize) olarak ayarlayın:
Yalnız dikkat: Ayırıcıyı atladığınızda, bu işlevin CONCAT()’a göre başlıca üstünlüğünü kaybedersiniz.
Excel dışı kullanım için listeler oluşturuyorsanız (CSV yüklemeleri gibi), fazladan boşluklar, beklenmedik satır sonları veya karakter kodlamasına (özellikle semboller veya Unicode kullanıyorsanız) dikkat edin.
İlgili İşlevler ve İleri Teknikler
TEXTJOIN() ile rahat ettikçe, bunun diğer “dinamik” Excel işlevleriyle nasıl uyum sağladığını merak edebilirsiniz. Çoğu zaman UNIQUE(), FILTER() veya SORT() ile birlikte kullanmak onu daha da güçlü kılar.
Örneğin, bir listedeki tüm benzersiz ürün kategorilerini birleştirmek istediğinizi düşünün:
Her iki örnek de TEXTJOIN() işlevinin yardımcı sütunlara veya manuel filtrelemeye gerek kalmadan veriyi özetleyip raporlayabildiğini gösterir.
Sonuç
Hâlâ CONCATENATE() kullanıyor veya hücreleri elle peş peşe ekliyorsanız, TEXTJOIN()’a geçmek size zaman kazandıracaktır. (Söz!)
Ayrıca, TEXTJOIN() öğrenmenin aralıklarla düşünmeye alışmanızı sağladığını da eklemek isterim. Bu, Excel’in dinamik dizi işlevlerini ve diğer daha modern yaklaşımları kullanırken karşılığını veren bir zihniyettir. Öğrenmeye devam etmek için Advanced Excel Functions kursumuzu alın.
Yazar
Josef Waples
Bilimsel dergilerde yayımlanan araştırma makalelerine katkıları olan bir veri bilimi yazarı ve editörüyüm. Özellikle lineer cebir, istatistik, R ve benzeri konularla ilgileniyorum. Aynı zamanda epey satranç da oynarım!
Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Excel verilerinden iyi biçimlendirilmiş metin oluşturma sık karşılaşılan bir ihtiyaçtır; ancak değerleri peş peşe eklemek karmaşıklaşabilir. Excel'in
TEXTJOIN()işlevi, bir ayırıcı kullanarak metin aralıklarını bir araya getirmenize ve boş hücreleri atlamanıza olanak tanıyan, doğrudan bir çözüm sunar.Bu yazıda
TEXTJOIN()temellerini adım adım anlatacak,CONCAT()veCONCATENATE()gibi benzer işlevlerle nasıl karşılaştırıldığını görecek ve parladığı pratik senaryolar üzerinde çalışacağım. İlerledikçeTEXTJOIN()lehine argümanlar sunacağım; çünkü artık metni birleştirmek için daha iyi araç olduğuna inanıyorum ve yazının sonunda sizin de ikna olacağınıza düşünüyorum.Excel TEXTJOIN() Nasıl Çalışır
Önce
TEXTJOIN()tam olarak ne yapar ve neden sözdizimi önceki seçeneklere göre çok daha esnektir, bunu netleştirelim.Özünde
TEXTJOIN(), birden fazla hücredeki metin değerlerini aralarına bir ayırıcı (virgül, boşluk veya noktalı virgül gibi) ekleyerek birleştirmenizi sağlar. Eski yaklaşımlardan farklı olarak tek seferde tüm bir aralığı işleyebilir ve boşları yok sayıp saymayacağınıza siz karar verirsiniz.Sözdizimi şöyledir:
delimiter: Her metin parçasının arasına koymak istediğiniz karakter(ler) (genellikle virgül, boşluk vb.)ignore_empty: Boş hücreleri atlamak için TRUE, dahil etmek için FALSEtext1, [text2], …: Birleştirmek istediğiniz hücreler, aralıklar veya değerlerÖrneğin A1, A2 ve A3’te değerleriniz olduğunu varsayalım. Bunları virgülle ayrılmış şekilde, boşları atlayarak birleştirmek istiyorsunuz:
A2 boşsa, yalnızca A1 ve A3’teki değerleri virgülle ayrılmış olarak elde edersiniz.
Bu neden önemli? Diğer işlevler (
CONCATENATE()aklıma geliyor) her hücreyi tek tek listelemenizi gerektirir ve boşları atlamaz.TEXTJOIN()yazması daha kısadır ve bakımı çok daha kolaydır.TEXTJOIN() ve CONCATENATE() ve CONCAT()
Artık
TEXTJOIN()temellerini ele aldığına göre, bunun eski Excel metin işlevleriyle doğrudan nasıl karşılaştırıldığını görmekte fayda var.CONCATENATE()veyaCONCAT()kullandıysanız neden geçiş yapmanız gerektiğini merak edebilirsiniz.TEXTJOIN(): Bir ayırıcı belirtmenize ve boşları kolayca atlamanıza izin verir. Aralıkları kabul eder.CONCAT(): Aralıkları veya tek tek metin hücrelerini birleştirir, ancak bir ayırıcı belirleyemezsiniz. Boşları atlamaz.CONCATENATE(): En eski seçenek. Her hücreyi tek tek belirtmeye zorlar. Ayırıcı alanı yoktur, aralık desteği de yoktur.Örneğin, B1, B2 ve B3’teki değerleri aralarına noktalı virgül koyarak birleştirelim. Farklı işlevlerin nasıl göründüğüne bakalım:
Gördüğünüz gibi, yalnızca
TEXTJOIN()fazladan uğraşmadan ayırıcı seçmenize imkan tanır.CONCAT()veyaCONCATENATE()ile ayırıcı istiyorsanız, bunları elle eklemeniz gerekir:Ayrıca, verinizin yapısına bağlı olarak herhangi bir hücre boşsa,
TEXTJOIN()bunu sizin için atlayabilir.CONCATENATE()veCONCAT()boşu dahil eder.Ayırıcılar ve Boş Hücrelerle Çalışma
Şu iki yaygın sıkıntı hakkında biraz daha konuşmama izin verin: tutarlı ayırıcılar ekleme ve boş hücreleri yok sayma.
Özel ayırıcılar
Farklı durumlar için farklı ayırıcılar isteyebilirsiniz. Ayraç olarak virgül, dikey çizgi, yeni satır veya başka tür karakterler kullanmak isteyebilirsiniz.
Dikey çizgiyle birleştirmek için şunu kullanın:
Daha niş şeyler de yapabilirsiniz. Burada ayırıcı olarak boşluk-tire-boşluk kullanıyorum:
Satır sonu için
CHAR(10)bile kullanabilirsiniz; ancak etkisini görmek için hücre biçimlendirmesinde Metni Kaydır seçeneğini açmanız gerekir.Boşları atlamak
Veri birleştirmede en sinir bozucu şeylerden biri boşlarla uğraşmaktır.
TEXTJOIN()kontrolü size verir.ignore_emptybağımsız değişkeniniTRUEyapın; boşlar tamamen dışarıda bırakılır.Sonuç: “Red, Blue”. Boş hücre (F2) yok sayılır; fazladan virgül gelmez.
ignore_empty’yiFALSEyaparsanız:Şimdi sonuç: “Red, , Blue”. O fazladan virgül göze batıyor (ve genellikle istenen bu değil). Deneyimlerime göre çoğu durumda
TRUEen iyisidir.Tüm bunlar küçük bir fark gibi görünebilir; ancak bu işlevi biraz pratik ederseniz, sonradan temizlik işlerinde zaman kazanırsınız.
Dinamik Listeler ve Etiketler Oluşturma
Artık temelleri gördüğünüze göre,
TEXTJOIN()ile nasıl sorun çözülebileceğini keşfedelim. Muhtemelen karşılaşacağınız iki senaryoya odaklanacağım: dinamik özetler oluşturma ve değişken veriden etiket derleme.Kullanıcı girdilerinden özetler oluşturma
Diyelim ki kullanıcıların bir dizi isteğe bağlı soruya Evet/Hayır yanıt verdiği bir anket topluyorsunuz. Yalnızca bir kısmı yanıtlayacak; bu nedenle sonuçlar F1’den J1’e yayılmış durumda.
Yalnızca “Yes” yanıtı verilen soruları listelemek istiyorsanız,
TEXTJOIN()işleviniIF()veFILTER()ile (yeni Excel sürümlerindeki dinamik dizilerle) birlikte kullanabilirsiniz.G1:G5’te soru metni, F1:F5’te karşılık gelen Evet/Hayır olduğunu varsayalım:
Artık çıktı hücreniz yalnızca kullanıcının “Yes” dediği soruları virgülle ayrılmış şekilde listeler.
Dinamik dizileriniz yoksa, yalnızca yanıt Evet ise soru metnini veren bir yardımcı sütun oluşturabilir, ardından bu yardımcı aralığı
TEXTJOIN()ile birleştirebilirsiniz.Değişken veriden özel etiketler oluşturma
Bazen (“Apartment” veya “Suite” gibi) bazı alanların boş olabildiği bir tablodan kargo etiketleri hazırladığınızı düşünün. Adres bileşenlerini tek satırda birleştirmek istiyorsunuz.
Adresiniz H1’de (“123 Main St”), H2’de (“Apt 4B” veya boş), H3’te (“Springfield”), H4’te (“IL”), H5’te (“62704”) ise, şöyle kullanırsınız:
H2 boşsa bile çıktınız temiz kalır (çift virgül yok!) çünkü
TEXTJOIN()boş hücreyi atlar.Bunlar yaygın örneklerdir; ancak aynı mantık, isteğe bağlı alanlar veya koşullu dahil etme ile veri birleştirdiğiniz her yerde geçerlidir.
Dikkate Alınacak Diğer Noktalar
TEXTJOIN()ne kadar kullanışlı olsa da, birkaç küçük nokta var:TEXTJOIN() ile birden fazla aralık kullanmak
TEXTJOIN()hakkında bilinmesi gereken şeylerden biri, birden fazla aralığı nasıl ele aldığıdır. Birbirine bitişik olmasalar bile birden fazla aralığı geçebilirsiniz; yeter ki ayrı ayrı listeleyin:Bu gayet iyi çalışır. Excel iki aralıktaki değerleri birleştirip bir araya getirir. Yalnız şunu unutmayın: Bunları
(A1:A3,C1:C3)gibi tek bir dizi olarak yazamazsınız. Her aralığı kendi bağımsız değişkeni olarak listelemeniz gerekir.İç içe işlevler ve dinamik diziler
TEXTJOIN()işlevini bir dinamik dizi formülünün (örneğinUNIQUE()veyaFILTER()ile) parçası olarak kullanıyorsanız, ayırıcı veignore_emptybağımsız değişkenlerinin yine tekil değerler olması gerektiğini unutmayın. Buralarda dizi kullanmak#VALUE!hatası döndürür.Ayırıcılar ve son biçimlendirme
Bazen hiç ayırıcı istemezsiniz (metnin tamamını bitişik istersiniz). Ayırıcıyı
""(boş dize) olarak ayarlayın:Yalnız dikkat: Ayırıcıyı atladığınızda, bu işlevin
CONCAT()’a göre başlıca üstünlüğünü kaybedersiniz.Excel dışı kullanım için listeler oluşturuyorsanız (CSV yüklemeleri gibi), fazladan boşluklar, beklenmedik satır sonları veya karakter kodlamasına (özellikle semboller veya Unicode kullanıyorsanız) dikkat edin.
İlgili İşlevler ve İleri Teknikler
TEXTJOIN()ile rahat ettikçe, bunun diğer “dinamik” Excel işlevleriyle nasıl uyum sağladığını merak edebilirsiniz. Çoğu zamanUNIQUE(),FILTER()veyaSORT()ile birlikte kullanmak onu daha da güçlü kılar.Örneğin, bir listedeki tüm benzersiz ürün kategorilerini birleştirmek istediğinizi düşünün:
Not:
UNIQUE()Excel’de varsayılan olarak sütun odaklıdır. Bir satırla çalıştığım için TRANSPOSE() de kullanmam gerekti.Ya da yalnızca belirli bir koşulu sağlayanları isteyebilirsiniz:
Her iki örnek de
TEXTJOIN()işlevinin yardımcı sütunlara veya manuel filtrelemeye gerek kalmadan veriyi özetleyip raporlayabildiğini gösterir.Sonuç
Hâlâ
CONCATENATE()kullanıyor veya hücreleri elle peş peşe ekliyorsanız,TEXTJOIN()’a geçmek size zaman kazandıracaktır. (Söz!)Ayrıca,
TEXTJOIN()öğrenmenin aralıklarla düşünmeye alışmanızı sağladığını da eklemek isterim. Bu, Excel’in dinamik dizi işlevlerini ve diğer daha modern yaklaşımları kullanırken karşılığını veren bir zihniyettir. Öğrenmeye devam etmek için Advanced Excel Functions kursumuzu alın.