Могу ли я получить содержимое ячейки из той же строки ссылочной ячейки, но из другого столбца? - PullRequest
0 голосов
/ 24 мая 2019

У меня есть лист активов с уникальными идентификаторами.Этот лист называется «Активы».Идентификаторы находятся в столбце B.

Другой лист в той же книге называется "Местоположение".

Если ввести уникальный идентификатор активов в Location! E2, я хочу, чтобы Location! H2 проверял наличиесовпадение в столбце B на листе «Активы», затем вернитесь со значением из соответствующей строки, столбца E. Я также хочу, чтобы Location! I показывал «Активы! D (Активы! E)», и есть другие столбцыЯ также хочу показать значение из.

Возможно ли это без использования VLOOKUP или INDIRECT?

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

И VLOOKUP, и INDIRECT предоставляют базовую функциональность, которую я ищу, но онине идеально.То, что я сейчас делаю, - это запуск MATCH в столбце Location! F.Это дает мне номер строки.Затем в Location! HI используйте INDIRECT.

В настоящее время я использую следующие формулы:

  • Location! F2: =MATCH(E2,Assets!$B:$B,0) (находит номер строки)
  • Местоположение! H2: =INDIRECT("'Assets'!G"&F2) (показывает желаемое значение)

Я надеюсь, что есть лучший способ достичь того же результата, потому что я не хочу запоминатьвручную обновить каждую «НЕПРАВИЛЬНУЮ» формулу.Тем более, что я не буду единственным, кто работает над этим листом.

Ответы [ 2 ]

1 голос
/ 24 мая 2019

Если Vlookup не работает (и, как упомянул Тайлер .. Я считаю, что это "должно") ... но если нет, то этот вариант может быть тем, что вам нужно ..

неиспользуйте INDIRECT, пользователь OFFSET.

Я часто использовал комбинацию MATCH + OFFSET .., чтобы «имитировать» VLOOKUP в более сложных ситуациях.

, поэтому в H2 (на листе Location).. ваша формула будет выглядеть примерно так:

=MATCH(E2,Assets!B:B,0)

, которая фактически даст вам номер строки совпадения (или ошибку, если совпадения нет).затем в других столбцах вы можете использовать это в функции OFFSET:

Скажем, в столбце I2 вы можете использовать значение, возвращаемое Match to:

=OFFSET(Assets!E1,I2-1,0,1,1)

, что означает:Перейдите на страницу активов, ячейка E1.Спуститесь на количество строк, равное значению в ячейке I2 (минус 1).(т. е. если значение в I2 равно 4, т. е. строка «4». нам нужно «спуститься» на 3 строки от E1 .., чтобы добраться до E4), следующее значение «0» - это смещение столбца .. так что 0 .. не надоизменить столбцы.а 1,1 - это размер возвращаемого набора (да, смещение может возвращать диапазоны ... удобно для динамических списков и т. д.).В вашем случае вам нужна только одна ячейка.

Затем вы можете повторить это смещение для других столбцов ... скажем, в столбце J2 ... вам нужно значение для этой строки из столбца T:

=OFFSET(Assets!T1,I2-1,0,1,1)

Надеюсь, это поможет!

0 голосов
/ 24 мая 2019

Вы по-прежнему сможете использовать VLOOKUP, чтобы он не испортился при сортировке / фильтрации.Вам просто нужно убедиться, что вы используете бесконечные границы в ваших уравнениях.Например:

  • BAD: VLOOKUP(A1, B1:C5, 2, 0) Это может произойти сбой, если данные были отфильтрованы или перегруппированы путем сортировки.
  • GOOD: VLOOKUP(A1, B:C, 2, 0) Это не имеет значения для границвашего поиска, так что он все еще будет работать, и я верю, что он все еще будет проверять отфильтрованные клетки.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...