Sanirsam Döngülü Bir Formul Olacak

Katılım
6 Nisan 2010
Mesajlar
15
Excel Vers. ve Dili
2010 Professional / Türkçe
Arkadaslar oncelikle hepinize selamlar olsun... Ben araniza yeni katildim umarim karsilikli guzel paylasimlarimiz olur.

Benim sorum soyle;

A sutunundaki yazdigim sayilarin hepsine tek ve cift olmasina gore bir hesap yapacak. Dahada detaylandirayim;

A1 Hücresi 16 olsun.

Çift sayı olduğu için direkt 2 'ye bolecek tâki tek sayı veya 1 olana kadar.
Tek sayı olduğunda buna uygulayacagi islem [ ( A1 * 3 ) + 1 ] / 2 işlemini uygulayacak
Yine tek ve çift olmasına göre aynı işlemi uygulayacak.
Ne zaman ki 1 sayısına ulaşana kadar boyle devam edecek.
Bana B1 hücresinde kaç kez çift tek kontrolü yaptığını söyleyecek ve C1 satırında sonucun 1 olduğunu veya 1 olmadığını söyleyecek.
Kısacası bu formülle 1 yapabilip yapılamayan sayıları bulacam.

A sutunu boyunca her hücrede bunu yapmasını istiyorum.
Yardımlarınız için şimdiden teşekkür ederim.


ÖRNEK :

A1 Hücresi 3 olsun.

Tek sayı olduğu için

3*3 + 1 = 10
10 / 2 = 5

Yine tek olduğu için

5*3 + 1 = 16
16 / 2 = 8

Çift Sayı olduğu için

8 / 2 = 4

Çift sayı olduğu için

4 / 2 = 2

Çift sayı olduğu için

2 / 2 = 1

1 sayısına ulaştığı için duracaktır.

6 kez çift tek veya 1 mi diye kontrol yapıldı. Bunun B1 hücresine yazacak
Sonuçta 1 sayısı bulunduğu için C1 hücresine de TAMAM yazacak
 
Son düzenleme:
Katılım
6 Nisan 2010
Mesajlar
15
Excel Vers. ve Dili
2010 Professional / Türkçe
Arkadaslar yardim edermisiniz lutfen...
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bu istediğiniz en kolay VBA ile yapılabilir. Böyle bir çözüm işinizi görürse eğer ekli dosyayı inceleyebilirsiniz.
 

Ekli dosyalar

Katılım
6 Nisan 2010
Mesajlar
15
Excel Vers. ve Dili
2010 Professional / Türkçe
"Levent Menteşoğlu" Cok ama cok tesekkur ederim. Ellerine saglik.

Levent Bey; bir sey soracagim. Sizin yaptiginizda bir kac sayi sonucsuz kaliyordu, ama hesap makinasiyla islem yaptigimda sonuclu oldugunu buldum.

Ornegin 76.031.615 sayısı...


Once acaba cokmu buyuk geldi diye dusundum ama 260.107.658'i hesaplayabilen excel neredeyse 4'te 1'i olan 76.031.615'te neden hata verir?
 
Son düzenleme:

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Sayıların bu kadar büyük olacağını keşke baştan belirtseydiniz. Sorun mod fonksiyonunun limitinin aşılmasından kaynaklanıyor. 76.031.615 sayısı sürekli tek sayı sonucunu verdiğinden (sayı*3+1)/2 işleminden elde edilen değer mod fonksiyonunun limitinin dışına çıkıyor. Dosyadaki kodu aşağıdaki ile değiştirirseniz istediğiniz sonucu elde edebilirsiniz.

Kod:
Sub tekcift()
For a = 1 To [a65536].End(3).Row
c = 0
deger = Cells(a, "a")
10 If deger = 1 Or deger = 0 Then GoTo 20
If deger / 2 <> Int(deger / 2) Then
deger = (deger * 3 + 1) / 2
Else
deger = deger / 2
End If
c = c + 1
GoTo 10
20 Cells(a, "b") = c + 1 & " kez tekmi çiftmi kontrolü yapılmıştır."
Next
End Sub
Not: Bu arada ek bir bilgi vereyim. Araştırmalarımdan elde ettiğim sonuca göre VBA içindeki mod fonksiyonun limiti 2.147.483.647 sayısıdır. Excelde hazır olarak bulunan mod fonksiyonunda ise limiti, 2003 versiyonu için 268.435.455 olarak buldum.
 
Katılım
6 Nisan 2010
Mesajlar
15
Excel Vers. ve Dili
2010 Professional / Türkçe
Levent Bey, çok ama çok teşekkür ederim. Ellerinize sağlık.
 
Üst