Sırala formülü

  • Konuyu başlatan Konuyu başlatan hakki83
  • Başlangıç tarihi Başlangıç tarihi
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Excel 365 ile gelen Dinamik Dizi formüllerine alternatif olarak, desteklemeyen sürümlerde nasıl işlem yapabileceğinize dair aşağıya yararlı linkler bırakıyorum.
İncelerseniz faydanıza olacaktır.

İyi çalışmalar,

SIRALA | Excel Formülleri - Fonksiyonlar, İşlevler, Formüller

Teşekkürler, örnek dosyadaki A sütunundaki karışık olan sütunu, C sütunundaki gibi sıralamayı, (2013 ve öncesi için) nasıl formülle yapabiliriz?
 
Ekli dosyalar
Excel 365 versiyonu ile çok farklı bir yapıya büründü. Bu sisteme Dinamik Excel denmekte. Bahsettiğiniz ihtiyacı, sizinde belirttiğiniz gibi SIRALA formülü ile kolayca yapma imkanına sahip. Sebebi algoritmasının dinamik bir şekilde güncellenmesi.

Geleneksel Excel ile bu işlemi farklı alternatifler ile yapabilirsiniz lakin bunun için bir yardımcı sütun ile sonuca erişebilirsiniz.

Konuyla ilgili örnek dosyamızı Formülle Kelimeye Göre Sıralama isimli linkten indirebilirsiniz.

Sizin dosyanıza gelirsek...
B1 hücresine:
=EĞERSAY($A$1:$A$18;"<="&A1) yazıp aşağı doğru çekiniz. (Yardımcı sütun kullanıldı)

C1 hücresine:
=İNDİS($A$1:$A$18;KAÇINCI(SATIRSAY($C$1:C1);$B$1:$B$18;0)) yazıp aşağı doğru çekiniz.
 
Excel 365 versiyonu ile çok farklı bir yapıya büründü. Bu sisteme Dinamik Excel denmekte. Bahsettiğiniz ihtiyacı, sizinde belirttiğiniz gibi SIRALA formülü ile kolayca yapma imkanına sahip. Sebebi algoritmasının dinamik bir şekilde güncellenmesi.

Geleneksel Excel ile bu işlemi farklı alternatifler ile yapabilirsiniz lakin bunun için bir yardımcı sütun ile sonuca erişebilirsiniz.

Konuyla ilgili örnek dosyamızı Formülle Kelimeye Göre Sıralama isimli linkten indirebilirsiniz.

Sizin dosyanıza gelirsek...
B1 hücresine:
=EĞERSAY($A$1:$A$18;"<="&A1) yazıp aşağı doğru çekiniz. (Yardımcı sütun kullanıldı)

C1 hücresine:
=İNDİS($A$1:$A$18;KAÇINCI(SATIRSAY($C$1:C1);$B$1:$B$18;0)) yazıp aşağı doğru çekiniz.
Çok teşekkürler, denedim ve oldu.

C sütununa yazacağım formülde 1. hücrede başlık olduğundan dolayı
A1, B1 ve C1 leri
A2, B2 ve C2 olarak değiştirdim, sanıyorum doğru olmuştur.

Sayın yöneticim bu konuyla ilgili son sorum şudur; yardımcı sütun kullanmadan tek formülle sıralama yapma imkanımız var mıdır? Eğer varsa çok kullanışlı olacaktır.
 
Sözkonusu Excel olunca "olmaz" kelimesini kullanmayı çok doğru bulmuyorum ama verdiğim çözümün yapısı gereği konuşacak olursam, olmaz. Alternatif için bakmak lazım.

Çünkü Geleneksel Excel'de dizileri sizin oluşturmanız gerekir. Bu nedenle de sıralamadan oluşan bir yardımcı sütun ile çözüm sundum. Bu durum Dinamik Excel'le gelen Dinamik Diziler kapsamında geliştirilmiş ve otomatik oluşturulan TAŞMA aralıkları ile yardımcı sütunlara duyulan ihtiyaca gerek kalmamıştır.

Yine de alternatif için deneme yapacağım. Olumlu sonuca ulaşırsam yazarım.
 
