Excel

Birden çok eşleşmeyi ayrı satırlara ayıklayın

Extract Multiple Matches Into Separate Rows

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

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



 
{= IFERROR ( INDEX (names, SMALL ( IF (groups=E, ROW (names)- MIN ( ROW (names))+1), ROWS ($E: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 yukarı sürükleyin.





excel metni tarih formatına dönüştür
Açıklama

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

Bu formülün özü şudur: 'n'inci eşleşmeye' karşılık gelen bir satır numarası almak için KÜÇÜK işlevini kullanıyoruz. Satır numarasına sahip olduğumuzda, onu, o satırdaki değeri döndüren INDEX işlevi işlevine iletiyoruz.



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

Excel'de nasıl çubuk grafik yaparsınız
 
 IF (groups=E, ROW (names)- MIN ( ROW (names))+1)

Bu snippet, E4'teki değer için adlandırılmış 'gruplar' aralığını test eder. Bulunursa, formülün bu kısmıyla 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ç, eşleşme olan yerlerde satır numaralarını, eşleşmeyen yerlerde YANLIŞ içeren bir dizidir. Dizi şöyle bir şeye benziyor:

{1FALSEFALSEFALSEFALSE6FALSE}

excel'de açılır listeleri nasıl oluşturursunuz

Bu dizi SMALL'a girer. KÜÇÜK (nth) için k değeri bir genişleyen aralık :

 
 ROWS ($E:E5)

Sonuç tablosuna kopyalandığında, aralık genişler ve k (n.)'nin artmasına neden olur. KÜÇÜK işlevi, INDEX işlevine satır_sayısı olarak sağlanan eşleşen her satır numarasını, dizi olarak adlandırılmış aralık 'names' ile birlikte 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 eşleşmeler gerçekleştikten sonra olur. Hatayı bastırmak için EĞERHATA kullanırız ve hatayı yakalarız ve bir boş dize ('').

Yazar Dave Bruns


^