• DİKKAT

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

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

Katılım
6 Haziran 2021
Mesajlar
51
Excel Vers. ve Dili
365-türkçe
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

  • f.xlsx
    f.xlsx
    10.4 KB · Görüntüleme: 4
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)
 
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?
 
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.
 
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
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ı
 
Yukarıda verdiğim formül istediğinize göre hesaplar.
 
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
 
F2 ye başka F3 başka formül verdim. O şekilde yapılmamış gibi gözüküyor.
 
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Ü.
 
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ı?
 
İ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.
 
İ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.
 
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.
 
Geri
Üst