|
Помогите расчитать дисперсию в 1С | ☑ | ||
---|---|---|---|---|
0
fierylions
10.06.14
✎
11:07
|
Добрый день. Задача перенести формулы с Excel в 1С.
В Excel есть функция Дипс() Которая рассчитывает дисперсию числа (средние отклонение числа). Как можно рассчитать дисперсию в 1С? формула или функция? Спасибо. |
|||
1
vicof
10.06.14
✎
11:07
|
не стыдно?
|
|||
2
shuhard
10.06.14
✎
11:08
|
(0)[формула или функция? ]
ни то, ни другое есть лишь фишка в СКД |
|||
3
fierylions
10.06.14
✎
11:10
|
(2) можете привести пример?
|
|||
4
Поpyчик-4
10.06.14
✎
11:11
|
(0) Передаём таблицу значений в СКД и считаем штатной функцией.
Работает в 8.3. |
|||
5
Черный бухгалтер
10.06.14
✎
11:15
|
(0) Я как-то - наоборот, из 1С выгружал в Excel, там всё считал и сохранял.
|
|||
6
shuhard
10.06.14
✎
11:21
|
(3) могу, не буду
|
|||
7
fierylions
10.06.14
✎
11:22
|
(4) (5) Спасибо.
|
|||
8
Михаил Козлов
10.06.14
✎
11:23
|
(3) "Почти можно" и запросом. Идея такая:
квадрат дисперсии = СУММА(Xi-Xср)^2/N*(N-1) N - число записей - можно запросом Xср - среднее значение - можно запросом СУММА(Xi-Xср)^2 = СУММА(Xi)^2-2*СУММА(Xi)*Xср+Xср^2 Все члены можно запросом. Не уверен, но, может быть в типовых есть в ABCКлассификации покупателей. В рабочей конфе в самодельном документе текст запроса выглядит так: Запрос.Текст = "ВЫБРАТЬ Разрешенные | Номенклатура, | ХарактеристикаНоменклатуры, | Количество(Номенклатура) КАК Артикулов, | СУММА(СуммаВыручки) КАК СуммаВыручки, | СУММА(СуммаВыручки*СуммаВыручки) КАК КвадратСуммыВыручки, | СУММА(СуммаВаловойПрибыли) КАК СуммаВаловойПрибыли, | СУММА(СуммаКоличества) КАК СуммаКоличества, | СУММА(СуммаКоличества*СуммаКоличества) КАК КвадратСуммыКоличества |ИЗ (ВЫБРАТЬ | ТаблицаРегистра.Номенклатура КАК Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | МЕСЯЦ(ТаблицаРегистра.Период) КАК месяцВГоду, | СУММА(ТаблицаРегистра.СтоимостьОборот) КАК СуммаВыручки, | СУММА(ВЫБОР КОГДА ТаблицаРегистраСебестоимость.Номенклатура ЕСТЬ NULL ТОГДА ТаблицаРегистра.СтоимостьОборот | ИНАЧЕ ТаблицаРегистра.СтоимостьОборот - ТаблицаРегистра.КоличествоОборот * ВЫБОР КОГДА ТаблицаРегистраСебестоимость.КоличествоОборот = 0 ТОГДА 0 ИНАЧЕ ТаблицаРегистраСебестоимость.СтоимостьОборот / ТаблицаРегистраСебестоимость.КоличествоОборот КОНЕЦ | КОНЕЦ) КАК СуммаВаловойПрибыли, | СУММА(ТаблицаРегистра.КоличествоОборот) КАК СуммаКоличества |ИЗ РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор," + ТекстГде + " |) КАК ТаблицаРегистра |ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПродажиСебестоимость.Обороты(&ДатаНач, &ДатаКон, Регистратор,) КАК ТаблицаРегистраСебестоимость |ПО ТаблицаРегистра.Номенклатура = ТаблицаРегистраСебестоимость.Номенклатура |И ТаблицаРегистра.ХарактеристикаНоменклатуры = ТаблицаРегистраСебестоимость.ХарактеристикаНоменклатуры |И ТаблицаРегистра.Регистратор = ТаблицаРегистраСебестоимость.Регистратор |СГРУППИРОВАТЬ ПО | ТаблицаРегистра.Номенклатура, | ТаблицаРегистра.ХарактеристикаНоменклатуры, //| ГОД(ТаблицаРегистра.Период), | МЕСЯЦ(ТаблицаРегистра.Период) |) КАК ВнутреннийЗапрос |СГРУППИРОВАТЬ По Номенклатура,ХарактеристикаНоменклатуры |Упорядочить По СуммаВыручки Убыв |ИТОГИ | МАКСИМУМ(Артикулов), | СУММА(СуммаВыручки), | СУММА(СуммаВаловойПрибыли), | СУММА(КвадратСуммыВыручки), | СУММА(СуммаКоличества), | СУММА(КвадратСуммыКоличества) |ПО ОБЩИЕ"; |
|||
9
Crush
25.06.14
✎
16:06
|
(8) Непонятно мне решение!
Дисперсия - это квадрат среднее квадратическогое отклонения, т.е. сумма квадратов отклонений деленная на количество записей. СУММА(Xi-Xср)^2/N*(N-1) - а это вообще непонятно что. СУММА(Xi-Xср)^2 - это квадрат суммы отклонений - совершенно не сумма квадратов! /N*(N-1) - это конечно похоже на расчет стандартного отклонения, но наоборот должно быть *N/(N-1) Здесь можно посмотреть в чем разница wiki:Среднеквадратическое_отклонение В СКД что то туго получается посчитать без предварительного расчета средней, а среднюю то хочется не только по всей таблице, а еще и по группировкам. Получается агрегатная функция Вычислить("Среднее(блабла)") находится внутри Сумма(). Разбирался как считать корень через треугольник, вписанный в окружность, пришел к тем же самым рядам Тейлора для расчета косинуса. 10 рядов дали точность 15 знаков после запятой. - забил:) Сейчас хочу попробовать передать массив данных в процедуру общего модуля и применить общий объект АнализДанных (ОбщаяСтатистика). Правда там стандартное отклонение вместо среднеквадратического, но это решаемо. |
|||
10
Crush
25.06.14
✎
16:11
|
(9) Криво написал, сам разобрать не могу. Исправлюсь:)
Дисперсия - это квадрат среднего квадратического отклонения... |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |