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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Çift isim, üç isim ve/veya çift soyisim olma durumu olacak mı?
 

dEdE

Destek Ekibi
Destek Ekibi
Katılım
1 Temmuz 2005
Mesajlar
2,605
Excel Vers. ve Dili
Ofis 2013 TR 64 Bit
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
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 
Katılım
21 Aralık 2016
Mesajlar
722
Excel Vers. ve Dili
Office 365 TR
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:
Üst