Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: вроде было, а вроде нет (может кому надо)
 
 автор: Силыч   (04.01.2007 в 17:21)   личное сообщение
 
 

это я про медианы и персинтьли
выяснил для себя (раньше не было необходимости), что их можно расчитывать и с помощью стандартных экселевских функций....

ну и вот, рукотворное...
попутно выяснил (раньше не было необходимости), что в функции м.б. максимум 60 параметров. или показалось.

'-- IRR/ВСД
Public Function myIRR#(Optional arg1#, Optional arg2#, Optional arg3#, Optional arg4#, Optional arg5#, _
                        Optional arg6#, Optional arg7#, Optional arg8#, Optional arg9#, Optional arg10#, _
                        Optional arg11#, Optional arg12#, Optional arg13#, Optional arg14#, Optional arg15#, _
                        Optional arg16#, Optional arg17#, Optional arg18#, Optional arg19#, Optional arg20#, _
                        Optional arg21#, Optional arg22#, Optional arg23#, Optional arg24#, Optional arg25#, _
                        Optional arg26#, Optional arg27#, Optional arg28#, Optional arg29#, Optional arg30#, _
                        Optional arg31#, Optional arg32#, Optional arg33#, Optional arg34#, Optional arg35#, _
                        Optional arg36#, Optional arg37#, Optional arg38#, Optional arg39#, Optional arg40#, _
                        Optional arg41#, Optional arg42#, Optional arg43#, Optional arg44#, Optional arg45#, _
                        Optional arg46#, Optional arg47#, Optional arg48#, Optional arg49#, Optional arg50#, _
                        Optional arg51#, Optional arg52#, Optional arg53#, Optional arg54#, Optional arg55#, _
                        Optional arg56#, Optional arg57#, Optional arg58#, Optional arg59#, _
                        Optional Guess = 0)
Static r(120) As Double
On Error GoTo err33232
myIRR = Excel.Application.IRR(Array(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, _
                                    arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, _
                                    arg21, arg22, arg23, arg24, arg25, arg26, arg27, arg28, arg29, arg30, _
                                    arg31, arg32, arg33, arg34, arg35, arg36, arg37, arg38, arg39, arg40, _
                                    arg41, arg42, arg43, arg44, arg45, arg46, arg47, arg48, arg49, arg50, _
                                    arg51, arg52, arg53, arg54, arg55, arg56, arg57, arg58, arg59) _
                            , Guess)
Exit Function
err33232:
Exit Function
End Function


вызов:
=myIRR([A];[B];[C];[D];[E];[F];[G];[H];[I];[J];[K];[L])

а эта функция без ограничения в 60 месяцев, но не работает в формах и отчетах и в запросах (не удалось пофиксить array() в качестве параметра) но работает из VBA

Public Function myIRR0#(ByVal ArgList, Optional Guess = 0)
Static r(120) As Double
Dim i&
On Error GoTo err33232
If UBound(ArgList) < 0 Then Exit Function
For i = 0 To UBound(ArgList)
    If Not IsNumeric(ArgList(i)) Then
        r(i) = 0#
    Else
        r(i) = CDbl(ArgList(i))
    End If
Next i
myIRR0 = Excel.Application.IRR(r(), Guess)
Exit Function
err33232:
Exit Function
End Function


вызов:
?format(myIRR0(array(-1000,150,150,150,150,150,150,150,150,150,100)),"Percent")
7.62%

з.ы. особенности описаны здесь
http://sql.ru/forum/actualthread.aspx?bid=4&tid=322256&hl=irr

снг

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList