Раньше у меня была формула, подобная этой:
=IF(ISBLANK(A2);"";
IF(A2="Not Available";"";
IF(AND(A2="TypeA";B2=1,1);"ANModel1";
IF(AND(A2="TypeA";B2=1,5);"ANModel2";
IF(AND(A2="TypeA";B2=2,2);"ANModel3";
IF(AND(A2="TypeA";B2=3);"ANModel4";
IF(AND(A2="TypeA";B2=4);"ANModel5";
IF(AND(A2="TypeB";B2=0,55);"FNModel1";
IF(AND(A2="TypeB";B2=0,75);"FNModel2";
IF(AND(A2="TypeB";B2=1,1);"FNModel3";
IF(AND(A2="TypeB";B2=1,5);"FNModel4";
IF(AND(A2="TypeB";B2=2,2);"FNModel5";""))))))))))))
B2
рассчитывается на основе (среди прочего) A2
, поэтому, если A2
пусто, то равно B2
.Если A2
не пусто, значит B2
.Требуется только 1 ISBLANK
проверка.
Таким образом, только с гораздо большим количеством опций, поэтому ремонтопригодность начинала выглядеть как минное поле.Я исправил большинство этого путем извлечения данных в таблицу, например:
Type Power Part
TypeA 1,1 ANModel1
TypeA 1,5 ANModel2
TypeA 2,2 ANModel3
TypeA 3 ANModel4
TypeA 4 ANModel5
TypeB 0,55 FNModel1
TypeB 0,75 FNModel2
TypeB 1,1 FNModel3
TypeB 1,5 FNModel4
TypeB 2,2 FNModel5
И использовал формулу массива, подобную этой, чтобы найти правильную часть:
{=INDEX(Data!$A$2:Data!$C$11;MATCH(1;(Data!$A$2:Data!$A$11=A2)*(Data!$B$2:Data!$B$11=B2);0);3)}
Опять же, это формула массива, смотрите {}
.
Обычно я просто использовал бы VLOOKUP
, но я не знал бы, как заставить это работать, если вам нужно принять2 клетки в качестве аргументов.Текущий подход не имеет проблем с этим.
, который отлично работает, за исключением для отсутствующей функции ISBLANK
.И я не могу добавить это к функции массива так же, как к обычной функции.
Как я могу достичь функциональности предоставленной формулы массива с дополнительным преимуществом, когда вместо кода возврата отображается пустая ячейкакогда первая ячейка, используемая в качестве аргумента (или один или оба, см. объяснение выше), пуста?
В настоящее время используется Microsoft Excel 2013. Обновления не появятся до Рождества, поэтому я явно ищу решение, котороеработает на этой версии.