Формула на Excel: ФИЛТЪР върху горните n стойности -

Съдържание

Обща формула

=FILTER(data,range>=LARGE(range,n))

Обобщение

За да филтрирате набор от данни, за да покажете най-добрите n стойности, можете да използвате функцията FILTER заедно с функцията LARGE. В показания пример формулата във F5 е:

=FILTER(data,score>=LARGE(score,3))

където данните (B5: D16) и резултатът (D5: D16) са наречени диапазони.

Обяснение

Тази формула използва функцията FILTER за извличане на данни въз основа на логически тест, конструиран с функцията LARGE.

Функцията LARGE е лесен начин за получаване на n-тата най-голяма стойност в диапазон. Просто предоставете диапазон за първия аргумент (масив) и стойност за n като втори аргумент (k):

=LARGE(range,1) // 1st largest =LARGE(range,2) // 2nd largest =LARGE(range,3) // 3rd largest

В този пример логиката за FILTER е изградена с този фрагмент:

score>=LARGE(score,3)

което връща TRUE, когато резултатът е по-голям или равен на третия най-висок резултат. Тъй като в диапазона D5: D16 има 12 клетки, този израз връща масив от 12 TRUE и FALSE стойности в масив като този:

(FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)

Този масив се връща директно към функцията FILTER като аргумент за включване, където се използва за филтриране на данните. Само редове, където резултатът е TRUE, влизат в крайния изход. Резултатът от формулата във F5 включва 3-те най-добри резултата в данните, които се разливат в диапазона F5: H7.

Сортирайте резултатите по резултат

По подразбиране FILTER ще върне съвпадащи записи в същия ред, в който се появяват в изходните данни. За да сортирате резултатите в низходящ ред по резултат, можете да вложите оригиналната формула FILTER във функцията SORT по следния начин:

=SORT(FILTER(data,score>=LARGE(score,3)),3,-1)

Тук FILTER връща резултатите директно към функцията SORT като аргумент на масива. Индексът за сортиране е зададен на 3 (резултат) и редът за сортиране е зададен на -1 за низходящ ред.

Интересни статии...