У меня есть два столбца данных в EXCEL. В одном столбце у меня есть время (скажем, в часах), а во втором столбце у меня есть данные о ценах на акции каждый раз.

Time              stock price
09:00:00 AM            5
11:00:00 AM            6
12:00:00 PM            5

Обратите внимание, что здесь отсутствует время 10:00:00, поскольку в это время не было транзакций. Но мне нужно вставить 10:00:00 утра в первый столбец таким образом, чтобы второй столбец отображался пустым в соответствующей строке. Так что две колонки будут выглядеть так:

Time              stock price
09:00:00 AM            5
10:00:00 AM
11:00:00 AM            6
12:00:00 PM            5

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

1 ответ1

4

Вам на самом деле не нужно использовать VBA для решения вашей проблемы.

Сначала вам нужно создать столбец на исходном листе, содержащий данные даты и времени (если ваш столбец времени еще не содержит дату) - этот столбец должен находиться непосредственно перед столбцом "цена акции"

Затем создайте список всех времен на новом листе. например, поместите «01.01.2010 09:00:00 AM» в A2, затем установите =A2+1/24 1/24 в A3 (добавляет один час) и заполните формулу по мере необходимости.

Формула в столбце B новой рабочей таблицы (начиная с B2): = iferror (vlookup (a2, [oldsheet!columnOfDateTime: columnOfStockPrice], 2, false), "") Это даст вам все ваши текущие данные, живые пустые ячейки, где данные недоступны.

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

Совет: с большей формулой работать проще, если вы преобразуете свой диапазон в список.

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