Soru BİR DEĞERİN KAÇ ADIMDA BİR TEKRARLANDIĞINI BULMA

shhnyldrr

Altın Üye
Katılım
6 Haziran 2021
Mesajlar
90
Excel Vers. ve Dili
365-türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
Merhaba,

Ekte örnek bir dosya bırakıyorum. Basit sayılar serisinden oluşmaktadır. Seri 1 için örneğin 2 sayısı kaç adımda bir gelmiş bunu nasıl formülize edebiliriz. Yani 2 sayısı bu seri-1 içerisinde 5. adımda, 5.adımdan sonra 3. adımda, 3. adımdan sonra 12. adımda bir gelmiş demek istiyoruz. 2 değeri için almamız gereken çıktı örneğin ( 5,3,12)

şimdiden emeklerinize sağlık
 

Ekli dosyalar

  • 10.4 KB Görüntüleme: 4

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Aşağıdaki kodları bir modüle ekleyin:

PHP:
Private Function tekerrur(ara As Range, alan As Range)
For Each hucre In alan
    If hucre = ara Then
        If sonuc = "" Then
            sonuc = hucre.Row - alan.Row + 1
        Else
            sonuc = sonuc & ", " & hucre.Row - alan.Row + 1
        End If
    End If
Next
tekerrur = sonuc
End Function
F2 hücresinde aşağıdaki formülü kullanın:

=tekerrur($C$1;D2:D50)
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,417
Excel Vers. ve Dili
excel 2010
Merhaba

Merhaba,

Ekte örnek bir dosya bırakıyorum. Basit sayılar serisinden oluşmaktadır. Seri 1 için örneğin 2 sayısı kaç adımda bir gelmiş bunu nasıl formülize edebiliriz. Yani 2 sayısı bu seri-1 içerisinde 5. adımda, 5.adımdan sonra 3. adımda, 3. adımdan sonra 12. adımda bir gelmiş demek istiyoruz. 2 değeri için almamız gereken çıktı örneğin ( 5,3,12)
Emin misiniz?
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
2 sayısı 10 adımda var, 11 adımda var 1 adım sonra gelmiş, 15 adım sonra bir daha gelmiş şeklinde gibi anladım. Eğer öyle ise

F2 hücresine

Kod:
=KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F2))
yazıp CTRL+SHIFT+ENTER tuşlarına basınız.

F3 hücresine de

Kod:
=KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F3))-KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F2))
yazıp CTRL+SHIFT+ENTER tuşlarına basıp aşağı doğru çekiniz.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,417
Excel Vers. ve Dili
excel 2010
Merhaba

Alternatif olsun
C++:
Sub say()
For i = 2 To Range("D1048576").End(3).Row
If Cells(i, "D") = Cells(1, "C") Then
Range("F2") = Range("F2") & "," & i - 1
End If
Next
End Sub
 
  • Beğen
Reactions: Ali

shhnyldrr

Altın Üye
Katılım
6 Haziran 2021
Mesajlar
90
Excel Vers. ve Dili
365-türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
2 sayısı 10 adımda var, 11 adımda var 1 adım sonra gelmiş, 15 adım sonra bir daha gelmiş şeklinde gibi anladım. Eğer öyle ise

F2 hücresine

Kod:
=KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F2))
yazıp CTRL+SHIFT+ENTER tuşlarına basınız.

F3 hücresine de

Kod:
=KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F3))-KÜÇÜK(EĞER($D$2:$D$100=$C$1;SATIR($D$2:$D$100)-SATIR($D$2)+1);SATIRSAY($F$2:F2))
yazıp CTRL+SHIFT+ENTER tuşlarına basıp aşağı doğru çekiniz.
Ali bey merhaba, aslında anlatmak istediğim tam olarak şu:
2 sayısı 10 adımda var, 11 adımda var 1 adım sonra gelmiş, 15 adım sonra bir daha gelmiş
çıktıda;
10
1
4

şeklinde yani bulduktan sonra sayıyı baştan sayması
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Yukarıda verdiğim formül istediğinize göre hesaplar.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,084
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Ali Bey'in formülüne alternatif olarak yukarda verdiğim kodu (Kullanıcı tanımlı fonksiyon) aşağıdakiyle değiştirirseniz istediğiniz gibi sonuç verir:
PHP:
Private Function tekerrur(ara As Range, alan As Range)
bas = 1
For Each hucre In alan
    If hucre = ara Then
        If sonuc = "" Then
            sonuc = hucre.Row - bas
        Else
            sonuc = sonuc & ", " & hucre.Row - bas
        End If
        bas = hucre.Row
    End If
