gpt4 book ai didi

excel - Excel PowerQuery 中是否有用于舍入数字的 secret 参数?

转载 作者:行者123 更新时间:2023-12-03 07:50:31 25 4
gpt4 key购买 nike

请告诉我如何在 Excel PowerQuery 中正确舍入数字?

  • 在 Excel 中输入“0.925”。
  • 使用工具栏,减少小数,数字变为 0.93
  • 尝试一个公式:= Round(0.925,2),您将得到 0.93

现在在 PowerQuery 中尝试

  • 金额 = 0.925
  • 回合([金额],2) = 0.92

我必须使用什么 secret 参数才能正确进行计算?

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjQ1NzU01bM0MlWKjQUA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"RAW Number" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"RAW Number", type number}}),
#"Added Custom1" = Table.AddColumn(#"Changed Type", "Round", each Number.Round([RAW Number],2)),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "FancyRound", each Number.Round([RAW Number], 2, RoundingMode.Up))
in
#"Added Custom2"

所以上面的这个查询在 Excel 中不起作用

但在 Power BI 中确实如此。

最佳答案

Power Query 默认采用舍入为偶数进行平局决胜,这与 VBA 相同。有许多打破平局的方法,其目的是尽量减少结果中的偏差。 Power Query 有一些方法,但绝不是全部。

Excel 的默认舍入模式是远离零舍入

以下函数演示了 Excel Power Query 中各种舍入模式的行为:

//NAME this query "fnDemoRoundingMode"

(n as number, d as number)=>
Table.FromColumns(
{
{"Away from Zero","Down","To Even","Toward Zero","Up"},
{Number.Round(n,d,RoundingMode.AwayFromZero),
Number.Round(n,d,RoundingMode.Down),
Number.Round(n,d,RoundingMode.ToEven),
Number.Round(n,d,RoundingMode.TowardZero),
Number.Round(n,d,RoundingMode.Up)}
},
type table[Mode=text, Rounded=number])

以下是使用 0.925 四舍五入到两位数的结果

= fnDemoRoundingMode(0.925,2)

enter image description here

有一些相关函数,例如 Number.RoundUp 和其他函数,它们在某些情况下也可能很有用。
如果您要四舍五入到整数,您可以尝试Int64.From 也采用 RoundingMode 参数,并将文本字符串转换为带有可选区域性参数的数字。

关于excel - Excel PowerQuery 中是否有用于舍入数字的 secret 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77255342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com