Hücre içindeki bilgiyi bölmek

X

xlsx

Misafir
Selam arkadaslar
Hücre icersinde önce soyadı sonra adı yazıyor.Liste uzun.ve bu soyadı adı formatını yine hücre icinde olacak sekilde adı soyadı formatında yazmak ıstıyoruz.önr. mevcut durum: Hitit; Arzu bunu Arzu Hitit olarak çevirmek istiyorum.aradaki virgülü de kaldırmak mümkün mü formülle
yardımınızı beklıyorum arkadaslar. :yardim:
 
X

xxrt

Misafir
Normal Olarak Makro ile Birleşik Ad ve Soyadlar için,bu kodu kullanabilirsin.A1 Hücresinde Bulunan xxrt excel isimi olsun.Bunu Soyad ve ada göre ayırmak için.Yani
A1 Hücresinde xxrt excel olsun.Aşağıdaki kodu bir düğmeye uyguladığınızda
Kod:
Sub ayır()
b = Split(Range("a1").Value, " ")
If UBound(b) > 1 Then
Range("a2") = b(0) & " " & b(1)
Range("a3") = b(2)
Else
Range("a2") = b(1) & " " & b(0)
End If
End Sub
A2 Hücresinde excel xxrt olarak gelecektir.

Yada Yada....Veri>Metni Sütuna Dönüştür>Sınırlandırılmı>Diğer kutusuna ;işareti koy Bukadar...Aşağıdakide onda yazılmış kod..

Yalnız Siz Soyadının yanındaki ; işaretide ayır derseniz..
Kod:
Sub otomatikayır()
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
        :=";", FieldInfo:=Array(Array(1, 1), Array(2, 1)), TrailingMinusNumbers:=True
End Sub
Olarak yazmanız gerek.Bu Zaten Makro kaydette yazıldı..Yoksa bu kodları kendimiz yazmaya kalksak kafayı yeriz,yani kalan kısmını.. :hihoho:
 
X

xlsx

Misafir
Tşk.İlk kod sonrası işlem yeterli oldu.virgül kısmını da ben hallettim.Fonksiyon olarak düşünmüştüm ancak sanırım kodla daha mantıklı olacak.O zaman buradan da bu yazışmalarımızın Macro'ya taşınması gerekir sanırım :lol: :hey:
tşk..xxrt
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,294
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Gerçi xxrt' nin çözümleri işinizi görmüştür ancak, soruyu fonksiyonlar bölümüne sorduğunuz için bir cevap vermek istedim.

Eğer veriler standart olarak;

Soyad; İsim

formatında girilmişse ve ikinci bir isim yoksa ( Göksoy; Dündar Can gibi...)

aşağıdaki formul de bu işi görür;

=MID(A1;FIND(" ";A1;1)+1;98) & " " & LEFT(A1;FIND(" ";A1;1)-2)

Formül, A1 hücresi için çalışır. Diğer hücrelere de kopyalayarak, listenin tamamı için sonuç alabilirsiniz.
 
X

xlsx

Misafir
Bunu da denedim bu da gercekten başarılı sonuç verdi.tşk.
Fonksiyonla nasıl olur diye düşünmüştüm bu da işimi görecek.tekrar tşk :) :hey:
 
Katılım
3 Ağustos 2004
Mesajlar
87
aşağıdaki fonksiyonu deneyip kendi kullanımına göre uyarlayabilirsin

Function syadi(isim As String)
On Error Resume Next
Dim i, x, a, ii, xx, aa As Integer
Dim sd, ax As String
a = Len(isim)
If Val(a) < 1 Then syadi = ""
For i = a To 1 Step -1
If Mid(isim, i, 1) = Chr(32) Then Exit For
x = x + 1
Next
sd = Trim(UCase(Mid(isim, (a - x), x + 1)))
For ii = a To 1 Step -1
If Mid(isim, ii, 1) = Chr(32) Then Exit For
xx = xx + 1
Next
ax = StrConv(Trim(Mid(isim, 1, (a - xx))), vbProperCase)
syadi = sd & Chr(32) & ax
End Function
 
G

Guest

Misafir
Merhaba

Bu işlemin bir diğer çözümü ise Excel menüden data menüsünü seçin buradan text to columns seçeneğini seçin ekrana gelen pencereden delimited kutucuğunu işaretleyerek Next butonuna basın değişen pencereden sadece other kutucuğunu işaretleyerek other kutucuğunu sağındaki kutucuğa ; (noktalı virgül) işateti koyun ve next butonuna basın ve sonra fihish butonuna basın excelde istediğiniz isimler ;'e göre birbirinden ayrı hücre olarak ayrılacaktır.
 

Haluk

𐱅𐰇𐰼𐰚
Katılım
7 Temmuz 2004
Mesajlar
12,294
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Türker' Alıntı:
Merhaba

Bu işlemin bir diğer çözümü ise Excel menüden data menüsünü seçin buradan text to columns seçeneğini seçin ..........
Orjinal soruda istenenler:

1) Soyad; İsim formatının İsim Soyad şekline çevrilmesi

2) Bu iş yapılırken çıkan sonucun tek bir hücrede yer alması
 
Katılım
8 Temmuz 2004
Mesajlar
254
Excel Vers. ve Dili
office 2007-mssql 2008 R2
FARKLI BİR ÇÃ?ZÜM(BİRAZ UZUN AMA DEÐİÞİK FİKİR VEREBİLİR) :keyif:

=BİRLEÞTİR(PARÇAAL(A1;((MBUL(";";A1;1))+1);(UZUNLUK(A1)-(MBUL(";";A1;1))));(" ");((PARÇAAL(A1;1;(MBUL(";";A1;1))-1))))

(HİTİT; ARZU A1 HÜCRESİNDE OLDUÐU DÜÞÜNÜLMÜÞTÜR)
 
X

xlsx

Misafir
İlk formülle işlem sonuclandı ancak diger alternatif çözümler icin de tşk ederim.Bu sayede excel'in farklı fonksiyonlarıyla da çözüme ulaşmanın mümkün oldugunu görebiliyoruz.
Türker'in söyledigi aynı hücre icinde gercekleşmez.Ayrıca soyadı adı formatında degıl Ad Soyad formatında ters cevırmemız de gerekecek,Bizim sorun icin uygun olmayacak ama farklı sorunlar icin gercekten kullandıgımız pratik bir yöntem zaten.Tşk
WAKKASSSS'ın formülü denemedim ama dedigim gibi farklı çözümler her zaman mevcut excel'de degıl mı.?
 
Üst