|
Среднее значение (аналогично СРЗНАЧ в Экссель) | ☑ | ||
---|---|---|---|---|
0
dft2014
12.06.18
✎
15:47
|
Есть функция, с помощью которой нахожу количество договорников на каждый день: ПодсчетДоговорников(Дата).
Не могу придумать, как теперь рассчитать среднее количество договорников на каждый день. Например: На 1июня - 10 договорников На 2июня - 15 договорников На 3июня - 18 договорников Среднее количество договорников будет: На 1июня 10/1=10 На 2июня (10+15)/2 = 12,5 На 3июня (10+15+18)/3 = 14,33 |
|||
1
novichok79
12.06.18
✎
15:51
|
НарастающийИтогПоКоличествуДоговорников / День(ТекущаяДатаСеанса())?
|
|||
2
dft2014
12.06.18
✎
15:53
|
(1) День(ТекущаяДатаСеанса()) не походит, т.к. период задается на форме отчета.
|
|||
3
dft2014
12.06.18
✎
16:01
|
Ниже код. Как добавить в него расчет среднего значения?
&НаСервере Функция ПросмотретьНаСервере() ТЗ = Новый ТаблицаЗначений; ТЗ.Колонки.Добавить("День"); ТЗ.Колонки.Добавить("Месяц"); ТЗ.Колонки.Добавить("ДГПХ"); ДГПХНаДату = 0; //Переберем все даты за период ТекДат = НачалоДня(Отчет.Дата1); Пока ТекДат <= НачалоДня(Отчет.Дата2) Цикл ДГПХНаДату = ПодсчетДоговорников(ТекДат); //Добавим текущую дату в таблицу периодов НовСтр = ТЗ.Добавить(); НовСтр.День = ТекДат; НовСтр.Месяц = Месяц(ТекДат); НовСтр.ДГПХ = ДГПХНаДату; ТекДат = ТекДат+86400;//Добавим 1 День ДГПХНаДату = 0; КонецЦикла; НовТабДок = Новый ТабличныйДокумент; Макет = РеквизитФормыВЗначение("Отчет").ПолучитьМакет("Макет"); ТЗ.Сортировать("Месяц Возр, День Возр"); текМесяц = "&#&#"; прошлыйМесяц = Неопределено; Для Каждого СтрокаТЗ Из ТЗ Цикл текМесяц = СокрЛП(СтрокаТЗ.Месяц); Если прошлыйМесяц = НЕОПРЕДЕЛЕНО Тогда НовыйМесяц = Истина; ИначеЕсли прошлыйМесяц = текМесяц Тогда НовыйМесяц = Ложь; Иначе НовыйМесяц = Истина; КонецЕсли; Если НовыйМесяц = Истина Тогда прошлыйМесяц = текМесяц; СтрокаМесяц = Макет.ПолучитьОбласть("Месяц"); СтрокаМесяц.Параметры.Месяц = СтрокаТЗ.Месяц; НовТабДок.Вывести(СтрокаМесяц); КонецЕсли; СтрокаТЧ = Макет.ПолучитьОбласть("СтрокаТЧ"); СтрокаТЧ.Параметры.День = СтрокаТЗ.День; СтрокаТЧ.Параметры.ДГПХ = СтрокаТЗ.ДГПХ; НовТабДок.Вывести(СтрокаТЧ); КонецЦикла; Возврат НовТабДок; КонецФункции |
|||
4
dft2014
12.06.18
✎
16:04
|
Т.е. сейчас уу меня отчет выводится в виде:
Июнь 01.06.2018 10 02.06.2018 15 03.06.2018 18 Надо добавить еще столбец расчета среднего, чтобы было так: Июнь 01.06.2018 10 10 02.06.2018 15 12,5 06.06.2018 18 14,3 |
|||
5
novichok79
12.06.18
✎
16:14
|
(2) в виде даты можно взять любое значение
(3) ТЗ.Итог("ДГПХ") / День(СтрокаТЗ.День) ? |
|||
6
novichok79
12.06.18
✎
16:18
|
(3) дичь какая-то имхо. непонятно откуда у тебя берется ДГПХ, почему сразу в запросе не взять, хз. накрайняк можно с СКД заморочиться.
чтобы было как в (4) надо делить не на день месяца, а на порядковый номер этого дня, т. е. ТЗ.Итог("ДГПХ") / ПорядковыйНомерДня |
|||
7
NSSerg
12.06.18
✎
16:25
|
(6) ???? Какая СКД? Три строки кода дописать.
прошлыйМесяц = Неопределено; всегоЗначений = 0; //NS суммаНарастающимИтогом = 0; //NS Для Каждого СтрокаТЗ Из ТЗ Цикл СтрокаТЧ.Параметры.День = СтрокаТЗ.День; СтрокаТЧ.Параметры.ДГПХ = СтрокаТЗ.ДГПХ; суммаНарастающимИтогом = суммаНарастающимИтогом + СтрокаТЗ.ДГПХ; всегоЗначений = всегоЗначений + 1; среднее = суммаНарастающимИтогом / всегоЗначений; НовТабДок.Вывести(СтрокаТЧ); КонецЦикла; |
|||
8
novichok79
12.06.18
✎
16:26
|
(7) ну раз 3 строки, то СКД - перебор
|
|||
9
dft2014
12.06.18
✎
16:41
|
(6) Спасибо! А как получить ПорядковыйНомерДня?
|
|||
10
NSSerg
12.06.18
✎
16:49
|
(9) В цикле прибавлять по единичке, как в (7)
переменная "всегоЗначений" |
|||
11
novichok79
12.06.18
✎
16:49
|
(9) очень странные вопросы... ПорядковыйНомерДня = Индекс(СтрокаТЗ) + 1?
|
|||
12
novichok79
12.06.18
✎
16:50
|
можно и порядковый номер дня счетчиком сделать, это уже дело фантазии автора
|
|||
13
Armando
12.06.18
✎
17:01
|
Может это поможет
http://v8.1c.ru/overview/Term_000000271.htm |
|||
14
NSSerg
12.06.18
✎
17:11
|
(13) Тут задача - в цикле (см. (0),(3)) посчитать среднее нарастающим итогом.
|
|||
15
ILM
гуру
12.06.18
✎
17:21
|
Убить менеждера, который это заказал - не предлагали?
|
|||
16
ILM
гуру
12.06.18
✎
17:21
|
Дайте ему Талеба "Черный лебедь" почитать.
|
|||
17
dft2014
12.06.18
✎
21:34
|
(7) Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |