Excel BENZERSİZ Formülünü Ekleme

Excel BENZERSİZ Formülünü Ekleme

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...

bychilavert

Kullanıcı
Excel Versiyonu
Excel 2016
Excel Sürümü
32 Bit
Excel Dili
Türkçe
Merhaba

Excel'de kullanılan =BENZERSİZ() formülü benim kullanmakta olduğum Microsoft Office Pro Plus 2016'da yok bunu nasıl ekleyebilirim yada bu tip eksik olan formülleri eklemenin bir yolu var mı?

Screenshot_1.webp
 
Merhaba,

İlgili fonksiyonlar yeni versiyonlarda geçerlidir.

Bunu için iki yolunuz var.

1- Yeni versiyonu edinmek
2- İlgili fonksiyonun görevini yapabilecek kullanıcı tanımlı fonksiyonu makro kodlarıyla kendinizin yazması. Bu yöntemde tasarladığınız fonksiyonu eklenti olarak kaydederek tüm Excel dosyalarınızda kullanabilirsiniz.
 
Boş bir excel dosyası açınız ve aşağıdaki kodu boş bir modüle uygulayınız.

Sonra dosyanızı kayıt ederken eklenti olarak (xla) ya da (xlam) uzantısı ile bir isim vererek kayıt ederek ve sonrasında aktif hale getirerek tüm dosyalarınızda kullanabilirsiniz,

Dosyayı eklenti olarak kaydettikten sonra yeniden boş bir excel dosyası açın. Dosya-Seçenekler-Eklentiler-Git bölümünden kaydettiğiniz ismi bulup aktif hale getiriniz. Sonrasında tüm dosyalarınızda yerleşik işlev gibi kullanabilirsiniz.


Bu fonksiyon ilgili alandaki boş hücreleri ve filtrelenmiş hücreleri dikkate almaz. Sadece görünen hücreleri dikkate alır.

Sıralama işlemi opsiyoneldir. Varsayılan olarak A-Z şeklinde sıralama yapar.

0 - Parametresi alanın kendi orijinal sıralamasına göre değer döndürür.
1 - Parametresi A-Z şeklinde sıralama yapar.
2 - Parametresi Z-A şeklinde sıralama yapar.

Kaçıncı_Benzersiz parametresi ile çıkan sonuçtan istediğiniz sıradaki benzersiz veriye ulaşabilirsiniz.

Kullanım şekli;

=BENZERSİZ(A1:A100;1;1)

VBA:
Option Explicit

Function BENZERSİZ(Alan As Range, Kaçıncı_Benzersiz As Long, Optional Sırala As Byte = 1)
    Dim Dizi As Object, Hücre As Range, Liste As Variant
 
    Application.Volatile True
 
    Set Dizi = CreateObject("System.Collections.ArrayList")
 
    For Each Hücre In Alan
        If Hücre.Value <> "" Then
            If Hücre.Height <> 0 Then
                If Dizi.Contains(UCase(Replace(Replace(Hücre.Value, "ı", "I"), "i", "İ"))) = False Then
                    Dizi.Add UCase(Replace(Replace(Hücre.Value, "ı", "I"), "i", "İ"))
                End If
            End If
        End If
    Next
 
    Select Case Sırala
        Case 0
        Case 1: Dizi.Sort
        Case 2: Dizi.Reverse
    End Select
 
    Liste = Dizi.ToArray
 
    BENZERSİZ = Liste(Kaçıncı_Benzersiz - 1)
End Function
 
Çözüm
Hocam etkin alsında sizde calıstı mı?
Evet sorunsuz çalıştı.
Oldu hocam çok teşekkür ederim. Uzantının illaki xls mi olması gerekir? benim xlsm di o yüzden çalışmadı galiba.
xlsm ile de sorunsuz çalışması lazım. 2007 versiyonu ile Excel'de radikal bir değişim oldu. Önceki versiyonlarda makrolu olsun olmasın uzantı xls idi. 2007 versiyonu ile klasik Excel çalışmaları için xlsx makrolu çalışmalar için ise xlsm oldu.
@Ali Kırksekiz hocamız Excel aleminin eski tüfeklerinden olduğu için dosyası pek muhtemel 2007 yılından önce yapıldığından dolayı xls uzantılıdır @selis
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Benzer Konular Popüler İçerikler Daha Fazlası
Geri
Üst