2017-01-13 4 views
0

Я потратил часы, пытаясь разобраться в этом, нашел статьи в Интернете, но они, похоже, не работают.Множество критериев, соответствующих индексу

У меня есть документ первенствовать с данными на двух вкладках и хотите ниже формулу, чтобы показать мне, что команда людей на если даты и матч Идентификатор_пользователя на обеих формах называется «Поднятая Источник» & «Лист1»

{=INDEX(Sheet1!F:F,MATCH('Raised Source'!E:E&'Raised Source'!F:F,Sheet1!A:A&Sheet1!B:B,0))} 

Это выдает ошибку # N/A

Помощь !!!

+0

Так команда имена на 'Лист1 F: f'? даты и идентификатор пользователя находятся на A и B? –

+0

Я издевался над данными, и это работает для меня ... Возможно, он не может найти совпадение, вы проверили, чтобы убедиться, что матч существует? Кроме того, будьте осторожны с использованием формул массива на всех строках/столбцах, это значительно замедляет вычисления –

+0

Если вы дадите более ясное ожидание ожидаемого результата, я был бы более чем счастлив предоставить полное описание того, как Index and Match работают вместе: несколько примеры моих можно найти в ответах, которые я представил ранее: [Index() Small() example] (http://stackoverflow.com/questions/41549674/how-to-categorise-a-column-in-excel- [info]/[41565539 # 41565539] и [INDEX() для проверки 3 условий] (http://stackoverflow.com/questions/40805108/how-compare-3-columns-and -put-yes-or-no-in-another-column/40806443 # 40806443) –

ответ

2

Во-первых, я полагаю, что ваши данные в этом формате:

enter image description here enter image description here

И что вы хотите выполнить поиск, используя данные из 'Raised Source'! искать через Sheet1! и вернуть команду из Sheet1!, как Что ж.

формула:

Формула нужно будет вводить в виде массива (один раз скопировать и вставить еще в строке формул хит CTRL + SHIFT + ENTER)

=IFERROR(INDEX(Team,MATCH(1,(E1=TeamDate)*(F1=UserID),0)),"")

Я использовал названные диапазоны, чтобы сделать формулу опрятной:

Team  =Sheet1!$F$1:$F$6 
TeamDate =Sheet1!$A$1:$A$6 
UserID =Sheet1!$B$1:$B$6 

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

Логика:

=INDEX(array,row,[column]) - Эта формула «индекс» массив вы указываете, вы можете сказать ему номер строки и столбца, который Вы хотите вернулся (например =INDEX(B3:C4,1,1) будет возвращать значение в первый столбец первой строки и первый столбец B3:C4, который равен B3. Нам не нужно указывать формулу столбцу, если мы хотим вернуть только первый столбец, или если данные, которые мы ищем, имеют ширину всего 1 столбца.

Здесь находится формула. W e используйте формулу MATCH(lookup_Value,Lookup_array,[match_type]), чтобы рассказать нам, какую позицию (или какую строку в этом случае) имеет значение, которое мы ищем.

Нормальное использование MATCH() будет соответствие содержания точных ячеек в диапазоне, но, как мы используем формулу массива я играл небольшой трюк с использованием MATCH(1,(E1=TeamDate)*(F1=UserID),0)

Итак, я сказал формулу, чтобы найти 1 и скажите мне, положение, в котором оно происходит. 1 возвращается, когда оба критерия совпадают с формулой Excel, TRUE представляет 1 и FALSE представляет 0.Когда эта формула работает через построчно, если оба результата совпадают и вернуть TRUE то массив будет хранить 1*1, который 1 и, конечно, если один или оба FALSE, то он будет возвращать 1*0, 0*1 или все из которых приведет к 0.

Поскольку именованные диапазоны начинаются с одной и той же строки, относительное положение (или сколько раз до появления 1) всегда будет номером строки, который вы хотите вернуть формулу INDEX().

IFERROR(value,value_if_error) - Если совпадение не найдено, формула выдает ошибку, поскольку она не может соответствовать 1 массиву, который я создал. Если это произойдет, я сказал формулу, что я бы хотел, чтобы она вернула ,""), а это пустая ячейка. Вы можете обновить его до любого текста, который вы предпочитаете, возможно, ,"Not Found")?

Другие IF() в формуле из другого ответа были специфичны для этого вопроса, поскольку они хотели знать только, что было совпадение, а не возвращать что-то из этой строки.

Выходные:

enter image description here

+1

Я не могу поверить в это - Лучший наиболее подробный ответ, который я когда-либо видел. Теперь я помог вам работать. Действительно ценю это. Спасибо – dmorgan20

+0

Рад, что это сработало для вас и спасибо за оценку ответа ^^ –

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