Excel'de sütun listesini virgülle ayrılmış listeye nasıl dönüştürürüm?
Excel verileriyle çalışırken, dikey bir öğe listesini tek bir virgülle ayrılmış dizeye dönüştürme ihtiyacı duyarız. Veritabanı için giriş hazırlıyor, rapor oluşturuyor ya da çalışma sayfanızı düzenliyor olsanız bile, bunu başarmak için birden fazla yöntem bulunmaktadır. Aşağıda, dört optimize edilmiş yöntemi inceleyeceğiz:
Formüllerle sütun listesini virgülle ayrılmış listeye dönüştürme
- Formül 1: TEXTJOIN fonksiyonu (Excel 2019 ve sonraki sürümler, Office 365)
- Formül 2: CONCAT ve IF fonksiyonları (Tüm Excel sürümleri)
Kutools for Excel ile sütun listesini virgülle ayrılmış listeye dönüştürme
VBA kodu ile sütun listesini virgülle ayrılmış listeye dönüştürme
Formüllerle sütun listesini virgülle ayrılmış listeye dönüştürme
Excel, sütundan virgül listesi işlevi içermese de, bunu kolayca gerçekleştirebilirsiniz: Office 365/2019+ sürümünde TEXTJOIN kullanın veya herhangi bir sürümde CONCAT+IF kullanarak verilerinizi hızlandırabilirsiniz.
Formül 1: TEXTJOIN fonksiyonu (Excel 2019 ve sonraki sürümler, Office 365)
TEXTJOIN, Excel'in en gelişmiş birleştirme fonksiyonu olarak, esnek ayırıcı seçimi ve otomatik boş hücre yönetimi gibi çift işlevsellikleriyle süreci basitleştirerek çağdaş Excel kullanıcıları için en basit çözümü sunar.
1. Virgülle ayrılmış listenin görünmesini istediğiniz hücreyi seçin ve aşağıdaki formülü girin:
=TEXTJOIN(", ", TRUE, A2:A10)
2. Enter tuşuna basın ve virgülle ayrılmış değeri alın.
- ", " ayraçtır (virgül artı boşluk).
- TRUE, Excel'e boş hücreleri atlamasını söyler.
- A2:A10 kaynak aralığınız.
=TEXTJOIN(", ", TRUE, UNIQUE(A2:A10))
- 🔹Basit uygulama: Tek bir fonksiyon gerekir.
- 🔹Esnek ayraç: ", " (virgül+boşluk) veya yalnızca "," kullanılabilir.
- 🔹Otomatik işlem: ignore_empty için TRUE ayarlandığında boş hücreleri atlar.
- 🔸Excel 2019 ve sonraki sürümler / Office 365 gerektirir.
Formül 2: CONCAT ve IF fonksiyonları (Tüm Excel sürümleri)
TEXTJOIN'den önce, bir listeyi birleştirmek ve ardından baştaki ayracı kaldırmak için CONCAT fonksiyonunu IF fonksiyonuyla birleştirebilirsiniz.
1. Virgülle ayrılmış listenin görünmesini istediğiniz hücreyi seçin ve aşağıdaki formülü girin:
=CONCAT(IF(A2:A10<>"", A2:A10 & ", ", ""))
2. Sonucu almak için Ctrl + Shift + Enter tuşlarına birlikte basın.
- IF(A2:A100<>"", A2:A100 & ",", ""): A2:A100'deki her hücreyi kontrol eder. Eğer bir hücre boş değilse, değerini artı bir virgül döndürür; aksi takdirde boş bir dize döndürür.
- CONCAT(...): Bu dizideki tüm öğeleri tek bir sürekli dizeye birleştirir.
- 🔹Geniş uyumluluk: Dizi formüllerini destekleyen herhangi bir Excel sürümünde çalışır, yeni fonksiyonlara bağımlı değildir.
- 🔹Boş hücreleri görmezden gelir: IF kontrolü otomatik olarak boş hücreleri atlar.
- 🔸Karmaşık işlem: Dizi formülü olarak girilmelidir, bu da kullanıcıların Ctrl + Shift + Enter tuşlarına basmasını gerektirir—birçok başlangıç seviyesindeki kullanıcı bunu unutur.
- 🔸Zayıf performans: Hesaplama, büyük veri kümeleri (on binlerce satır) işlenirken önemli ölçüde yavaşlayabilir veya hatta durabilir.
- 🔸Sabit sonuç: Son ayırıcıyı kaldırmak için ek adımlar gereklidir.
Kutools for Excel ile sütun listesini virgülle ayrılmış listeye dönüştürme
Kutools for Excel, Satırları/Sütunları/Hücreleri Birleştir ve Değerleri Koru yardımcı programını içerir ki bu da bir sütunun tüm içeriğini birkaç tıklamayla tek bir hücreye birleştirmenizi sağlar. Kaynak aralığınızı seçerek ve bir ayırıcı belirleyerek—virgül, noktalı virgül, boşluk veya herhangi bir özel sembol—her bir öğeyi manuel olarak kopyalayıp yapıştırmadan anında birleştirilmiş, ayrılmış bir liste üretebilirsiniz. Araç ayrıca boş hücreleri görmezden gelme, orijinal biçimlendirmeyi koruma seçenekleri sunarak dikey verileri düzenli, virgülle ayrılmış listelere dönüştürmek için ideal bir çözüm haline getirir.
1. Virgülle ayrılmış listeye dönüştüreceğiniz sütun listesini seçin ve Kutools > Birleştir & Böl > Satırları/Sütunları/Hücreleri Birleştir ve Değerleri Koru'ya tıklayın.
2. Açılan Sütunları veya Satırları Birleştir iletişim kutusunda şunları yapmanız gerekir:
- (1) Seçilen hücreleri birleştirme bölümündeki Tek hücrede birleştir seçeneğini işaretleyin.
- (2) Ayırıcı belirtme bölümünde, Diğer ayırıcı seçeneğini işaretleyin ve virgül ", " yazın.
- (3.) Orijinal hücrelerdeki verileri nasıl işleyeceğinizi seçin. (Orijinal hücrelerin içeriğini koruyabilir veya orijinal hücrelerden içerikleri silebilirsiniz.)
- (4.) Sonuçları nereye yerleştireceğiniz bölümü altındaki Çıktı hücresini belirtin, Başka Hücre seçeneğini seçin ve çıktıyı almak için bir hücre seçin.
- (5.) Son olarak, Tamam düğmesine tıklayın.
Sonuç, belirttiğiniz hedef hücreye eklenmiştir.
- 🔹Son derece kullanıcı dostu.
- 🔹Formül veya kod gerektirmez.
- 🔹Büyük aralıkları sorunsuz bir şekilde işler.
- 🔹Herhangi bir ayırıcı ile satırları, sütunları veya aralıkları birleştirin, biçimlendirmeyi koruyun ve çıktı konumunu seçin.
- 🔸Yükleme gerektirir.
VBA kodu ile sütun listesini virgülle ayrılmış listeye dönüştürme
Alternatif olarak, görevi otomatikleştirmek istiyorsanız veya daha büyük, dinamik olarak değişen aralıkları işlemek gerekiyorsa, belirtilen sütundaki her hücreyi dolaşan, boş olmayan değerini bir virgül (veya seçtiğiniz herhangi bir ayırıcı) ile takip eden bir VBA makrosu yazabilir, sonunda fazladan ayırıcıyı kesip tamamen birleştirilmiş virgülle ayrılmış dizeyi hedef hücreye çıkarabilirsiniz.
1. Klavyede Alt ve F11 tuşlarını basılı tutarak Microsoft Visual Basic for Application penceresini açın.
2. Ekle > Modül'e tıklayın ve VBA'yı modüle kopyalayın.
VBA: Sütun listesini virgülle ayrılmış listeye dönüştürme
Sub ChangeRange()
' Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Dim outStr As String
Dim xTitleId As String
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Select source range:", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Output to (single cell):", xTitleId, Type:=8)
outStr = ""
For Each rng In InputRng
If Len(Trim(rng.Value)) > 0 Then
If outStr = "" Then
outStr = rng.Value
Else
outStr = outStr & ", " & rng.Value
End If
End If
Next rng
OutRng.Value = outStr
End Sub
3. Çalıştırmak için Çalıştır düğmesine tıklayın veya F5'e basın. Ekranda görüntülenen bir iletişim kutusu ile dönüştürmek istediğiniz sütun listesini seçebilirsiniz. Ekran görüntüsüne bakın:
4. Tamam'a tıklayın, ardından çıktıyı almak için bir hücre seçebileceğiniz başka bir iletişim kutusu açılacaktır. Ekran görüntüsüne bakın:
5. Tamam'a tıklayın ve sütun listesindeki tüm değerler bir hücrede virgülle ayrılmış bir listeye dönüştürülmüştür.
Sonuç:
- Basitlik ve performans için Excel 2019/365'te TEXTJOIN kullanın.
- Uyumluluk için CONCAT + IF dizi yöntemi tüm sürümlerde çalışır.
- Formülsüz tek seferlik görevler için Kutools, tıkla-yap çözümler sunar.
- Tam otomasyon veya karmaşık kurallar için bir VBA makrosu en esnektir.
Excel sürümünüz, görevin sıklığı ve eklentiler veya VBA konusundaki rahatlığınızla uyumlu yöntemi seçin. Bu optimize edilmiş tekniklerle donanımlı bir şekilde, herhangi bir sütunu düzenli, virgülle ayrılmış bir listeye dönüştürmek çok kolay hale gelir. Eğer daha fazla Excel ipucu ve püf noktası keşfetmeye ilgi duyuyorsanız, web sitemiz size Excel'i ustalaşmanız için binlerce eğitim sunmaktadır.
İlgili Makaleler:
- Excel'de ay ismini sayıya dönüştürme
- Askeri saati standart saate dönüştürme
- Excel'de bir hücreyi birden fazla hücre/satıra dönüştürme
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin, daha önce hiç yaşamadığınız bir verimlilik deneyimini yaşayın. Kutools for Excel, üretkenliğinizi artıracak ve zamanı kaydetmenizi sağlayacak300’den fazla gelişmiş özellik sunar. En çok ihtiyaç duyduğunuz özelliği almak için buraya tıklayın...
Office Tab, Office’e sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint’te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Aynı pencere içerisinde yeni sekmelerde birden fazla belge açın veya oluşturun, yeni pencerelerde açmak yerine.
- Verimliliğinizi %50 artırın, her gün yüzlerce fare tıklamasını sizin için azaltın!