Заполнение пропущенного времени набора данных с разбитым временным рядом

335
Britt

Я загружал в минуту данные из Google Analytics. Тем не менее, он предоставляет только позицию за каждую минуту, что есть значение больше нуля.

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

Я преобразовал «Час дня» (столбец A) и «Минуту» (столбец B) в «Время» (столбец G), используя

=TIME(RIGHT(A3,2),B3,0) 

Я пытался использовать индекс / совпадение

=INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0)) 

в столбце, Iссылающемся на непрерывный временной ряд в столбце H, чтобы вернуть данные в столбце, Cно он возвращает #N/A.

Вот скриншот, показывающий желаемый результат, введенный вручную, в столбце  I:

Screen shot updated

Так как H6есть 12:03:00 AM, I6должен содержать 2, который является значением из  C3, так как G3есть 12:03:00 AM.

Аналогично, H11 = G4 = 12:08:00 AMI11 = C4 = 1

Строки, Hзначение которых отсутствует в столбце,  Gдолжны иметь 0столбец in  I.

0

1 ответ на вопрос

1
robinCTS

Проблема возникает из-за расхождений с плавающей запятой, когда вы используете заполнение линейных рядов Excel для автоматического заполнения времен в столбце Hпо сравнению с временами, созданными с помощью TIME()функции.

Это можно подтвердить, введя =H6-G3в любую ячейку или выбрав H6, затем нажав, F2а затем Enter. Обратите внимание, что хотя F2метод можно использовать для коррекции значений времени по одному, это не удобно для любого значительного числа ячеек.

Решение состоит в том, чтобы генерировать Continuous Timeзначения по формуле.

Worksheet Screenshot using OP's Formula

Введите следующую формулу H3и ctrl-enter / copy-paste / fill-down / auto-fill так далеко, насколько это необходимо, после конца Hстолбца таблицы :

=IF(ISTEXT(H2),TIME(RIGHT(A3,2),0,0),TIME(HOUR(H2),MINUTE(H2)+1,0)) 

Обратите внимание, что значения времени можно оставить как есть или преобразовать в литеральные значения, скопировав и вставив их в качестве значений.

Как вы можете видеть, ваша формула индекса / соответствия в столбце Iтеперь будет подбирать столбец «Пользователи из», Cкогда в столбце существует подходящее время G.


РЕДАКТИРОВАТЬ:

Хотя приведенная выше формула является «надежной» и позволяет вставлять / удалять строки над заголовком, не разбивая его, как указывал Скотт (особенно если копировать / вставлять как значения), существует более простая и менее надежная версия:

=TIME(RIGHT($A$3,2),ROW()-3,0) 

Дальнейшее упрощение этого приводит к следующей простейшей формуле:

=TIME(0,ROW()-3,0) 

Осталось только изменить формулу, чтобы генерировать нули, когда время отсутствует:

=IFERROR(INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0)),0) 

Worksheet Screenshot using Modified Formula

Большое спасибо за Вашу помощь!!! Я думал, что я был на правильном пути. Вы, ребята, были так полезны :) Britt 5 лет назад 0
@ Бритт Не за что. Не забудьте «принять» ответ (нажав на серую галочку в левом верхнем углу ответа), чтобы пометить вопрос как решенный. Это также правильный способ сказать «спасибо», поскольку он вознаграждает ответчика (и вас) репутацией. PS Если вы действительно оценили мою помощь, как только вы достигнете 15+ репутации, не забудьте вернуться и поднять мой ответ ;-) robinCTS 5 лет назад 0
Вы можете сделать `H3` гораздо проще:` `= TIME (RIGHT (A $ 3,2), ROW () - 3, 0)` `. Scott 5 лет назад 0
@ Скотт Да. Но тогда формула нарушается, если строки вставляются / удаляются над заголовком. Я думаю о том, что лучше: более простая, но менее надежная версия или более сложная, но более надежная версия. Для личного использования я всегда предпочитаю надежность над простотой. Для ответов на Super User, если формула уже довольно сложна, я пытаюсь сделать менее надежную версию (если я помню). Я полагаю, что в этом случае, если формулы будут скопированы как значения, тогда более простая формула будет лучше. robinCTS 5 лет назад 1
@Scott Ваша формула еще больше упрощается до `= TIME (0, ROW () - 3,0)`. robinCTS 5 лет назад 0
@Britt FYI Я обновил ответ с более простой формулой для столбца `H`. robinCTS 5 лет назад 0
@robinCTS: Да, если вы предполагаете, что ОП хочет, чтобы график начинался в полночь, даже если данные этого не делают. Если данные начинаются в 5 часов утра, это приведет к 300 пустым строкам. Scott 5 лет назад 1

Похожие вопросы