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

Съдържание

Обобщение

За да извършите двупосочно приблизително търсене на съвпадение с множество критерии, можете да използвате формула на масив, базирана на INDEX и MATCH, с помощта на функцията IF, за да приложите критерии. В показания пример формулата в K8 е:

=INDEX(data,MATCH(K6,IF(material=K5,hardness),1),MATCH(K7,diameter,1))

където данните (D6: H16), диаметърът (D5: H5), материалът (B6: B16) и твърдостта (C6: C16) са посочени диапазони, използвани само за удобство.

Забележка: това е формула на масив и трябва да се въведе с Control + Shift + Enter

Обяснение

Целта е да се търси скорост на подаване въз основа на материал, твърдост и диаметър на свредлото. Стойностите на скоростта на подаване са в посочените данни за диапазона (D6: H16).

Това може да се направи с двупосочна формула INDEX и MATCH. Едната функция MATCH изработва номера на реда (материал и твърдост), а другата функция MATCH намира номера на колоната (диаметър). Функцията INDEX връща крайния резултат.

В показания пример формулата в K8 е:

=INDEX(data, MATCH(K6,IF(material=K5,hardness),1), // get row MATCH(K7,diameter,1)) // get column

(Добавени са прекъсвания на редове само за четливост).

Трудното е, че материалът и твърдостта трябва да се обработват заедно. Трябва да ограничим MATCH до стойностите на твърдост за даден материал (нисковъглеродна стомана в показания пример).

Можем да направим това с функцията IF. По същество използваме IF, за да „изхвърлим“ неподходящи стойности, преди да потърсим съвпадение.

Подробности

На функцията INDEX се дават именуваните данни за диапазона (D6: H16) като за масив. Първата функция MATCH изработва номера на реда:

MATCH(K6,IF(material=K5,hardness),1) // get row num

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

IF(material=K5,hardness) // filter

Тестваме всички стойности в материала (B6: B16), за да видим дали те съответстват на стойността в K5 („Нисковъглеродна стомана“). Ако е така, стойността на твърдостта се предава. Ако не, IF връща FALSE. Резултатът е масив като този:

(FALSE;FALSE;FALSE;85;125;175;225;FALSE;FALSE;FALSE;FALSE)

Забележете, че единствените оцелели стойности са тези, свързани с нисковъглеродната стомана. Останалите стойности вече са FALSE. Този масив се връща директно към функцията MATCH като lookup_array.

Справочната стойност за съвпадение идва от K6, която съдържа дадената твърдост, 176. MATCH е конфигуриран за приблизително съвпадение, като зададе match_type на 1. С тези настройки MATCH игнорира FALSE стойности и връща позицията на точно съвпадение или следващата най-малка стойност .

Забележка: стойностите на твърдост трябва да бъдат сортирани във възходящ ред за всеки материал.

С твърдост, зададена като 176, MATCH връща 6, доставени директно на INDEX като номер на реда. Вече можем да пренапишем оригиналната формула по следния начин:

=INDEX(data,6,MATCH(K7,diameter,1))

Втората формула MATCH намира правилния номер на колоната, като извършва приблизително съвпадение на диаметъра:

MATCH(K7,diameter,1) // get column num

Забележка: стойностите в диаметър D5: H5 трябва да бъдат сортирани във възходящ ред.

Справочната стойност идва от K7 (0.75), а lookup_array е наименованият диаметър на диапазона (D5: H5).

Както преди, MATCH е настроен на приблизително съвпадение, като зададе match_type на 1.

С диаметър, зададен като 0,75, MATCH връща 3, доставени директно на функцията INDEX като номер на колоната. Оригиналната формула вече решава:

=INDEX(data,6,3) // returns 0.015

INDEX връща краен резултат от 0,015, стойността от F11.

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