Excel SORTBY işlevi - formülle özel sıralama

  • Bunu Paylaş
Michael Brown

Bugün yeni dinamik dizi SORTBY işlevinin sözdizimine ve tipik kullanımlarına yakından bakacağız. Excel'de bir formülle özel sıralama yapmayı, bir listeyi rastgele sıralamayı, hücreleri metin uzunluğuna göre düzenlemeyi ve daha fazlasını öğreneceksiniz.

Microsoft Excel, metin verilerini alfabetik olarak, tarihleri kronolojik olarak ve sayıları en küçükten en büyüğe veya en yüksekten en düşüğe doğru sıralamak için çeşitli yollar sunar. Ayrıca kendi özel listelerinize göre sıralamanın bir yolu da vardır. Geleneksel Sıralama işlevine ek olarak Excel 365, verileri formüllerle sıralamak için yepyeni bir yol sunar - çok kullanışlı ve kullanımı inanılmaz derecede basit!

    Excel SORTBY işlevi

    Excel'deki SORTBY işlevi, bir aralığı veya diziyi başka bir aralıktaki veya dizideki değerlere göre sıralamak için tasarlanmıştır. Sıralama bir veya birden çok sütuna göre yapılabilir.

    SORTBY, Microsoft 365 ve Excel 2021 için Excel'de bulunan altı yeni dinamik dizi işlevinden biridir. Sonuç, komşu hücrelere yayılan ve kaynak veriler değiştiğinde otomatik olarak güncellenen dinamik bir dizidir.

    SORTBY fonksiyonunun değişken sayıda argümanı vardır - ilk ikisi zorunlu, diğerleri isteğe bağlıdır:

    SORTBY(dizi, by_array1, [sort_order1], [by_array2, sort_order2],...)

    Dizi (gerekli) - sıralanacak hücre aralığı veya değer dizisi.

    By_array1 (gerekli) - sıralama yapılacak aralık veya dizi.

    Sort_order1 (isteğe bağlı) - sıralama düzeni:

    • 1 veya atlanmış (varsayılan) - artan
    • -1 - azalan

    By_array2 / Sort_order2 , ... (isteğe bağlı) - sıralama için kullanılacak ek dizi / sıra çiftleri.

    Önemli not! Şu anda SORTBY işlevi yalnızca Microsoft 365 abonelikleri ve Excel 2021 ile kullanılabilir. Excel 2019, Excel 2016 ve önceki sürümlerde SORTBY işlevi kullanılamaz.

    SORTBY işlevi - Hatırlanması gereken 4 şey

    Bir Excel SORTBY formülünün doğru çalışması için dikkat edilmesi gereken birkaç önemli nokta vardır:

    • By_array argümanları ya bir satır yüksekliğinde ya da bir sütun genişliğinde olmalıdır.
    • Bu dizi ve tüm by_array argümanları uyumlu boyutlara sahip olmalıdır. Örneğin, iki sütuna göre sıralama yaparken, dizi , by_array1 ve by_array2 aynı sayıda satıra sahip olmalıdır; aksi takdirde #VALUE hatası oluşur.
    • SORTBY tarafından döndürülen dizi nihai sonuçsa (bir hücreye çıktı olarak verilir ve başka bir işleve aktarılmazsa), Excel dinamik bir dökülme aralığı oluşturur ve bunu sonuçlarla doldurur. Bu nedenle, formülü girdiğiniz hücrenin altında ve/veya sağında yeterince boş hücre olduğundan emin olun, aksi takdirde #SPILL hatası alırsınız.
    • Kaynak veriler her değiştiğinde SORTBY formüllerinin sonuçları otomatik olarak güncellenir. Ancak, formülde başvurulan dizinin dışına eklenen yeni girişler, siz dizi Başvurulan dizinin otomatik olarak genişlemesi için, kaynak aralığı bir Excel tablosuna dönüştürün veya dinamik bir adlandırılmış aralık oluşturun.

    Excel'de temel SORTBY formülü

    İşte Excel'de SORTBY formülünü kullanmanın tipik bir senaryosu:

    Diyelim ki, şu özelliklere sahip bir proje listeniz var Değer Projeleri değerlerine göre ayrı bir sayfada sıralamak istiyorsunuz. Diğer kullanıcıların sayıları görmesi gerekmediğinden, projelere Değer sonuçlardaki sütun.

    Bu görev, aşağıdaki argümanları sağladığınız SORTBY fonksiyonu ile kolayca gerçekleştirilebilir:

    • Dizi A2:A10'dur - çünkü Değer sütununu sonuçlarda görüntülenmek üzere dizinin dışında bırakırsınız.
    • By_array1 B2:B10'dur - sıralama ölçütü Değer .
    • Sort_order1 -1 - azalan, yani en yüksekten en düşüğe doğru.

    Argümanları bir araya getirdiğimizde bu formülü elde ederiz:

    =SORTBY(A2:B10, B2:B10, -1)

    Basitlik açısından, formülü aynı sayfada kullanıyoruz - D2'ye girin ve Enter tuşuna basın. Sonuçlar otomatik olarak gerektiği kadar hücreye "yayılır" (bizim durumumuzda D2:D10). Ancak teknik olarak, formül yalnızca ilk hücrededir ve D2'den silinmesi tüm sonuçları silecektir.

    Başka bir sayfada kullanıldığında, formül aşağıdaki şekli alır:

    =SORTBY(Sayfa1!A2:A10, Sayfa1!B2:B10, -1)

    Nerede Sayfa1 orijinal verileri içeren çalışma sayfasıdır.

    Excel'de SORTBY işlevini kullanma - formül örnekleri

    Aşağıda SORTBY'nin kullanımına ilişkin birkaç örnek daha bulacaksınız; bunların yararlı ve aydınlatıcı olacağını umuyoruz.

    Birden çok sütuna göre sıralama

    Yukarıda tartışılan temel formül verileri tek bir sütuna göre sıralar. Peki ya bir sıralama düzeyi daha eklemeniz gerekirse?

    Örnek tablomuzda iki alan olduğunu varsayalım, Durum (sütun B) ve Değer (sütun C) 'ye göre sıralamak istiyoruz. Durum alfabetik olarak ve sonra Değer Azalan.

    İki sütuna göre sıralamak için, sadece bir çift daha by_array / sort_order Argümanlar:

    • Dizi A2:C10'dur - bu sefer sonuçlara üç sütunu da dahil etmek istiyoruz.
    • By_array1 B2:B10 ise - önce, sıralama Durum .
    • Sort_order1 1'dir - A'dan Z'ye alfabetik olarak sıralayın.
    • By_array2 C2:C10 ise - o zaman, sıralama Değer .
    • Sort_order2 -1 ise - en büyükten en küçüğe doğru sıralayın.

    Sonuç olarak aşağıdaki formülü elde ederiz:

    =SORTBY(A2:B10, B2:B10, 1, C2:C10, -1)

    Bu da verilerimizi tam olarak talimat verdiğimiz şekilde yeniden düzenler:

    Excel'de formülle özel sıralama

    Verileri özel bir sırada sıralamak için Excel'in Özel Sıralama özelliğini kullanabilir ya da bu şekilde bir SIRALAMA EŞLEŞTİR formülü oluşturabilirsiniz:

    SORTBY(dizi, MATCH( range_to_sort , custom_list , 0))

    Veri setimize daha yakından baktığınızda, muhtemelen projeleri alfabetik olarak sıralamak yerine "mantıksal" durumlarına göre, örneğin önemlerine göre sıralamayı daha uygun bulacaksınız.

    Bunu yapmak için, önce istenen sıralama düzeninde özel bir liste oluşturuyoruz ( Devam ediyor , Tamamlandı , Beklemede ) her bir değeri E2:E4 aralığındaki ayrı bir hücreye yazarak.

    Ve sonra, yukarıdaki genel formülü kullanarak, aşağıdakiler için kaynak aralığını sağlarız dizi (A2:C10), ve Durum için sütun range_to_sort (B2:B10) için oluşturduğumuz özel liste ve custom_list (E2:E4).

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0))

    Sonuç olarak, projeleri durumlarına göre tam olarak gerektiği gibi sıraladık:

    Özel listeye göre ters sırada sıralamak için sort_order1 Tartışma:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E4, 0), -1)

    Ve projeleri ters yönde sıralayacaksınız:

    Kayıtları her bir durum içinde ayrıca sıralamak mı istiyorsunuz? Sorun değil. Formüle bir sıralama düzeyi daha eklemeniz yeterlidir, örneğin Değer (C2:C10) ve istenen sıralama düzenini tanımlayın, bizim durumumuzda artan:

    =SORTBY(A2:C10, MATCH(B2:B10, E2:E5, 0), 1, C2:C10, 1)

    SORTBY formülünün Excel'in Özel Sıralama özelliğine göre en büyük avantajı, orijinal veriler her değiştiğinde formülün otomatik olarak güncellenmesi, bu özelliğin ise her değişiklikte temizleme ve yeniden sıralama gerektirmesidir.

    Bu formül nasıl çalışır?

    Daha önce de belirtildiği gibi, Excel'in SORTBY işlevi yalnızca boyutları kaynak diziyle uyumlu olan "sıralama ölçütü" dizilerini işleyebilir. Kaynak dizimiz (C2:C10) 9 satır ve özel liste (E2:E4) yalnızca 3 satır içerdiğinden, bunu doğrudan by_array Bunun yerine, 9 satırlı bir dizi oluşturmak için MATCH işlevini kullanırız:

    MATCH(B2:B10, E2:E5, 0)

    Burada, kullandığımız Durum sütununu (B2:B10) arama değerleri olarak ve özel listemizi (E2:E5) arama dizisi olarak kullanırız. Son bağımsız değişken, tam eşleşmeleri aramak için 0 olarak ayarlanır. Sonuç olarak, her biri belirli bir listenin göreli konumunu temsil eden 9 sayıdan oluşan bir dizi elde ederiz. Durum özel listedeki değer:

    {1;3;2;1;3;2;2;1;2}

    Bu dizi doğrudan by_array SORTBY fonksiyonunun argümanıdır ve verileri dizinin elemanlarına karşılık gelen sırayla yerleştirmeye zorlar, yani önce 1'lerle temsil edilen girdiler, sonra 2'lerle temsil edilen girdiler ve bu şekilde devam eder.

    Excel'de bir formülle rastgele sıralama

    Önceki Excel sürümlerinde, bu eğitimde açıklandığı gibi RAND işleviyle rastgele bir sıralama yapabilirsiniz: Excel'de bir listeyi rastgele sıralama.

    Yeni Excel'de, SORTBY ile birlikte daha güçlü bir RANDARRAY işlevi kullanabilirsiniz:

    SORTBY( dizi , RANDARRAY(ROWS( dizi )))

    Nerede dizi karıştırmak istediğiniz kaynak verilerdir.

    Bu genel formül, tek bir sütundan oluşan bir liste için olduğu kadar çok sütunlu bir aralık için de çalışır.

    Örneğin, bir listeyi A2:A10 şeklinde rastgele sıralamak için şu formülü kullanın:

    =SORTBY(A2:A10, RANDARRAY(ROWS(A2:A10)))

    Satırları bir arada tutarak A2:C10'daki verileri karıştırmak için bunu kullanın:

    =SORTBY(A2:C10, RANDARRAY(ROWS(A2:C10)))

    Bu formül nasıl çalışır?

    RANDARRAY işlevi, sıralama için kullanılacak rastgele sayılardan oluşan bir dizi üretir ve bunu by_array Kaç tane rastgele sayı üretileceğini belirtmek için, ROWS işlevini kullanarak kaynak aralığındaki satır sayısını sayar ve bu sayıyı SORTBY'nin sıralar RANDARRAY'in argümanı. İşte bu!

    Not: Selefi gibi RANDARRAY de uçucu bir fonksiyondur ve çalışma sayfası her yeniden hesaplandığında yeni bir rastgele sayı dizisi oluşturur. Sonuç olarak, verileriniz sayfadaki her değişiklikte başvurulacaktır. Otomatik başvuruyu önlemek için Özel Yapıştır > Değerler formülleri değerleriyle değiştirme özelliği.

    Hücreleri dize uzunluğuna göre sıralama

    Hücreleri içerdikleri metin dizelerinin uzunluğuna göre sıralamak için, her hücredeki karakter sayısını saymak üzere LEN işlevini kullanın ve hesaplanan uzunlukları by_array SORTBY argümanı. sort_order argümanı, tercih edilen sıralama düzenine bağlı olarak 1 veya -1 olarak ayarlanabilir.

    Metin dizesine göre en küçükten en büyüğe doğru sıralamak için:

    SORTBY(dizi, LEN(dizi), 1)

    Metin dizesine göre en büyükten en küçüğe doğru sıralamak için:

    SORTBY(dizi, LEN(dizi), -1)

    İşte bu yaklaşımı gerçek veriler üzerinde gösteren bir formül:

    =SORTBY(A2:A7, LEN(A2:A7), 1)

    Burada A2:A7, metin uzunluğuna göre artan sırada sıralamak istediğiniz orijinal hücrelerdir:

    SORTBY vs. SORT

    Yeni Excel dinamik dizi işlevleri grubunda, sıralama için tasarlanmış iki tane vardır. Aşağıda, en temel farklılıkları ve benzerlikleri ve her birinin en iyi ne zaman kullanılacağını listeliyoruz.

    • SORT işlevinin aksine, SORTBY "sort by" dizisinin kaynak dizinin bir parçası olmasını gerektirmez ve sonuçlarda görünmesine gerek yoktur. Dolayısıyla, göreviniz bir aralığı başka bir bağımsız diziye veya özel bir listeye göre sıralamak olduğunda, SORTBY kullanılacak doğru işlevdir. Bir aralığı kendi değerlerine göre sıralamak istiyorsanız, SORT daha uygundur.
    • Her iki fonksiyon da birden fazla sıralama seviyesini destekler ve her ikisi de diğer dinamik dizi ve geleneksel fonksiyonlarla birlikte zincirlenebilir.
    • Her iki işlev de yalnızca Excel 365 ve Excel 2021 kullanıcıları tarafından kullanılabilir.

    Excel SORTBY işlevi çalışmıyor

    SORTBY formülünüzün bir hata döndürmesi durumunda, bunun nedeni büyük olasılıkla aşağıdaki nedenlerden biridir.

    Geçersiz by_array bağımsız değişkenleri

    Bu by_array argümanları tek bir satır veya tek bir sütun olmalı ve boyut olarak dizi argümanı. Örneğin, eğer dizi 10 satır vardır, by_array ayrıca 10 satır içermelidir. Aksi takdirde bir #VALUE! hatası oluşur.

    Geçersiz sort_order bağımsız değişkenleri

    Bu sort_order argümanları yalnızca 1 (artan) veya -1 (azalan) olabilir. Herhangi bir değer atanmazsa, SORTBY varsayılan olarak artan sıralamayı kullanır. Başka bir değer atanırsa, #VALUE! hatası döndürülür.

    Sonuçlar için yeterli alan yok

    Diğer dinamik dizi işlevlerinde olduğu gibi, SORTBY sonuçları otomatik olarak yeniden boyutlandırılabilir ve güncellenebilir bir aralığa döker. Tüm değerleri görüntülemek için yeterli boş hücre yoksa, bir #SPILL! hatası atılır.

    Kaynak çalışma kitabı kapalı

    Bir SORTBY formülü başka bir Excel dosyasına başvuruyorsa, her iki çalışma kitabının da açık olması gerekir. Kaynak çalışma kitabı kapalıysa, bir #REF! hatası oluşur.

    Excel sürümünüz dinamik dizileri desteklemiyor

    Excel'in dinamik öncesi bir sürümünde kullanıldığında, SORT işlevi #NAME? hatası döndürür.

    Özel sıralama ve diğer şeyleri yapmak için Excel'de SORTBY işlevi bu şekilde kullanılır. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmek dileğiyle!

    İndirmek için pratik çalışma kitabı

    Excel SORTBY formülleri (.xlsx dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.