Ürünün Geliş Tarihlerini Sondan Başa Listele - Microsoft Excel


A sütununda ürünlerin ve B sütununda da tarihlerin bulunduğu listede E1 hücresindeki ürün bilgisi kriterinden hareketle tarihleri sondan başa listeleme işlemi yapıyor.

Veri

Konu ile ilgili örnek bir veri setine aşağıdaki bağlantıdan ulaşabilirsiniz.

Formülü malzeme sayıları veri setine göre çalıştıracağız.

meyveler ve geliş tarihleri veri seti

Formül


=METNEÇEVİR(EĞER(SATIR(A1)>EĞERSAY($A$2:$A$37;$E$1);"";BÜYÜK(EĞER($A$2:$A$37=$E$1;B$2:B$37);SATIR(A1)));"gg.aa.yyyy")

Kullanım

  1. Listenin A ve B sütununda olduğundan, kriter bilgisinin de E sütununda olduğundan emin olun.
  2. Formülü filtreleme yapılmasını istediğiniz yere yapıştırın.
  3. F2 tuşuna basın.
  4. Ctrl + Shift + Enter klavye kısayolunu kullanarak dizi formülü olarak yeniden hesaplatın.
  5. Formülün son halini gerektiği kadar aşağıya doğru kopyalayın.
Formül (Açıklamalı)


'--------------------------------------------------
'Formülün son halini tarih biçimine çeviriyoruz. 
'Aksi halde hücreleri yeniden biçimlendirmemiz 
'gerekiyor.
'--------------------------------------------------
=METNEÇEVİR
(
    '--------------------------------------------------
    'Biçimlendirme olayını saymazsak olay bir EĞER 
    'formülü üzerinde dönüyor. Bu kapsayıcı EĞER 
    'formülü şu işi yapıyor: Bizim çalıştığımız
    'filtrelenmiş verinin dışına çıkılırsa işlem 
    'yapılmamasını sağlıyor. Aksi durumda ise verilen 
    'kritere göre ürünlerin geliş tarihini büyükten 
    'küçüğe (sondan başa) sıralayacak şekilde listeliyor.
    'Yani asıl formülün düzgün bir şekilde çalışabilmesi
    'için kontrol görevini üstleniyor.
    '--------------------------------------------------
    EĞER
    (
        '--------------------------------------------------
        'Burada şartımızı belirliyoruz. Önemli bir kısım.
        'Eğer benim 30 satırlık bir verim varsa ve filtre
        'sonucunda 5 tane veri kalıyorsa 5'ten sonraki
        'sayılar için yapılacak işlemler benim için 
        'anlamsız oluyor. Bu yüzden bunun önüne geçmek
        'istiyorum.
        '
        'Nasıl yapabilirim?
        'Şimdi biz formülü bir yere yazıp aşağı doğru
        'kopyalıyoruz. Kopyaladıkça filtre verileri de
        'sırayla eklenmeye başlıyor. Eğer ben filtrelenmiş
        'verilerin toplam sayısını bulabilirsem ve bunu da
        'birden başlayıp birer birer artan bir sayaçla
        'kontrol edebilirsem formülün nerede durması 
        'gerektiğini bilebilirim. İşte bunu yapabilmek için
        'EĞERSAY ve SATIR formüllerinden faydalanarak bir
        'şart yazdık. EĞERSAY ile filtrelenmiş verilerin
        'toplam sayısını buluyoruz. SATIR(A1) formülü ile
        'de ana formülü 1'den başlayarak kontrol ettiriyoruz.
        'Formül her aşağı kopyalandığında bu sayı birer birer
        'artacak ve (yukarıdaki örneğe göre) 6 olduğu zaman
        'işlem yapılmamasını gerektiğini bileceğim.
        '--------------------------------------------------
        SATIR(A1)>EĞERSAY($A$2:$A$37;$E$1);

        '--------------------------------------------------
        'Eğer yukarıdaki şart doğruysa boş geç.
        '--------------------------------------------------
        "";

        '--------------------------------------------------
        'BÜYÜK formülü ilk parametresindeki EĞER dizi formülü
        'sonucunda oluşmuş dizi içeriğini büyükten küçüğe
        'doğru sıralamaya yarıyor. BÜYÜK formülü iki 
        'parametreden oluşuyor ve ilk parametrede sıralama
        'yapılacak diziyi giriyoruz, ikinci parametrede de 
        'dizideki kaçıncı en büyük veriyi seçeceğimizi 
        'belirtiyoruz. İkinci parametrenin başlangıç değeri
        'bir formül, SATIR(A1) formülü.
        '
        'Bu SATIR(A1) formülü BÜYÜK formülü her aşağıya doğru 
        'kopyalandığında sırasıyla birinci, ikinci, 
        'üçüncü, vs. değeri getirmemize yardımcı olacak.
        'Bizim ana formülümüz de her aşağıya doğru 
        'kopyalandığında en sondaki tarihten en baştaki 
        'tarihe kadar tarih getirme işlemi yapacak.
        '
        'Ayrıca BÜYÜK formülünün verileri alt alta sıralamak
        'gibi bir güzelliği de var. Normalde ilk parametredeki
        'eğer şartını dizi formülü olarak çalıştırırsanız
        'yine ilgili verileri gösterir ama diğer verileri de
        'YANLIŞ olarak gösterir. EĞER formülü ile listelenmiş
        'veride şartı sağlayan veriler bir tarih sayısı iken
        'diğer veriler bu şekilde değil. Böylelikle sayı olanlar
        'normal bir şekilde listelenirken diğer veriler hata
        'vereceek ve onlar da en altta kalacaklar.
        '--------------------------------------------------
        BÜYÜK
        (
            EĞER
            (
                $A$2:$A$37=$E$1;
                B$2:B$37
            );
            SATIR(A1)
        )
    );
    
    '--------------------------------------------------
    'METNEÇEVİR formülünün ikinci parametresi.
    'Sonuç metnimizi gg.aa.yyyy şeklinde biçimlendirmek
    'istediğimizi bu parametreyle belirtiyoruz.
    '--------------------------------------------------
    "gg.aa.yyyy"
)

Etiketler
microsoft excel açıklamalı içerik microsoft excel formül