Добрый день, на работе столкнулась с проблемой. Сейчас попробую ее описать и приложу файлик пример. Первая колонка - даты, вторая - значение, третья - нарастающая формула (просто сумма). Чтобы посчитать среднее значение за месяц - я вставляю недостающие даты, протягиваю формулу и считаю среднее. Может это можно сделать как-то по другому? Подскажите, пожалуйста.
Добрый день, на работе столкнулась с проблемой. Сейчас попробую ее описать и приложу файлик пример. Первая колонка - даты, вторая - значение, третья - нарастающая формула (просто сумма). Чтобы посчитать среднее значение за месяц - я вставляю недостающие даты, протягиваю формулу и считаю среднее. Может это можно сделать как-то по другому? Подскажите, пожалуйста.Yap
Тут важен другой момент. Насколько корректно делать таблицу со всеми днями месяца, т.к. при расчете среднего значения, получившаяся сумма делится на кол-во указанных в таблице дней месяца, и если в случае исходной таблицы, к примеру, в марте, указано только 11 дней (т.е. делим на 11), то в случае с новой таблицей - делим совершенно другую сумму на 31.
ЗЫ. Ответ по январю совпал только потому, что у автора в исходной таблице прописаны все дни января. А вот дальше идет расхождение.
Тут важен другой момент. Насколько корректно делать таблицу со всеми днями месяца, т.к. при расчете среднего значения, получившаяся сумма делится на кол-во указанных в таблице дней месяца, и если в случае исходной таблицы, к примеру, в марте, указано только 11 дней (т.е. делим на 11), то в случае с новой таблицей - делим совершенно другую сумму на 31.
ЗЫ. Ответ по январю совпал только потому, что у автора в исходной таблице прописаны все дни января. А вот дальше идет расхождение.ArkaIIIa
Сообщение отредактировал ArkaIIIa - Понедельник, 29.09.2014, 17:31
Хочу предложить решение в стиле UDF (с потешным названием функция, написанная на VBA, язык макросов). Во вложении пример использования. У функции два аргумента - первый диапазон дат, второй диапазон с остатками.
[vba]
Код
Option Explicit Option Base 1
Function Average_Remains(DateX As Range, Remains As Range) As Double
'Author: Roman Rioran Voronov 'Date: the 29-th of September, 2014 'Feedback: voronov_rv@mail.ru
Dim arrX As Variant Dim sizeX As Long Dim Day1 As Long Dim X As Long Dim A As Long
For X = 1 To UBound(arrX) arrX(X) = Day1 - 1 + X Average_Remains = Average_Remains + Remains.Cells(A + 1, 1).Value If arrX(X) + 1 = DateX.Cells(A + 2, 1) Then A = A + 1 Next X
Average_Remains = Average_Remains / UBound(arrX)
End Function
[/vba]
Yap, здравствуйте.
Хочу предложить решение в стиле UDF (с потешным названием функция, написанная на VBA, язык макросов). Во вложении пример использования. У функции два аргумента - первый диапазон дат, второй диапазон с остатками.
[vba]
Код
Option Explicit Option Base 1
Function Average_Remains(DateX As Range, Remains As Range) As Double
'Author: Roman Rioran Voronov 'Date: the 29-th of September, 2014 'Feedback: voronov_rv@mail.ru
Dim arrX As Variant Dim sizeX As Long Dim Day1 As Long Dim X As Long Dim A As Long
For X = 1 To UBound(arrX) arrX(X) = Day1 - 1 + X Average_Remains = Average_Remains + Remains.Cells(A + 1, 1).Value If arrX(X) + 1 = DateX.Cells(A + 2, 1) Then A = A + 1 Next X
Если нужно учитывать все дни - то вариант Russel`а правильный.
Не думаю, что ступенчатая интерполяция хорошее решение для такой задачи. Была тут, помнится, такая тема. Как раз про расчёт среднего по результатам измерений с неравными интервалами времени.
PS: пардон, там как раз с равными интервалами, а с переменными вот тут.
Если нужно учитывать все дни - то вариант Russel`а правильный.
Не думаю, что ступенчатая интерполяция хорошее решение для такой задачи. Была тут, помнится, такая тема. Как раз про расчёт среднего по результатам измерений с неравными интервалами времени.
PS: пардон, там как раз с равными интервалами, а с переменными вот тут.Формуляр
Excel 2003 EN, 2013 EN
Сообщение отредактировал Формуляр - Вторник, 30.09.2014, 19:34