• DİKKAT

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

Aynı değeri taşıyan ve yan yana bulunan hücre adedini bulmak

  • Konbuyu başlatan Konbuyu başlatan Jeeday
  • Başlangıç tarihi Başlangıç tarihi
Katılım
7 Mayıs 2006
Mesajlar
367
Excel Vers. ve Dili
2019 İngilizce
Bir satırda yan yana bulunan birçok verinin içinde aynı olan hücre adedini saydırmak istiyorum...

Detay ektedir...
 

Ekli dosyalar

KTF isterseniz;
Kod:
Function ARKAARKAYA(alan)
For Each aln In alan
    If kişi = aln And aln <> "" Then
        say = say + 1
    Else
        If say > adt Then
            sonuç = kişi & ", " & say & " kere"
            adt = say
        ElseIf say = adt Then
            sonuç = kişi & " ve " & sonuç
            adt = say
        End If
        kişi = aln
        say = 1
    End If
Next
ARKAARKAYA = sonuç
End Function
Kod:
=ARKAARKAYA(A2:AI2)
şeklinde kullanabilirsiniz.
 
peki ya kişi adını biz verirsek?

yani x kişi en fazla kaç kere arka arkaya kazandı gibi
 
Aşağıdakini deneyiniz.
Kod:
Function PEŞPEŞE(alan, kişi)
For Each aln In alan
    If kişi = aln And aln <> "" Then
        say = say + 1
        If say > sonuç Then sonuç = say
    Else
        say = 0
    End If
Next
PEŞPEŞE = sonuç
End Function
Kod:
=PEŞPEŞE(A2:AI3;"ALİ")
şeklinde kullanabilirsiniz.
 
şöyle bir sıkıntı var. aynı çalışma kitabında farklı makro çalıştırdığımda ve adım adım izlediğimde PEŞPEŞE olan fonksiyonda çalışıyor ve boşu boşuna kasmalara neden oluyor. nasıl bu durumun önüne geçebiliriz?
 
KTF de bir tür formül olduğu için sayfada her değişiklik yapıldığında hesaplama seçenekleri otomatik ise formül hesaplaması yapacaktır.
Formüller sekmesinden hesaplama seçeneklerini manuel yaparsanız karşılaştığınız problemi önleyebilirsiniz.
 
Merhabalar. Dosyanızı incelemedim ve VBA kod'u da denemiş değilim.
Ancak belge yavaşlamasıyla ilgili olarak aşağıdaki hususu söylemek istedim.


Genel hesaplama ayarını "manual" yapıp;
-- ya Sheets("......").Calculate gibi bir kodla belli sayfayı/sayfaları hesaplatmak
-- ya da Range("....").Calculate gibi bir kodla belli alanı/alanları hesaplatmak
şeklinde bir şeyler işinize yarayabilir.
 
Son düzenleme:
Geri
Üst