Как получить наименьший результат из функции индекса / соответствия по нескольким критериям - PullRequest
0 голосов
/ 25 июня 2019

У меня есть лист с транзакциями.У каждого txn есть аэропорт и количество закачанного топлива.У меня есть второй лист со списком местоположений, каждый ряд которых имеет минимальные и максимальные значения для топливных полос (например, 1-500, 501-1000, минимальные / максимальные значения хранятся в отдельных столбцах), и каждая из которых имеетцена (за топливо за галлон).

Мне нужно использовать значения в строке в первой электронной таблице, чтобы найти во второй электронной таблице совпадение по аэропорту (код ИКАО), больше нижней границы и меньше верхней полосы, а затем вернутьцена за единицу топлива.Суть в том, что у меня может быть несколько совпадений, и мне нужно наименьшее / наименьшее значение.

Я немного знаком с индексными / совпадающими множественными критериями.Итак, я написал следующее и попробовал:

=INDEX(FuelPrices!$D$2:$D$3398,MATCH(1,(FuelPrices!A:A=H2)*(FuelPrices!B:B>=N2)*(FuelPrices!C:C<=N2),0))

Где «Fuel» - это мой первый лист, а «FuelPrices» - это лист, в котором я ищу значения. Независимо от того, ЧТО я делаю, он выбрасываетошибка #NA.Итак, я подумал, может быть, проблема в том, что я возвращал массив?Я попробовал это:

=INDEX(FuelPrices!$D$2:$D$3398,SMALL(MATCH(1,(FuelPrices!A:A=H2)*(FuelPrices!B:B>=N2)*(FuelPrices!C:C<=N2),0),1))

Подсчет, что это даст мне наименьшее значение из возвращенного массива.Нет идтиЯ попробовал некоторые другие приемы (используя другую функцию Index для сопоставления), но, похоже, ничего не работает.

В основном я просто хочу, чтобы функция возвращала самое низкое значение соответствия для предоставленных критериев.

This is my main fuel txns sheet, Fuel

The fuel pricing sheet I'm looking to get a value from, FuelPrices

1 Ответ

0 голосов
/ 25 июня 2019

Короткий ответ: <и> неправильные. Это дает ответ

=INDEX(FuelPrices!$D$2:$D$10,MATCH(1,(FuelPrices!$A$2:$A$10=H2)*(FuelPrices!$B$2:$B$10<=N2)*(FuelPrices!$C$2:$C$10>=N2),0))

если введено как формула массива с использованием Ctrl Shift Ввести

Я изменил все диапазоны на небольшое количество строк для целей тестирования.

Лист цен на топливо

enter image description here

Топливный лист

enter image description here

Если вы хотите найти самый маленький объект в тех же условиях, вам не нужен индекс, но вы можете использовать маленький (или минимальный)

=SMALL(IF((FuelPrices!$A$2:$A$10=H2)*(FuelPrices!$B$2:$B$10<=N2)*(FuelPrices!$C$2:$C$10>=N2),FuelPrices!$D$2:$D$10),1)

Или, если вы предпочитаете, вы можете использовать Aggregate (формула без массива)

=AGGREGATE(15,6,FuelPrices!$D$2:$D$10/((FuelPrices!$A$2:$A$10=H2)*(FuelPrices!$B$2:$B$10<=N2)*(FuelPrices!$C$2:$C$10>=N2)),1)
...