Çözüldü Metin ortasından sıralama

Katılım
21 Temmuz 2025
Mesajlar
3
Excel Vers. ve Dili
Excel 2016 TR
Elimde olan mail listesinde xxxx@şirketadı.com şeklinde mailler var. Bu mailleri @ işaretinden sonraki kısmı a dan z ye olacak şekilde nasıl sıralayabilirim? Dosyada düzensiz şekilde aynı şirketin birden çok maili olabiliyor, fakat isimleri @ işaretinden sonra geliyor bu yüzden onları alt alta almak için böyle bir sıralama yapmak istiyorum.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,852
Excel Vers. ve Dili
Microsoft 365 Tr-64
Önce @ işaretinden ikiye ayırın. Bunu hızlı doldur ile de yapabilirsiniz formülle de.
Sonra ikiye ayrılmış sütunuları sıralayıp tekrar birleştirebilirsiniz.
Excel versiyonunuzu da profinize eklerseniz farklı çözümler de gelebilir. 2010,2016,365 gibi
 
Katılım
21 Temmuz 2025
Mesajlar
3
Excel Vers. ve Dili
Excel 2016 TR
excel 2016 kullanıyorum, çok giriş seviyesi excel biliyorum, biraz daha detaylı anlatabilir misiniz?
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,561
Excel Vers. ve Dili
Ofis 365 Türkçe
Örnek dosyanız olmadığı için maillerin sadece A sütununda diğer sütunların da boş olduğu varsayılarak :
A sütununu Veri sekmesinden Metni Sütunlara Ayır ile (ayraç @ yapılarak) A sütununda mail adı, B sütununda ise Domain Adı ayrışmış olur.
Sonra Veri sekmesinden B sütununa göre sıralama yaptırılır.
Başka sütunda ise bu iki sütunu araya @ koyarak birleştirilir.
Örneğin C1 sütunu : A1 & "@" & B1 gibi
Ömer Beyin önerisi de bu yönde ama Hızlı doldur özelliğini önermiştir.
Varsayım olarak yine B ve diğer sütunların boş olduğu varsayılmıştır.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,491
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
e-posta adreslerinin A1 den itibaren aşağıya doğru sıralandığını varsayarsak B1'e aşağıdaki formülü kopyalayın ve aşağıya doğru çoğaltın.

Kod:
=PARÇAAL(A1; BUL("@"; A1) + 1; UZUNLUK(A1))
Daha sonra B sütununu alfabetik sıralayın. A sütununda bulunan e-posta adresleri de sıralanmış olacaktır.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,979
Excel Vers. ve Dili
Office 365 Türkçe
Makro ile denemek isterseniz

Kod:
Sub DomainleriAlVeSirala()
    Dim ws As Worksheet
    Dim sonSatir As Long
    Dim i As Long
    
    Set ws = ThisWorkbook.Sheets(1) ' Gerekirse sayfa adını değiştirin
    sonSatir = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' B sütununa domainleri yaz
    For i = 1 To sonSatir
        If InStr(ws.Cells(i, "A").Value, "@") > 0 Then
            ws.Cells(i, "B").Value = Mid(ws.Cells(i, "A").Value, InStr(ws.Cells(i, "A").Value, "@") + 1)
        Else
            ws.Cells(i, "B").Value = "" ' Boş veya hatalıysa temizle
        End If
    Next i
    
    ' Sadece B sütununu sırala, A sabit kalır
    ws.Sort.SortFields.Clear
    ws.Sort.SortFields.Add Key:=ws.Range("B1:B" & sonSatir), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

    With ws.Sort
        .SetRange ws.Range("A1:B" & sonSatir)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub
 
Üst