Excel formülü: Birden çok eşleşmeyi ayrı satırlara ayıklayın -

İçindekiler

Özet

Ayrı hücrelere birden çok eşleşmeyi ayıklamak için, ayrı satırlarda, INDEX ve SMALL'a dayalı bir dizi formülü kullanabilirsiniz. Gösterilen örnekte, E5'teki formül şöyledir:

(=IFERROR(INDEX(names,SMALL(IF(groups=E$4,ROW(names)-MIN(ROW(names))+1),ROWS($E$5:E5))),""))

Bu bir dizi formülüdür ve Control + Shift + Enter ile girilmelidir.

Formülü ilk hücreye girdikten sonra, diğer hücreleri doldurmak için aşağı ve çapraz sürükleyin.

Açıklama

Not: Bu formül iki adlandırılmış aralık kullanır: "adlar" C4: C11'e ve "gruplar" B4: B11'e karşılık gelir. Bu isimler de yukarıdaki ekran görüntüsünde tanımlanmıştır.

Bu formülün özü şudur: KÜÇÜK işlevi "n'inci eşleşmeye" karşılık gelen bir satır numarası elde etmek için kullanıyoruz. Satır numarasını elde ettikten sonra, onu sadece o satırdaki değeri döndüren INDEX fonksiyonuna aktarırız.

İşin püf noktası, SMALL'un bu bitte IF tarafından dinamik olarak oluşturulmuş bir diziyle çalışıyor olmasıdır:

IF(groups=E$4,ROW(names)-MIN(ROW(names))+1)

Bu kod parçası, E4'teki değer için adlandırılmış aralık "grupları" nı test eder. Bulunursa, formülün bu bölümüyle oluşturulan bir dizi satır numarasından "normalleştirilmiş" bir satır numarası döndürür:

ROW(names)-MIN(ROW(names))+1

Sonuç, bir eşleşmenin olduğu satır numaralarını ve yoksa FALSE'u içeren bir dizidir. Dizi şuna benzer:

(1; YANLIŞ; YANLIŞ; YANLIŞ; YANLIŞ; 6; YANLIŞ)

Bu dizi KÜÇÜK olur. SMALL (nth) için k değeri, genişleyen bir aralıktan gelir:

ROWS($E$5:E5)

Sonuç tablosunun altına kopyalandığında, aralık genişleyerek k (nth) 'nin artmasına neden olur. KÜÇÜK işlevi, dizi olarak adlandırılmış aralık "adlar" ile INDEX işlevine satır_sayısı olarak sağlanan her eşleşen satır numarasını döndürür.

Hataları işleme

SATIRLAR, k için var olmayan bir değer döndürdüğünde, KÜÇÜK bir #SAYI hatası verir. Bu, tüm maçlar gerçekleştikten sonra gerçekleşir. Hatayı bastırmak için, hatayı yakalamak ve boş bir dizge ("") döndürmek için EĞERHATA kullanırız.

Ilginç makaleler...