В настоящее время я работаю над проектом, который требует, чтобы температура измерялась один раз в час. Как и для всех инструментов, были часы / дни, когда инструменты не измеряли. Я хочу рассчитать среднюю температуру для каждого дня, хотя каждый день не состоит из 24 строк. Это возможно? Формат даты указан в ссылке.
2 ответа
Самый простой подход, без какой-либо формулы суеты, заключается в создании сводной таблицы. Потяните поле даты / времени в область строк и поле температуры в область значений и установите его в "среднее".
Щелкните правой кнопкой мыши любое значение в области значений и выберите Суммировать значения по> Среднее
В зависимости от версии Excel вы можете использовать
- в Excel 2016 функция Get & Transform
- или ранее (Excel 2010/2013) - тот же инструмент, что и в бесплатной надстройке MS под названием Power Query (Excel 2010/2013)
В зависимости от того, где сохранены ваши записи температуры (файл CSV или таблица Excel), вы импортируете их в пользовательском интерфейсе.
Затем вы разбиваете столбец даты на два (дата + время)
и, наконец, сгруппировать по дате столбец температуры (средняя). У тебя такой новый стол.
В этом примере я предполагаю, что ваши данные сохранены в двух столбцах:
| Дата | Температура |
Сгенерированный код из пользовательского интерфейса Get & Transform будет выглядеть так:
let
Source = Excel.CurrentWorkbook(){[Name="Tabelle2"]}[Content],
#"Change Type" = Table.TransformColumnTypes(Source,{{"Date", type text}, {"Temperature", type number}}),
#"Split column by delimiter" = Table.SplitColumn(#"Change Type", "Date", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Date.1", "Date.2"}),
#"Change Type 1" = Table.TransformColumnTypes(#"Split column by delimiter",{{"Date.1", type date}, {"Date.2", type number}}),
#"Group rows" = Table.Group(#"Change Type 1", {"Date.1"}, {{"avg temperature", each List.Average([Temperature]), type number}})
in
#"Group rows"