Как использовать ВПР с сегодняшней датой или последней датой?

Вопрос или проблема

У меня есть таблица с датами и их данными, но столбец с датами не имеет форматирования и записан как yyyy-mm-dd, например, 2016-08-29. Он выравнен по правому краю. Эта таблица создается из скрипта Google Analytics, поэтому у меня нет возможности контролировать ее форматирование, то есть я не могу вручную изменить столбец на формат даты.

Мой вопрос: как использовать VLOOKUP, чтобы найти сегодняшнюю дату и затем значение в столбце B?

Это не работает, так как today() не возвращает формат yyyy-mm-dd.

=vlookup(today(),'datasheet'!A16:B1000,2,false)

Это тоже почему-то не работает:

=vlookup(text(today(),"yyyy-mm-dd"),'datasheet'!A16:B500,2,false)

Так выглядит таблица данных:

Data table

Как использовать VLOOKUP с сегодняшней датой или последней датой?

Вам просто нужно немного изменить логику.

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

Ниже приведенная формула работает для меня, используя пример данных на скриншоте ниже.

=VLOOKUP( TEXT(TODAY(),"yyyy-mm-dd"),A:C,2,FALSE)

Используя приведенный ниже пример (каждое значение отформатировано как текст), я получаю значение 0.010297839

В качестве альтернативы я рекомендую использовать INDEX MATCH, так как это считается более надежным, чем vlookup или hlookup:

=INDEX(A:C,MATCH(TEXT(TODAY(),"yyyy-mm-dd"),A:A,0), 2)

Это дает мне тот же результат 0.010297839

enter image description here

Устранение неполадок:
Если формула все еще не работает, попробуйте выполнить несколько следующих действий:

  • Попробуйте использовать формулу на той же странице, чтобы проверить, правильно ли она связана. Если вы используете формулу с другой страницы или книги, это может вызвать ошибку.
  • Дважды проверьте, что в диапазоне данных действительно есть сегодняшняя дата.
  • Используйте A:B в вашей формуле, а не A16:B500, чтобы убедиться, что ни одна строка не исключена.
  • Как я уже говорил, приведенные выше формулы работают для меня, поэтому, если они не работают для вас, возможно, есть другие причины неполадки, о которых нам неизвестно.

Ответ или решение

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

Решение с использованием VLOOKUP

Функция VLOOKUP обычно требует точного совпадения форматов, поэтому мы должны преобразовать текущую дату в текст. Ваше намерение использования TEXT(TODAY(), "yyyy-mm-dd") верно, но есть несколько моментов, на которые стоит обратить внимание:

  1. Убедитесь, что в таблице действительно есть сегодняшняя дата. Это особенно важно, если ваши данные не обновляются автоматически каждый день.

  2. Сам формат текста должен быть согласованным. Если даты в вашем наборе данных выровнены вправо, они вероятно сохранены в виде числового текста, что обычно не является проблемой для функции VLOOKUP, если правильная дата существует в таблице.

Вот формула, которую вам следует использовать:

=VLOOKUP(TEXT(TODAY(), "yyyy-mm-dd"), 'datasheet'!A:B, 2, FALSE)

Альтернативный метод с использованием INDEX и MATCH

Если вы столкнулись с ограничениями VLOOKUP, можно воспользоваться более гибким сочетанием INDEX и MATCH:

=INDEX('datasheet'!B:B, MATCH(TEXT(TODAY(), "yyyy-mm-dd"), 'datasheet'!A:A, 0))

Дополнительные рекомендации

  • Проверьте область данных. Убедитесь, что область данных охватывает весь потенциальный диапазон, который может включать текущую дату.

  • Используйте одну и ту же книгу или лист для отладки. Это поможет исключить ошибки, связанные с неправильной ссылкой на диапазон или другую книгу.

  • Убедитесь в соответствии форматов данных. Если что-то идет не так, попробуйте временно вывести на экран результат функции TEXT(TODAY(), "yyyy-mm-dd") для проверки его соответствия значениям в вашем столбце.

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

Оцените материал
Добавить комментарий

Капча загружается...