Selamlar,
@Admin in düşüncelerine katılıyorum.
Vermiş olduğu yardımcı kolonlu formül sizin örnekteki yapıya uygun olmasına rağmen, yapıda değişiklikler olduğunda formül düzgün çalışmayacaktır. Bu durumda, Formülde köklü değişikliler yapılmalıdır.

Şöyle ki;
Örneğinizde A2 : A18 arasında, sadece METİN ifadeler var ve bunların tümü Benzersiz....
Bu durumda, C2 hücresine DİZİ formül olarak
=EĞERHATA(İNDİS($A$2:$A$18;KAÇINCI(SATIRSAY($1:1);EĞERSAY($A$2:$A$18;"<="&$A$2:$A$18);0));"")
formülünü yazıp aşağıya doğru kopyalayın....
Hücrelerden birisini silip BOŞ bıraktığınızda, ya da Tekrar eden değer yazdığınızda, ya da herhangi bir hücreye SAYI yazdığınızda formülün düzgün çalışmayacağını gözlemleyebilirsiniz.

Soruya gelebilecek diğer kriterleri de eklersek
a - Listede bazı hücreler BOŞ olabilir.
b - Bazı hücreler çeşitli yerlerde TEKRAR edebilmektedir. Sıralamada, tekrar edenler de peşpeşe gösterilmeli.
c - Hücrelerdeki değerler sadece METİN değil SAYI da içermektedir.
d - Satır sayısı da değişkendir. Artabilir ya da azalabilir.

Bu durumların ele alındığı örnek ektedir. (örnek dokumanınız 39. satıra kadar BOŞ - METİN - SAYI değerleri içerecek şekilde düzenlendi)
*** Gerek karmaşık formüllerin sadeleştirilmesi ve gerekse de dinamik yapı için ad tanımlamaları kullanıldı.

1 - Yardımcı kolon kullanılarak çözüm verildi.
Yard. Kolon B2 hücresinde
=EĞER(A2="";"";TOPLA.ÇARPIM(--(A2>List))+TOPLA.ÇARPIM(--($A2:A$2=A2)))
Yard. Kolonla Liste için E2 hücresinde
=EĞERHATA(İNDİS(List;KAÇINCI(KÜÇÜK(Yard1;SATIR(A1));Yard1; );"")

2 - Tek Formülle Liste için ise, G2 hücresine DİZİ formül olarak
=EĞERHATA(İNDİS(List;KAÇINCI(KÜÇÜK((List<>"")*alan;SATIRSAY($1:1)+TOPLA(--EBOŞSA(List)));(List<>"")*alan;0));"")

Fakat, şunu söylemeliyim ki, DİZİ formül kullanımları Exceli yoracaktır. Satır adetleri arttıkça kasılma yavaşlama problemleri artacaktır.
Bu nedenle, ya, basitçe verileri C kolonuna kopyalayıp sıralama yaptırmak ya da Makro ile sıralama yaptırmak tercih edilmelidir.
 
Ekli dosyalar
Kıymetli hocam, sanırım yeni örneğimizin konusu belli oldu. :)
Yine okullarda ders olarak okutulacak nitelikte detaylar ile uğraşmışsınız.

Elleriniz dert görmesin.

Çok teşekkür ediyorum.
Detaylar için de, bu sıralarda Benzersiz listelemelerle uğraşmanın getirdiği edinim diyebiliriz...
Böyle bir örneği ExcelDepo için de hazırlarım inşallah..
Sevgi ve saygılar....
 
Merhabalar bende fikrimi belirteyim.
Tabi Sayın @52779 'un alternatif veri türlerine (tekrarlı-boşluklu-sayı/metin vs) yönelik çözümleri gayet şık. (y)

Sayın @Admin 'in formülü üzerinden, alternatif ve esasında DİZİ FORMÜLÜ olarak uygulanıp tek formülle sonuç almak mümkün.
Bu çözümün benzerini yine Sayın @52779 vermiş.

DİZİ FORMÜLLERİ - AD TANIMLAMASI ilişkisiyle ilgili bir şey söyleyeyim.
AD TANIMLAMASI kısmında DİZİ FORMÜLÜ uygulanamaz gibi görünse de
bu formül kullanılarak örneğin alfabetik ADIyla AD TANIMLAMASI oluşturulup,
ilk hücreye =alfabetik formülü yazılıp aşağı doğru kopyalanarak sonuç alınabilir.

VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(1 satır)

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