Этот пост дает мне очень, очень близко к тому, где я должен быть

Как я могу скопировать столбец с одного листа на другой лист на основе заголовка в Excel?

Однако, если я добавлю = if(isblank(Sheet1!A2), "", ... к началу формулы первый столбец всегда отображается пустым.

Мне нужно только скопировать значения, если на самом деле есть значение в ячейке

Если я использую оригинальную формулу, если ячейка пуста, она возвращает ноль или "# N/A"

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

Основная проблема заключается в том, что первый столбец пуст, хотя в исходном листе есть совпадающие данные

Ссылка на мой файл: https://drive.google.com/open?id=1IZ1BpisMhHcSKJuBRLWnTU4RxpeZ2lCZ

1 ответ1

0

Формула в столбце A на тестовом листе сначала проверяет, является ли столбец A на Листе 1 пустым. В этом тесте нет соответствия для заголовков. Формула в тесте!А2 сначала спрашивает, если Sheet1!А2 пустой? Поиск правильного заголовка столбца не происходит в первом IF .

Если вы хотите заполнить "Тест" всеми значениями строки на Листе1, когда строка на Листе1 имеет непустую фамилию:

=IF(ISBLANK(HLOOKUP($B$1,Sheet1!$A:$ZZ,ROW(),FALSE)),"",HLOOKUP(C$1,Sheet1!$A:$ZZ,ROW(),FALSE))

(Столбец C, формула)

Этот тест говорит:

  • HLOOKUP($B$1,Sheet1!$A:$ZZ,
    • всегда (абсолютная ссылка $ B $ 1) ищите этот Тестовый лист Заголовок столбца B в списке заголовка из Sheet1.
    • $B$1 в формуле можно заменить на "Фамилия" (и, вероятно, следует).
  • ROW(),FALSE
    • "Ложь" говорит найти точное совпадение. Если найдено, вернуть значение из Sheet1 в столбце, где найдено (HLOOKUP). Значение в столбце в определенной строке, которая указывается с помощью row() которая является строкой на тестовом листе этой формулы (так же, как строка на Sheet1).
  • IF(ISBLANK(HLOOKUP
    • Если результат найден при подключении ISBLANK то значение этой ячейки формулы равно ""
    • Если ISBLANK возвращает false, поскольку в столбце "Фамилия" на листе Sheet1 в этой строке формул содержится текст, введите аргумент false.
  • Если проверка, true (""), false = HLOOKUP(C$1,Sheet1!$A:$ZZ
    • Тот же HLOOKUP, что и раньше, но вместо того, чтобы всегда смотреть на абсолютную ссылку на столбец B, ссылка является относительной / динамической.
    • Не абсолютные ссылки изменяются при перетаскивании формулы. Таким образом, "C" в C$1 изменится на "D" при копировании в следующий столбец справа (или B, если скопировать влево). Опять же, это потому, что нет «$», фиксирующего ссылку как абсолютную. Поскольку буква столбца совпадает со столбцом формулы, заголовок столбца формул ищется среди заголовков на Листе 1.
  • Остальная логика такая же, как и у первого HLOOKUP

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .