İçindekiler
Bu eğitimde, Excel 365'te dizeleri belirttiğiniz herhangi bir sınırlayıcıya göre bölmek için yepyeni TEXTSPLIT işlevinin nasıl kullanılacağı gösterilmektedir.
Excel'de hücreleri bölmeniz gereken çeşitli durumlar olabilir. Önceki sürümlerde, Sütunlara Metin ve Flaşı Doldur gibi görevi yerine getirmek için zaten bir dizi araçla donatılmıştık. Şimdi, bunun için bir dizeyi belirttiğiniz parametrelere göre sütunlar ve/veya satırlar boyunca birden çok hücreye ayırabilen TEXTSPLIT adlı özel bir işlevimiz de var.
Excel TEXTSPLIT işlevi
Excel'deki TEXTSPLIT işlevi, metin dizelerini sütunlar ve/veya satırlar arasında belirli bir sınırlayıcıya göre böler. Sonuç, otomatik olarak birden çok hücreye yayılan dinamik bir dizidir.
Fonksiyon, sadece ilk ikisi gerekli olmak üzere 6 argüman alır.
TEXTSPLIT(text, col_delimiter, [row_delimiter], [ignore_empty], [match_mode], [pad_with])Metin (gerekli) - bölünecek metin. Bir dize veya hücre referansı olarak sağlanabilir.
col_delimiter (gerekli) - metnin sütunlar arasında nereye bölüneceğini gösteren karakter(ler). Atlanırsa, row_delimiter tanımlanmalıdır.
row_delimiter (isteğe bağlı) - metnin satırlar arasında nereye bölüneceğini gösteren karakter(ler).
ignore_empty (isteğe bağlı) - boş değerlerin yok sayılıp sayılmayacağını belirtir:
- FALSE (varsayılan) - aralarında değer olmayan ardışık sınırlayıcılar için boş hücreler oluşturur.
- TRUE - boş değerleri yoksayar, yani iki veya daha fazla ardışık sınırlayıcı için boş hücreler oluşturmaz.
match_mode (isteğe bağlı) - sınırlayıcı için büyük/küçük harf duyarlılığını belirler. Varsayılan olarak etkindir.
- 0 (varsayılan) - büyük/küçük harfe duyarlı
- 1 - büyük/küçük harfe duyarsız
pad_with (isteğe bağlı) - iki boyutlu dizilerde eksik değerlerin yerine kullanılacak bir değer. Varsayılan değer #N/A hatasıdır.
Örneğin, A2'deki bir metin dizesini ayırıcı olarak virgül ve boşluk kullanarak birden çok hücreye bölmek için formül şöyledir:
=TEXTSPLIT(A2, ", ")
TEXTSPLIT kullanılabilirliği
TEXTSPLIT işlevi yalnızca Microsoft 365 için Excel (Windows ve Mac) ve Web için Excel'de kullanılabilir.
İpuçları:
- TEXTSPLIT işlevinin kullanılamadığı Excel sürümlerinde (Excel 365 dışında), hücreleri bölmek için Metinden Sütunlara sihirbazını kullanabilirsiniz.
- Tersini yapmak için, yani birden fazla hücrenin içeriğini belirli bir sınırlayıcı kullanarak tek bir hücrede birleştirmek için kullanılacak işlev TEXTJOIN'dir.
Excel'de bir hücreyi bölmek için temel TEXTSPLIT formülü
Yeni başlayanlar için, bir metin dizesini belirli bir sınırlayıcıya göre bölmek için TEXTSPLIT formülünü en basit haliyle nasıl kullanacağımızı görelim.
Bir hücreyi sütunlar arasında yatay olarak bölme
Belirli bir hücrenin içeriğini birden çok sütuna bölmek için, ilk sütun için orijinal dizeyi içeren hücreye bir başvuru sağlayın ( Metin ) bağımsız değişkeni ve ikinci değişken için bölmenin gerçekleşmesi gereken noktayı işaretleyen sınırlayıcı ( col_delimiter ) argümanı.
Örneğin, A2'deki dizeyi yatay olarak virgülle ayırmak için formül şöyledir:
=TEXTSPLIT(A2, ",")
Sınırlayıcı olarak, çift tırnak (",") içine alınmış bir virgül kullanırız.
Sonuç olarak, virgülle ayrılmış her öğe ayrı bir sütuna gider:
Bir hücreyi satırlar arasında dikey olarak bölme
Metni birden fazla satıra bölmek için üçüncü bağımsız değişken ( row_delimiter ) sınırlayıcıyı yerleştirdiğiniz yerdir. İkinci bağımsız değişken ( col_delimiter ) bu durumda atlanır.
Örneğin, A2'deki değerleri farklı satırlara ayırmak için formül şöyledir:
=TEXTSPLIT(A2, ,",")
Lütfen her iki durumda da formülün yalnızca bir hücreye (C2) girildiğine dikkat edin. Komşu hücrelerde, döndürülen değerler otomatik olarak dökülür. Ortaya çıkan dizi (buna dökülme aralığı denir), içindeki her şeyin sol üst hücredeki formül tarafından hesaplandığını gösteren mavi bir kenarlıkla vurgulanır.
Metni alt dizeye göre bölme
Birçok durumda, kaynak dizedeki değerler bir dizi karakterle ayrılır; virgül ve boşluk bunun tipik bir örneğidir. Bu senaryoyu işlemek için, sınırlayıcı olarak bir alt dize kullanın.
Örneğin, A2'deki metni virgül ve boşlukla birden çok sütuna ayırmak için ", " dizesini kullanın. col_delimiter .
=TEXTSPLIT(A2, ", ")
Bu formül B2'ye gider ve ardından gerektiği kadar hücreye kopyalarsınız.
Dizeyi aynı anda sütunlara ve satırlara bölme
Bir metin dizesini bir seferde satırlara ve sütunlara bölmek için, TEXTSPLIT formülünüzde her iki sınırlayıcıyı da tanımlayın.
Örneğin, A2'deki metin dizesini sütunlara ve satırlara bölmek için şunu sağlarız:
- için eşittir işareti ("=") col_delimiter
- için bir virgül ve bir boşluk (", ") row_delimiter
Formülün tamamı şu şekildedir:
=TEXTSPLIT(A2, "=", ", ")
Sonuç, 2 sütun ve 3 satırdan oluşan 2 boyutlu bir dizidir:
Hücreleri birden çok sınırlayıcı ile ayırma
Kaynak dizedeki birden çok veya tutarsız sınırlayıcıları işlemek için, sınırlayıcı bağımsız değişkeni için {"x", "y", "z"} gibi bir dizi sabiti kullanın.
Aşağıdaki ekran görüntüsünde, A2'deki metin hem virgül (",") hem de noktalı virgül (";") ile boşluklu ve boşluksuz olarak sınırlandırılmıştır. Dizeyi sınırlayıcının 4 varyasyonuna göre dikey olarak satırlara bölmek için formül şöyledir:
=TEXTSPLIT(A2, , {",",", ",";",";"})
Ya da diziye yalnızca virgül (",") ve noktalı virgül (";") ekleyebilir ve ardından TRIM işlevi yardımıyla fazladan boşlukları kaldırabilirsiniz:
=TRIM(TEXTSPLIT(A2, , {",",";"}))
Boş değerleri yok sayarak metni bölme
Dize, aralarında bir değer olmayan iki veya daha fazla ardışık sınırlayıcı içeriyorsa, bu boş değerlerin yok sayılıp sayılmayacağını seçebilirsiniz. Bu davranış dördüncü ignore_empty parametresi için varsayılan değer FALSE'dir.
Varsayılan olarak, TEXTSPLIT işlevi boş değerleri yok saymaz. Varsayılan davranış, aşağıdaki örnekte olduğu gibi yapılandırılmış veriler için iyi çalışır.
Bu örnek tabloda, bazı dizelerde puanlar eksiktir. TEXTSPLIT formülü ile ignore_empty argümanı atlandığında veya FALSE olarak ayarlandığında, her boş değer için boş bir hücre oluşturarak bu durumu mükemmel bir şekilde ele alır.
=TEXTSPLIT(A2, ", ")
Ya da
=TEXTSPLIT(A2, ", ", FALSE)
Sonuç olarak, tüm değerler uygun sütunlarda görünür.
Dizelerinizin homojen veriler içermesi durumunda, boş değerleri yok saymak mantıklı olabilir. Bunun için ignore_empty argümanını TRUE veya 1 olarak ayarlar.
Örneğin, aşağıdaki dizeleri bölmek ve her beceriyi boşluksuz olarak ayrı bir hücreye yerleştirmek için formül şöyledir:
=TEXTSPLIT(A2, ", ", ,TRUE)
Bu durumda, ardışık sınırlayıcılar arasındaki eksik değerler tamamen göz ardı edilir:
Hücre bölme büyük/küçük harfe duyarlı veya büyük/küçük harfe duyarsız
Sınırlayıcının büyük/küçük harf duyarlılığını kontrol etmek için beşinci bağımsız değişkeni kullanın, match_mode .
Varsayılan olarak, match_mode 0 olarak ayarlandığında TEXTSPLIT büyük/küçük harfe duyarlı .
Bu örnekte, sayılar küçük "x" ve büyük "X" harfleriyle ayrılmıştır.
Varsayılan büyük/küçük harf duyarlılığına sahip formül, sınırlayıcı olarak yalnızca küçük harf "x "i kabul eder:
=TEXTSPLIT(A2, " x ")
Sonuçlarda önde ve sonda boşluk olmasını önlemek için lütfen sınırlayıcının " x " harfinin her iki yanında boşluk olmasına dikkat edin.
Büyük/küçük harf duyarlılığını kapatmak için match_mode TEXTSPLIT formülünü harf büyüklüğünü göz ardı etmeye zorlamak için:
=TEXTSPLIT(A2, " x ", , ,1)
Şimdi, tüm dizeler her iki sınırlayıcı tarafından doğru şekilde bölünüyor:
2B dizide eksik değerleri doldurun
TEXTSPLIT işlevinin son bağımsız değişkeni, pad_with kaynak dizede bir veya daha fazla değerin eksik olması durumunda kullanışlıdır. Böyle bir dize hem sütunlara hem de satırlara bölündüğünde, varsayılan olarak, Excel iki boyutlu bir dizinin yapısını bozmamak için eksik değerler yerine #N/A hatalarını döndürür.
Aşağıdaki dizede "=" ( col_delimiter Ortaya çıkan dizinin bütünlüğünü korumak için TEXTSPLIT, "Score "un yanında #N/A çıktısı verir.
Sonucu daha kullanıcı dostu hale getirmek için #N/A hatasını istediğiniz herhangi bir değerle değiştirebilirsiniz. pad_with Tartışma.
Bizim durumumuzda bu bir kısa çizgi ("-") olabilir:
=TEXTSPLIT(A2, "=", ", ", , ,"-")
Veya boş bir dize (""):
=TEXTSPLIT(A2, "=", ", ", ,"")
TEXTSPLIT işlevinin her bir bağımsız değişkeninin pratik kullanımlarını öğrendiğinize göre, Excel elektronik tablolarınızdaki önemsiz olmayan zorluklarla başa çıkmanıza yardımcı olabilecek birkaç gelişmiş örneği tartışalım.
Tarihleri gün, ay ve yıla bölme
Bir tarihi ayrı birimlere bölmek için önce tarihi metne dönüştürmeniz gerekir, çünkü TEXTSPLIT işlevi metin dizeleriyle ilgilenirken Excel tarihleri sayıdır.
Sayısal bir değeri metne dönüştürmenin en kolay yolu TEXT fonksiyonunu kullanmaktır. Tarihiniz için uygun bir format kodu sağladığınızdan emin olun.
Bizim durumumuzda formül şöyledir:
=TEXT(A2, "m/d/yyyy")
Bir sonraki adım, yukarıdaki işlevi TEXTSPLIT'in 1. bağımsız değişkenine yerleştirmek ve sütunlar veya satırlar arasında bölme yapıp yapmadığınıza bağlı olarak 2. veya 3. bağımsız değişken için ilgili sınırlayıcıyı girmektir. Bu örnekte, tarih birimleri eğik çizgilerle sınırlandırılmıştır, bu nedenle "/" için col_delimiter Tartışma:
=TEXTSPLIT(TEXT(A2, "m/d/yyyy"), "/")
Hücreleri bölme ve belirli karakterleri kaldırma
Şunu hayal edin: uzun bir dizeyi parçalara ayırdınız, ancak ortaya çıkan dizi hala aşağıdaki ekran görüntüsündeki parantezler gibi bazı istenmeyen karakterler içeriyor:
=TEXTSPLIT(A2, " ", "; ")
Bir seferde açılış ve kapanış parantezlerini kaldırmak için, iki SUBSTITUTE işlevini iç içe yerleştirin (her biri bir parantezi boş bir dizeyle değiştirir) ve TEXTSPLIT formülünü Metin iç SUBSTITUTE argümanı:
=SUBSTITUTE(SUBSTITUTE(TEXTSPLIT(A2, " ", "; "), "(", ""), ")", "")
İpucu: Son dizi çok fazla fazladan karakter içeriyorsa, bu makalede açıklanan yöntemlerden birini kullanarak bunları temizleyebilirsiniz: Excel'de istenmeyen karakterler nasıl kaldırılır.
Belirli değerleri atlayarak dizeleri bölme
Aşağıdaki dizeleri 4 sütuna ayırmak istediğinizi varsayalım: İlk isim , Soyadı , Skor ve Sonuç Sorun, bazı dizelerin "Bay" veya "Bayan" unvanını içermesidir, bu nedenle sonuçların tümü yanlıştır:
Çözüm açık değil ama oldukça basit :)
Bir boşluk (" ") ve bir virgül ve bir boşluk (", ") olan mevcut sınırlayıcılara ek olarak, "Bay" ve "Bayan" dizelerini col_delimiter dizi sabiti, böylece işlev metni ayırmak için başlıkların kendisini kullanır. Boş değerleri yok saymak için ignore_empty argümanını TRUE olarak ayarlayın.
=TEXTSPLIT(A2, {" ",",", "Bay", "Bayan"}, ,TRUE)
Şimdi, sonuçlar kesinlikle mükemmel!
TEXTSPLIT alternatifleri
TEXTSPLIT işlevinin desteklenmediği Excel sürümlerinde, SOL, SAĞ ve ORTA ile ARA / BUL işlevinin farklı kombinasyonlarını kullanarak dizeleri bölebilirsiniz:
- Harfe duyarlı olmayan ARAMA veya harfe duyarlı BUL, bir dize içindeki sınırlayıcının konumunu belirler ve
- LEFT, RIGHT ve MID fonksiyonları, sınırlayıcının iki örneğinden önce, sonra veya arasında bir alt dizeyi çıkarır.
Bizim durumumuzda, ile ayrılmış değerleri bölmek için virgül ve boşluk formülleri aşağıdaki gibidir.
İsmi çıkarmak için:
=LEFT(A2, SEARCH(",", A2, 1) -1)
Skoru çekmek için:
=MID(A2, SEARCH(",", A2) + 2, SEARCH(",", A2, SEARCH(",",A2)+1) - SEARCH(",", A2) - 2)
Sonucu almak için:
=RIGHT(A2, LEN(A2) - SEARCH(",", A2, SEARCH(",", A2) + 1)-1)
Formüllerin mantığının ayrıntılı açıklaması için Dizeleri karaktere veya maskeye göre bölme bölümüne bakın.
Dinamik dizi TEXTSPLIT işlevinin aksine, bu formüllerin geleneksel bir formül-bir hücre yaklaşımını izlediğini lütfen unutmayın. Formülü ilk hücreye girersiniz ve ardından aşağıdaki hücrelere kopyalamak için sütunda aşağı sürüklersiniz.
Aşağıdaki ekran görüntüsü sonuçları göstermektedir:
TEXTSPLIT veya daha önceki sürümlerdeki alternatif çözümleri kullanarak Excel 365'te hücreleri bölmenin yolu budur. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmeyi umarım!
İndirmek için pratik çalışma kitabı
Dizeleri bölmek için TEXTSPLIT işlevi - formül örnekleri (.xlsx dosyası)