aynı karakterler arasındaki sayıları almak

Katılım
18 Ocak 2011
Mesajlar
13
Excel Vers. ve Dili
excel 2010 türkçe
merhabalar

*87.71*86.9565*86.9079*86.94*86.9079*84.7457*83.7361*85.01*83.7361

*1.6666*1.673*1.6785*1.6666*1.673*1.6656*1.6785*1.712*1.7637*1.7637

alt alta böyle giden satırlar bulunuyor ben bunun içinde "*" karakteri arasındaki rakamları sağa doğru çekerek ayrı ayrı sütun yapacağım(örnek: 87.71 86.9565 86.9079.... gibi) formülleri denedim ancak * karakterinin yeri değiştiği zaman sayılar yıldızlı olabiliyor

kullandığım formül bu
=EĞER(C24=" ";0;PARÇAAL(C24;(BUL("*";C24;1)+1);6))

mesela şöyle sonuçlar çıkıyor
87.71*8

bunu nasıl çözebilirim
teşekkürler
 

erkan1903

Altın Üye
Katılım
23 Temmuz 2007
Mesajlar
74
Excel Vers. ve Dili
Professional Plus 2013 / Türkçe
Altın Üyelik Bitiş Tarihi
11-11-2027
Formül yerine şu şekilde de yapabilirsiniz (belki biliyorsunuzdur)
- İlgili alanı seçiniz
- Veri / Metni Sütunlara Çevir
- Sınırlandırılmış ---> ileri
- Ayırıcılar da Diğeri tıklayıp yanına * karakterini yazıp Son' u tıklıyoruz.

Kolay gelsin
 
Katılım
18 Ocak 2011
Mesajlar
13
Excel Vers. ve Dili
excel 2010 türkçe
Formül yerine şu şekilde de yapabilirsiniz (belki biliyorsunuzdur)
- İlgili alanı seçiniz
- Veri / Metni Sütunlara Çevir
- Sınırlandırılmış ---> ileri
- Ayırıcılar da Diğeri tıklayıp yanına * karakterini yazıp Son' u tıklıyoruz.

Kolay gelsin
öncelikle teşekkür ederim. onu biliyorum onda her seferde tekrar yapmak gerekir sanırım. çünü bu hücrelerdeki sayılar ve karakterler sürekli değişiyor.
 
Katılım
18 Ocak 2011
Mesajlar
13
Excel Vers. ve Dili
excel 2010 türkçe
sorunu çözdüm

birinci sütuna =EĞER(ESAYIYSA(BUL("*";D24;1));SOLDAN(D24;BUL("*";D24;1)-1);"")

yazdım * a kadar olan karakterleri aldım

ikinci sütuna

=PARÇAAL(D24;UZUNLUK(E24)+2;100)

yazarak yıldıza kadar olan karakterleri sildim.

sonra ilk hareketi tekrar yaptım

=EĞER(ESAYIYSA(BUL("*";D24;1));SOLDAN(D24;BUL("*";D24;1)-1);"")

yazdım * a kadar olan karakterleri aldım

sonra bu sütünları sağa doğru kopyalayarak elde ettim
 

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.

Alternatif olsun.

Verinin D1 hücresinde oduğu varsayıldı.
Aşağıdaki formülü hücreye uygulayın ve sağa doğru kopyalayın.
.
Kod:
=[COLOR="red"]EĞER[/COLOR]([COLOR="red"]EHATALIYSA[/COLOR]([COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]($D1;"*";"|";[COLOR="red"]SÜTUN[/COLOR](A$1));1));"";[COLOR="red"]PARÇAAL[/COLOR]($D1;[COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]($D1;"*";"|";[COLOR="red"]SÜTUN[/COLOR](A$1));1)+1;([COLOR="red"]EĞERHATA[/COLOR]([COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]($D1;"*";"|";[COLOR="red"]SÜTUN[/COLOR](B$1));1);255))-([COLOR="red"]BUL[/COLOR]("|";[COLOR="red"]YERİNEKOY[/COLOR]($D1;"*";"|";[COLOR="Red"]SÜTUN[/COLOR](A$1));1)+1)))
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Makro ile basit alternatifler sunayım.

Hücrede #YOK yazılması sorun olmaz ise tek satırda bu kodla çözüm bulunabilir. Verinin A1 hücresinde olduğu varsayılmıştır.

Kod:
[SIZE="2"]Sub Emre()
    Range("B1:Z1") = Split([A1], "*")
End Sub[/SIZE]
Ya da ne kadar * işareti var ise o kadar sütuna ayırmak için bu kodlar kullanılabilir..
Döngü ile A sütunundaki tüm veriler için aynı işlem uygulanır.

Kod:
[SIZE="2"]Sub Emre()
    For i = 1 To Range("A65536").End(3).Row
        hucre = Cells(i, "A").Value
        netuz = Len(hucre) - Len(Replace(hucre, "*", "")): sut = 2
        Range(Cells(i, sut), Cells(i, sut + netuz)) = Split(hucre, "*")
    Next i
End Sub[/SIZE]
 
Üst