VLOOKUP не отображает правильные данные - PullRequest
0 голосов
/ 07 ноября 2018

В настоящее время я пытаюсь использовать Vlookup для следующих целей в Excel: допустим, у меня есть 2 листа, 1 из которых имеет некоторые функции (например, «высокий») в столбце B, с некоторыми ключами в столбце G (например, для «высокий», ключ «физические атрибуты»), столбцы E и F содержат проценты ответов «да» и «нет» соответственно; поскольку эти функции назначены для слова в одной ячейке в столбце A, функции могут повторяться. Кроме того, столбец G содержит данные только в том случае, если столбец E (да, ответы) превышает 50%, поэтому некоторые строки в столбце G являются пустыми. На листе 2 у меня есть те же функции, но у меня нет записанных ключей, я использую VLOOKUP, чтобы найти функцию на листе 1, а затем записываю ключ из листа 1. Однако некоторые ячейки отображаются пустыми, я думал Процесс заключается в том, что, поскольку некоторые функции повторяются и имеют пустой ключ, они перезаписываются и поэтому отображают неправильный вывод (Пустая ячейка). Моя полная функция:

=IF($E2<0.5,"",VLOOKUP($B2,'Tx1'!$B$2:$G$392,6,FALSE))

Оператор IF проверяет процент в текущем листе (лист 2), если он меньше 50%, оставляет его пустым (этот вывод имеет правильное поведение), если он больше 50%, он проверяет наличие функции ($ B2) на листе 1 («Tx1») и берет ключ из колонки 6 (G в таблице). Есть ли способ решить проблему перезаписи данных? Заранее спасибо.

Edit: Это лист 1, так как вы видите ключ для функции «большого размера» «Физические атрибуты / характеристики»

Sheet 1

Это лист 2, как вы можете видеть для функции "большого размера" для того же слова (столбец A), отображаемой как 0. Я также написал несколько слов un blue, просто чтобы объяснить, почему эти поля были пустыми.

Sheet 2

В листе 1 содержатся слова с той же функцией для другого слова в столбце A, но поскольку эта функция не соответствует слову, ответ yes меньше 50%, а ключ пустой.

Empty Box Sheet 1

1 Ответ

0 голосов
/ 07 ноября 2018

Насколько я понимаю, ваша проблема: VLOOKUP отображает правильные данные, но работает не так, как вы предполагаете. Он всегда возвращает первое совпадение, которое он находит, поэтому, если в таблице есть «большой по размеру» для «петрушки», который имеет меньший номер строки, чем «большой по размеру», который находится в таблице для «волка», то он вернет значение из столбца G для линии в поле "петрушка". Чтобы вернуть таблицу из таблицы "волк", необходимо убедиться, что она знает, что нужно искать "волк" в столбце А.

Если вы действительно хотите использовать VLOOKUP, вам нужно создать дополнительный столбец - что-то вроде комбинации столбцов A и B (например, в формате A1&" - "&B1 будет wolf - large in size), и вы можете использовать VLOOKUP в этом столбце, чтобы получить правильное значение.

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

=INDEX(Sheet1!G:G;MATCH(1;(Sheet1!A:A=Sheet2!A1)*(Sheet1!B:B=Sheet2!B1);0))

введено как формула массива (Ctrl + shift + Enter). Это предполагает, что вы копируете имя в столбце A, чтобы оно было рядом с каждым значением в столбце B.

...