Формула на Excel: Извличане на общи стойности от два списъка -

Обща формула

=FILTER(list1,COUNTIF(list2,list1))

Обобщение

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

=FILTER(list1,COUNTIF(list2,list1))

където list1 (B5: B15) и list2 (D5: D13) са именувани диапазони. Резултатът, стойности, които се появяват в двата списъка, се разлива в диапазона F5: F11.

Обяснение

Функцията FILTER приема масив от стойности и аргумент "включва", който филтрира масива въз основа на логически израз или стойност.

В този случай масивът се предоставя като наименувания диапазон "list1", който съдържа всички стойности в B5: B15. Аргументът за включване се доставя от функцията COUNTIF, която е вложена във FILTER:

=FILTER(list1,COUNTIF(list2,list1))

COUNTIF е настроен с list2 като обхват и list1 като критерии . Тъй като даваме COUNTIF единадесет критериални стойности, COUNTIF връща единадесет резултата в масив като този:

(1;1;0;1;0;1;0;1;0;1;1)

Забележете, че 1 съответстват на елементи в list2, които се появяват в list1.

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

=FILTER(list1,(1;1;0;1;0;1;0;1;0;1;1))

Списъкът на функциите за филтриране FILTER1 използва стойностите, предоставени от COUNTIF. Стойностите, свързани с нула, се премахват; други ценности са запазени.

Крайният резултат е масив от стойности, които съществуват и в двата списъка, който се разлива в диапазона F5: F11.

Разширена логика

В горната формула използваме суровите резултати от COUNTIF като филтър. Това работи, защото Excel оценява всяка ненулева стойност като TRUE и нула като FALSE. Ако COUNTIF върне брой, по-голям от 1, филтърът ще продължи да работи правилно.

За да принудите резултатите TRUE и FALSE изрично, можете да използвате "> 0" по следния начин:

=FILTER(list1,COUNTIF(list2,list1)>0)

Премахване на дубликати или сортиране

За да премахнете дубликати, просто вложете формулата във функцията UNIQUE:

=UNIQUE(FILTER(list1,COUNTIF(list2,list1)))

За да сортирате резултатите, вложете във функцията SORT:

=SORT(UNIQUE(FILTER(list1,COUNTIF(list2,list1))))

Стойностите на списъка липсват в списъка2

За да изведете стойности в list1 липсващи от list2, можете да обърнете логиката по следния начин:

=FILTER(list1,COUNTIF(list2,list1)=0)

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