Power BI无LogInv()函数,如何基于三列创建LogInv计算列?
在Power BI中创建LogInv等价列(基于概率、均值、标准差)
可以实现,根据你的均值、标准差对应的参数类型,用DAX编写计算列即可,分两种情况:
情况1:均值、标准差是对数正态对应的正态分布参数
如果你的均值列是对数转换后的正态分布均值,标准差列是对数转换后的正态分布标准差,直接用以下DAX公式创建计算列:
LogInv列 = EXP(NORM.INV([概率列], [均值列], [标准差列]))
这个逻辑和Excel的LOGINV函数完全一致:先通过NORM.INV得到正态分布的分位数,再取指数得到对数正态分布的对应分位数。
情况2:均值、标准差是原始对数正态分布的均值和标准差
如果你的均值和标准差是原始对数正态分布的统计量(而非对数后的参数),需要先转换为对应的正态分布参数,再计算:
LogInv列 = VAR 对数正态均值 = LN([均值列]^2 / SQRT([均值列]^2 + [标准差列]^2)) VAR 对数正态标准差 = SQRT(LN(1 + ([标准差列]^2 / [均值列]^2))) RETURN EXP(NORM.INV([概率列], 对数正态均值, 对数正态标准差))
注意事项
- 概率列的值必须在0到1之间,否则
NORM.INV会返回错误值 - 均值列必须为正数,因为对数正态分布的取值范围是正实数
- 若标准差列为0,对数正态分布退化为常数(即均值列的值),可单独添加判断逻辑避免计算错误
内容的提问来源于stack exchange,提问作者user2746986
相关产品推荐
相关产品推荐

