• DİKKAT

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

aynı karakterler arasındaki sayıları almak

  • Konbuyu başlatan Konbuyu başlatan eumer
  • Başlangıç tarihi Başlangıç tarihi
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
 
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
 
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.
 
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
 
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)))
 
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]
 
Geri
Üst