2017-02-23 67 views
1

У меня есть таблица со значениями из программы дренажа (трубы и ямы), и я хочу создать формулу, которая найдет имя Пит, а затем найдет минимальный значение в нисходящем конце трубы, которая соединяется с этой ямой.Создайте несколько критериев, условная формула «IF и MIN» с несколькими строками

Что я могу сделать с массивом - {=MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A3,'ArcGIS Pipes'!$F$2:$F$100))}. Однако иногда яма соединяется только с верхним концом, что означает, что она находится в другом столбце под U/S IL (m). Если это так, то я хочу это значение, но на данный момент мне нужно сначала запустить формулу столбца D/S IL (m), если это ничего не возвращает, мне нужно вручную изменить ячейки null на {=MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100))}, который проверяет столбец U/S IL (m). Как только я сделал это, остатки null представляют собой ямы, которые не подключаются к каким-либо трубам, и им вручную присваивается пустое значение.

Итак, я хочу, чтобы у меня была одна формула, которая делает все вышеперечисленное для меня, если мне не придется проходить и ничего не делать. Короче говоря, я хочу, чтобы формула сначала проверяла значение minumum downstream в одном столбце, если это ничего не возвращает, я хочу, чтобы он проверял минимальное значение восходящего потока в другом столбце, наконец, если это ничего не возвращает, я хочу вернуть нулевое значение.

Я поиграл с вложенными IFs и вспомогательными массивами, но просто получил ошибку или вернулся FALSE. Формула, которую я пробовал, дает мне FALSE is =IF((MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A2,'ArcGIS Pipes'!$F$2:$F$100))),IF(MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100)),null)). Я знаю, что у меня что-то не хватает, но я начинаю кругом!

Screengrab - left table is the source table, right is the results table

enter image description here

+1

Можете ли вы добавить снимок экрана из таблицы? – MakPo

+0

Пожалуйста, отформатируйте формулы; они в настоящее время являются кошмаром для чтения. –

+0

Если я понимаю, почему бы не попробовать '= If ([first formula] = 0, [вторая формула], [первая формула])'? Вы должны проверить результат его запуска в первом столбце. Если это '0', когда он находится во втором столбце, запустите вторую формулу. – BruceWayne

ответ

1

Это может быть массив formula¹, что вы ищете. В K2 as,

=IF(ISNUMBER(MATCH(H2,C:C, 0)), 
     AGGREGATE(15, 6, F$2:INDEX(F:F, MATCH("zzz",C:C))/(C$2:INDEX(C:C, MATCH("zzz",C:C))=H2), 1), 
    IF(ISNUMBER(MATCH(H2,B:B, 0)), 
     AGGREGATE(15, 6, E$2:INDEX(E:E, MATCH("zzz",B:B))/(B$2:INDEX(B:B, MATCH("zzz",B:B))=H2), 1), 
     "no match")) 

Заполнить при необходимости.

enter image description here


¹ Формулы массива должны быть завершены с Ctrl + Сдвиг + Enter↵. Если введено правильно, Excel с завертыванием формулы в фигурных скобках (например, { и }). Вы не вводите фигурные скобки в себе. После правильного ввода в первую ячейку они могут быть заполнены или скопированы или правы точно так же, как и любая другая формула. Попробуйте и уменьшите ссылки на полные столбцы на диапазоны, более подробно представляющие экстенты ваших фактических данных. Формулы массива ломают логарифмически расчетные циклы, поэтому рекомендуется сократить суженные диапазоны ссылок до минимума. См. Guidelines and examples of array formulas для получения дополнительной информации.