Формула на Excel: ФИЛТЪР за премахване на колони -

Съдържание

Обща формула

=FILTER(data,(header="a")+(header="b"))

Обобщение

За да филтрирате колони, предоставете хоризонтален масив за аргумента за включване. В показания пример формулата в I5 е:

=FILTER(B5:G12,(B4:G4="a")+(B4:G4="c")+(B4:G4="e"))

Резултатът е филтриран набор от данни, който съдържа само колони A, C и E от изходните данни.

Обяснение

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

В булевата алгебра умножението съответства на логиката И, а добавянето съответства на логиката ИЛИ. В показания пример използваме булева алгебра с логика OR (добавяне), за да насочваме само колоните A, C и E по следния начин:

(B4:G4="a")+(B4:G4="c")+(B4:G4="e")

След като всеки израз е оценен, имаме три масива от стойности TRUE / FALSE:

(TRUE,FALSE,FALSE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,TRUE,FALSE,FALSE,FALSE)+ (FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)

Математическата операция (добавяне) преобразува стойностите TRUE и FALSE в 1s и 0s, така че можете да мислите за операцията по следния начин:

(1,0,0,0,0,0)+ (0,0,1,0,0,0)+ (0,0,0,0,1,0)

В крайна сметка имаме един хоризонтален масив от 1s и 0s:

(1,0,1,0,1,0)

който се доставя директно на функцията FILTER като аргумент за включване:

=FILTER(B5:G12,(1,0,1,0,1,0))

Забележете, че в изходните данни има 6 колони и 6 стойности в масива, всички или 1 или 0. FILTER използва този масив като филтър, за да включва само колони 1, 3 и 5 от данните източник. Колони 2, 4 и 6 се премахват. С други думи, единствените оцелели колони са свързани с 1s.

С функцията MATCH

Прилагането на ИЛИ логика с добавяне, както е показано по-горе, работи добре, но не се мащабира добре и прави невъзможно използването на набор от стойности от работен лист като критерии. Като алтернатива можете да използвате функцията MATCH заедно с функцията ISNUMBER като тази, за да изградите по-ефективно аргумента за включване:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,("a","c","e"),0)))

Функцията MATCH е конфигурирана да търси всички заглавки на колони в константата на масива ("a", "c", "e"), както е показано. Правим го по този начин, така че резултатът от MATCH да има размери, съвместими с изходните данни, който съдържа 6 колони. Забележете също така, че третият аргумент в MATCH е зададен като нула, за да принуди точно съвпадение.

След като MATCH стартира, той връща масив като този:

(1,#N/A,2,#N/A,3,#N/A)

Този масив отива директно в ISNUMBER, който връща друг масив:

(TRUE,FALSE,TRUE,FALSE,TRUE,FALSE)

Както по-горе, този масив е хоризонтален и съдържа 6 стойности, разделени със запетаи. FILTER използва масива за премахване на колони 2, 4 и 6.

С гама

Тъй като заглавките на колоните вече са на работния лист в диапазона I4: K4, формулата по-горе може лесно да бъде адаптирана да използва диапазона директно по следния начин:

=FILTER(B5:G12,ISNUMBER(MATCH(B4:G4,I4:K4,0)))

Обхватът I4: K4 се оценява като ("a", "c", "e") и се държи точно като константата на масива във формулата по-горе.

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