• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

HÜCRE İÇİ FORMATLAMA

Katılım
20 Temmuz 2012
Mesajlar
23
Excel Vers. ve Dili
2007
Bir hücre içinde birleşik olarak yazılmış isimleri büyük harf öncesine bir boşluk vererek nasıl yeni hücreye yazabilirim:
Örneğin:

AhmetMehmet
HasanHüseyin
AyşeFatma
KalenderEşref
ŞahinurDöngü
MelahatMustafaoğlu

benzeri yazılmış tek hücre içindeki yazı grubunu ikinci büyük harften önce bir boşlukla nasıl yan hücreye alırım ve bu işlemi alt alta binlerce hücreye otomatik olarak nasıl çekerim..
teşekkür ederim.
 
Çift isim, üç isim ve/veya çift soyisim olma durumu olacak mı?
 
Merhaba,
Eğer soruyu yanlış anlamadımsa, iki ya da üç veya daha fazla isim olması fark etmez.
Verilerinizin A sütununda olduğu ve A1 den başladığı varsayılmıştır. Sonucu B sütununa yazar
C++:
Sub Test()
ss = Cells(Rows.Count, "A").End(3).Row
For j = 1 To ss
    For I = 1 To Len(Cells(j, 1).Value)
        x = Mid(Cells(j, 1).Value, I, 1)
        If x = UCase(x) Then
            st = st & " " & x
         Else
         st = st & x
        End If
    Next I
    Cells(j, 2) = Trim(st)
    st = ""
Next j
End Sub
 
Ben de verilenler doğrultusunda şöyle hazırlamıştım. Alternatif olsun.
C++:
Sub isimler()
    'Ben A1:A6 aralığında verileriniz olduğunu düşünerek yazdım
    'Değilse A1:A6 kısmını kendinize uyarlarsınız
    Dizi = Range("A1:A6").Value
    ReDim Liste(1 To UBound(Dizi))
    For i = 1 To UBound(Dizi)
        temp1 = LCase(Left(Dizi(i, 1), 1)) & Right(Dizi(i, 1), Len(Dizi(i, 1)) - 1)
        For k = 2 To Len(Dizi(i, 1))
            bak = Mid(Dizi(i, 1), k, 1)
            If Asc(bak) >= 65 And Asc(bak) <= 90 Then
                Liste(i) = Left(Dizi(i, 1), k - 1) & " " & Right(Dizi(i, 1), Len(Dizi(i, 1)) - k + 1)
                Exit For
            End If
        Next k
    Next i
    'Eğer aynı sütunda yani A sütununda düzeltme yapacaksanız B1 yerine A1 yazabilrisiniz
    'Ya da benzer şekilde kendi dosyanıza uyarlarsınız
    Range("B1").Resize(UBound(Liste), 1) = Application.Transpose(Liste)
End Sub
 
Bir hücre içinde birleşik olarak yazılmış isimleri büyük harf öncesine bir boşluk vererek nasıl yeni hücreye yazabilirim:
Örneğin:

AhmetMehmet
HasanHüseyin
.....

benzeri yazılmış tek hücre içindeki yazı grubunu ikinci büyük harften önce bir boşlukla nasıl yan hücreye alırım......

Makro yerine Formülle çözüm isteyenler için bir çözüm olsun.
Veriler A1 hücresinden itibaren A kolonunda...
B1 hücresine yazılır ve aşağıya doğru kopyalanır.
Kod:
=DEĞİŞTİR(A1;KAÇINCI(1;İNDİS(--ÖZDEŞ(BÜYÜKHARF(PARÇAAL(A1;SATIR($2:$100);1));PARÇAAL(A1;SATIR($2:$100);1));;0);0)+1;0;" ")
Burada, SATIR($2:$100) ibaresi daima SATIR($2:$100) olmalıdır. Satır ekleme/çıkarma yapılma olasılığı varsa eğer SATIR($2:$100) yerine SATIR(DOLAYLI("2:100")) şeklinde kullanılabilir.

Excel365 kullanıcıları için ise C1 hücresine yazılır ve sonuçlar dökülmeli gelecektir.
(üstte verilen formülün dökülmeli olanıdır... Örnekteki gibi Sadece 1 isim ve 1 Soyad durumuna yöneliktir).
Formül, Veriler A1:A11 aralığı için yazıldı.
Kod:
=MAP(A1:A11;LAMBDA(x;LET(a;PARÇAAL(x;SATIR(2:100);1);DEĞİŞTİR(x;KAÇINCI(1;İNDİS(--ÖZDEŞ(BÜYÜKHARF(a);a);;0);0)+1;0;" "))))
Formüldeki MAP(A1:A11 kısmındaki hücre aralığını gerçek dosyadaki hücre aralığına uygun şeklinde yazmak yeterli olacaktır.
Not : Yukarıda yazılan SATIR(2:100) olayı bu formül için de geçerlidir.

Eğer 2 ya da 3 ya da daha fazla isim olması durumunu da Excel365 işlevleriyle formüle edersek şöyle olabilir.
Kod:
=MAP(A1:A11;LAMBDA(x;LET(a;PARÇAAL(x;SATIR(1:100);1);KIRP(ARALIKBİRLEŞTİR(EĞER(ÖZDEŞ(BÜYÜKHARF(a);a);" "&a;a))))))
Not : Burada da yazılan SATIR(1:100) satır eklense/çıkarılsa da daima SATIR(1:100) olmalıdır.




A



B



C



1


AhmetMehmet

Ahmet Mehmet

Ahmet Mehmet


2


HasanHüseyin

Hasan Hüseyin

Hasan Hüseyin


3


AyşeFatma

Ayşe Fatma

Ayşe Fatma


4


KalenderEşref

Kalender Eşref

Kalender Eşref


5


ŞahinurDöngü

Şahinur Döngü

Şahinur Döngü


6


MelahatMustafaoğlu

Melahat Mustafaoğlu

Melahat Mustafaoğlu


7


Hasanİyigün

Hasan İyigün

Hasan İyigün


8


HüseyinŞengül

Hüseyin Şengül

Hüseyin Şengül


9


CemilÖzyurt

Cemil Özyurt

Cemil Özyurt


10


MustafaÜlker

Mustafa Ülker

Mustafa Ülker


11


MehmetÇetintaş

Mehmet Çetintaş

Mehmet Çetintaş
 
Son düzenleme:
Geri
Üst