Next
tekerrur = sonuc
End Function
 

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,895
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
F2 ye başka F3 başka formül verdim. O şekilde yapılmamış gibi gözüküyor.
 

shhnyldrr

Altın Üye
Katılım
6 Haziran 2021
Mesajlar
90
Excel Vers. ve Dili
365-türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
F2 ye başka F3 başka formül verdim. O şekilde yapılmamış gibi gözüküyor.
ALİ Bey çok teşekkür ederim değerli katkılarınız için. F3 için yazdığınızı bu amaçla yazdığınızı anlayamadım.

@yusuf bey sizlerede desteğiniz için teşekkür ederim.

KONU ÇÖZÜLDÜ.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,417
Excel Vers. ve Dili
excel 2010
Merhaba
C++:
Sub say()
k = 0
For i = 2 To Range("D1048576").End(3).Row
If Cells(i, "D") = Cells(1, "C") Then
Range("F2") = Range("F2") & "," & (i - 1 - k)
k = i - 1
End If
Next
End Sub
Bizim üstünde deneme yaptığımız dosya ile sizin üstünde çalıştığınız dosya acaba aynı mı?
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,417
Excel Vers. ve Dili
excel 2010
İlk mesajımda eklenen örnek dosya ile istenen sonucun farklı olduğunu belirtip "emin misiniz?" diye sordum,
Basit 2 makro ile alternatif çözüm önerdim,
"Bizim üstünde deneme yaptığımız dosya ile sizin üstünde çalıştığınız dosya acaba aynı mı?" diye sordum,
Hiçbirinde dönüş yapılmadı.
Ne diyelim?
Arkadaşların çözümünü ben de beğendim, hayırlı olsun.
 

shhnyldrr

Altın Üye
Katılım
6 Haziran 2021
Mesajlar
90
Excel Vers. ve Dili
365-türkçe
Altın Üyelik Bitiş Tarihi
02-07-2025
İlk mesajımda eklenen örnek dosya ile istenen sonucun farklı olduğunu belirtip "emin misiniz?" diye sordum,
Basit 2 makro ile alternatif çözüm önerdim,
"Bizim üstünde deneme yaptığımız dosya ile sizin üstünde çalıştığınız dosya acaba aynı mı?" diye sordum,
Hiçbirinde dönüş yapılmadı.
Ne diyelim?
Arkadaşların çözümünü ben de beğendim, hayırlı olsun.
merhaba,

gelen cevap mesajları aynı anda geldiği için gözden kaçmış olmalı.

1)Makro ile çözüm önerileriniz için teşekkür ederim. Amacım soruda da belirttiğim üzere formülize etmekti.
2)Dosyalar aynı değil,


ilgi, alaka ve desteğiniz için teşekkür ederim.
 

uzmanamele

Uzman
Uzman
Katılım
26 Eylül 2007
Mesajlar
9,417
Excel Vers. ve Dili
excel 2010
merhaba,

gelen cevap mesajları aynı anda geldiği için gözden kaçmış olmalı.

1)Makro ile çözüm önerileriniz için teşekkür ederim. Amacım soruda da belirttiğim üzere formülize etmekti.
2)Dosyalar aynı değil,


ilgi, alaka ve desteğiniz için teşekkür ederim.
Forumda soru, öneri, cevap vs karşılıklı etkileşim içinde olursa forum amacına ulaşır. Diyalog yerine monolog olması hoş olmuyor.
Benim umurumda değil, sorulara verdiğim cevaplar birilerinin işini görüyorsa ne ala, çözümü bulabiliyorsam zevk aldığım için kendi adıma çözüm arıyorum.

İlk verdiğim cevap ile sonuncu arasında 2 saat geçmiş, ard arda gelen mesaj yok, umursamazlık var.
"şehven" değil "sehven" yazılır.

Önceki mesajlarımda etkileşim olmadığına göre lütfen bu yazdıklarıma cevap vererek gereksiz etkileşimde bulunmayalım.
 
Üst