=IF(
A4=INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)),
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),
IF(A4=INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),
INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),
IF(A4=INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),
INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),
IF(A4=INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)),
INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))
Всем привет! Здесь есть 4 разные электронные таблицы, и я пытаюсь найти значение в ячейке A4, чтобы найти все 4 исходные электронные таблицы, которые вернут правильные значения.
Когда я пробую это, это работает как золото:
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0))
Но это не работает с простым оператором if, как показано ниже, а также с вложенными операторами if. И понятия не имею, где я ошибся.
=IF(INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0))=A4,
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C, 0)),
"NO")
При этом каждая ячейка возвращает "НЕТ", что является ложным значением. Не могли бы вы взглянуть на это и сообщить мне, что я сделал неправильно? Ваше внимание и время очень ценятся.
решение1
если A4 не найден, то будет возвращена ошибка, и вы не сможете приравнять ее к ошибке, не создав ее собственную ошибку.
Вместо этого используйте это:
=IF(
ISNUMBER(MATCH(A4, Sheet1!$C:$C, 0)),
INDEX(Sheet1!$B:$B, MATCH(A4, Sheet1!$C:$C,0)),
IF(ISNUMBER(MATCH(A4, Source1!$B:$B, 0)),
INDEX(Source1!$A:$A, MATCH(A4, Source1!$B:$B, 0)),
IF(ISNUMBER(MATCH(A4, Source2!$B:$B, 0)),
INDEX(Source2!$A:$A, MATCH(A4, Source2!$B:$B, 0)),
IF(ISNUMBER(MATCH(A4, Source3!$B:$B, 0)),
INDEX(Source3!$A:$A, MATCH(A4, Source3!$B:$B, 0)))
)))