gammainv()Excel函数的替代方案?

gammainv()Excel函数的替代方案?,excel,vba,Excel,Vba,我相信我在Excel2007的gammainv函数中遇到了一个问题。对于某些输入参数组合,它返回NUM!错误 gammainv函数返回伽马累积分布的倒数 Syntax --> gammainv(probability,alpha,beta) 例如: =gammainv(0.83,0.0977,25.849) '<-- gives this problem. 对于相同的alpha和beta,概率=0.84和概率=0.85时也会出现问题,但对于0和1之间的所有其他0.01增量值,则不

我相信我在Excel2007的gammainv函数中遇到了一个问题。对于某些输入参数组合,它返回NUM!错误

gammainv函数返回伽马累积分布的倒数

Syntax --> gammainv(probability,alpha,beta)
例如:

=gammainv(0.83,0.0977,25.849) '<-- gives this problem.
对于相同的alpha和beta,概率=0.84和概率=0.85时也会出现问题,但对于0和1之间的所有其他0.01增量值,则不会出现问题。这是一个例子,这个问题也出现在概率的其他组合中,α和β。当使用matlab的gaminv函数时,这个例子可以毫无问题地工作

我相信问题与这个问题有关:

我的问题是这个问题是否有解决办法。我感兴趣的是:

Excel 2007中此函数的一些修复程序 一个VBA函数,其功能相同,但没有问题。 任何其他导致问题缩小的因素。 任何有助于我评估实例的解决方法,如所示示例。
只需将函数包装在对IFERROR的调用中,如下所示:

问题在于Excel的GAMMAINV和GAMMA.INV函数使用迭代算法,如果解决方案在设定的迭代次数内不收敛,则该算法终止。GAMMAINV必须在内部收敛,GAMMA.INV必须在内部收敛


使用小参数时,算法收敛速度较慢,因此提前终止的可能性较高,即使用Num!价值幸运的是,通过将对GAMMAINV或GAMMA.INV的调用封装在对IFERROR的调用中,可以成倍地降低不收敛的可能性。

感谢您的建议。我已经试了几分钟了,但还没有找到任何东西。如果你知道你在这个世界上的生活方式,我非常希望你能发布一个链接到这样一个功能。最初的评论似乎已经消失了。建议是:谷歌提供一个开源的gammainv函数。
=IFERROR(GAMMAINV(P,alpha,beta),GAMMAINV(P,alpha,beta))