2017-02-03 2 views
-2

This pictures shows my table and formula's yieldИщу помощь, чтобы преуспеть в Excel

Я использовал следующую формулу для извлечения результата из таблицы.

Его работа прекрасна, но я надеюсь повысить уровень понимания формул Excel.

Проблема в том, что я часто использую IF в Excel.

То, что я хотел знать, - это то, что можно использовать другой подход, то, что может работать схоже с if, но, возможно, более сложным.

=IF(OR(J2="08L",J2="08R"),IF(ISNUMBER(MATCH(LEFT(I2,3),'SID separations'!$D$34,0)),"LAM",IF(ISNUMBER(MATCH(LEFT(I2,3),'SID separations'!$D$35:$E$35,0)),"West",IF(ISNUMBER(MATCH(LEFT(I2,3),'SID separations'!$D$36:$G$36,0)),"East",IF(ISNUMBER(MATCH(LEFT(I2,3),'SID separations'!$D$37,0)),"SFD",NA())))),0) 

Я очень ценю любую помощь.

+0

К сожалению, не существует СЛУЧАЙ конструкция. Вы можете попробовать использовать VLOOK или, лучше, написать код VBA. – Nicolaesse

+0

@Nicolaesse, почему код VBA будет лучше? Возможно, Excel-lit может показать нам, как выглядит ваш стол и что вы пытаетесь достичь, потому что его сложно определить исключительно по вашей формуле. – CallumDA

+0

Поместите некоторые данные и желаемый результат, чтобы мы могли сделать лучшую формулу для вас. – harun24hr

ответ

0

Теперь, когда есть пример, я думаю, что это хороший вопрос. Вы признали, что ваша формула довольно беспорядочна и также не может быть легко расширена, если есть больше маршрутов.

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

Вы можете упростить эту проблему, создав дополнительный столбец, который имеет весь маршрут в одной ячейке. Вы можете сделать это только путем объединения значений. В вашем примере используйте столбец H:

=B2&" "&C2&" "&D2&" "&E2&" "&F2&" "&G2 

Это создаст строку со всем маршрутом в одной ячейке. Пространства добавляются между каждой частью маршрута, чтобы убедиться, что вы случайно не создаете последовательности букв, которые соответствуют части другого маршрута. Неважно, есть ли пустые ячейки, в конце будут только лишние пробелы, которые не имеют значения. Заполните это по столбцу, чтобы получить весь путь для каждого маршрута в одной ячейке.

Затем вы можете создать формулу, которая пытается найти 3 буквы в любом из полных маршрутов.

=INDEX($A$2:$A$5,MATCH("*"&left(I2,3)&"*",$H$2:$H$5,0)) 

Эта формула в основном деконструирована vlookup. Он определяет, где 3 символа можно найти в столбце H, затем возвращает соответствующее значение из столбца A.

Функция MATCH пытается найти левые 3 символа I2 в столбце H. Функция MATCH обычно пытается найти полное точное совпадение (с последним параметром равным 0), но мы можем просто добавить подстановочные знаки к значению поиска. Затем функция MATCH возвращает индекс диапазона, в котором он был найден. I.e., если он был найден во 2-й ячейке диапазона H2: H5, он возвращает номер 2.

Функция INDEX затем просто получает значение из диапазона на основе индекса. В этом случае он получит второе значение из диапазона A2: A5.

enter image description here

Смежные вопросы