1

У меня есть список данных, который был составлен путем взятия временной отметки каждые 0,01 дюйма накопленного дождя. Из-за этого данные не имеют промежутков времени между записями, когда не было зарегистрировано осадков. Я выяснил, как округлить данные до ближайшего часа, однако теперь я хотел бы заполнить часы, которые должны сказать 0,00 с ними.

Т.е. Мои данные выглядят так:

10/11/2012 22:00 0,01

16.10.2012 2:00 0,01

16.10.2012 3:00 0,02

Но я хотел бы добавить в промежутках между часами, которые должны иметь 0,00, связанный с ними. Поскольку это должен быть один полный год, в общей сложности должно быть 8760 записей.

У меня нет kutools, и я пытался использовать прилагаемый код VBA, который я нашел в Интернете (https://www.extendoffice.com/documents/excel/1283-excel-insert-missing-numbers-in-sequence.html), однако он не учитывает почасовую структуру данных и вместо этого создает отдельные дни и устанавливает время в 0:00.

Если кто-нибудь знает, как это исправить или есть другое решение, я был бы очень признателен! заранее спасибо ! [введите описание изображения здесь ] 1

1 ответ1

0

Полезно знать, что Excel записывает даты как действительные числа, где целые числа являются днями, а дроби - частью дня. В своем коде, где вы добавляете 1 для заполнения следующего значения, попробуйте добавить 1/24 (то есть одну 24-ю часть дня или 1 час). Я думаю, что это будет около строки 20, которую я бы изменил на outArr(i + 1/24, 1) = i + num1 чтобы увидеть, что произойдет. Подобные изменения, вероятно, необходимы в строках 22 и 24.

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

Создайте список ВСЕХ часов для вашего года под существующими данными в том же формате, следуя инструкциям в предыдущем вопросе, затем отсортируйте полный список (исходные данные плюс новый список часов) и удалите дубликаты.

Вам следует оставить отсортированный список всех часов вашего года с точками данных для тех часов, которые у них есть. Вы еще не сказали, хотите ли вы, чтобы значение 0,00 добавлялось в ячейку данных, но если вы это сделаете, сделать это тривиально, используя формулу Excel ISBLANK() в условии IF().

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