【问题标题】:Excel, extra brackets change value of formula?Excel,额外的括号改变公式的值?
【发布时间】:2017-03-24 09:21:44
【问题描述】:

我在 excel 中从两张表中添加几个单元格的值。

我使用下面的公式来计算这个。

我的问题是为什么两个公式没有给出相同的结果?据我所知,唯一的区别是第二个公式有一个额外的括号,应该不会改变任何东西?

=SUM(SUMIFS('Ark1'!F15:F75;'Ark1'!E15:E75;{"adgangsareal bolig";"fællesrum bolig"}))+SUM(SUMIFS('Ark2'!F11:F126;'Ark2'!E11:E126;"bolig"))

=SUM((SUMIFS('Ark1'!F15:F75;'Ark1'!E15:E75;{"adgangsareal bolig";"fællesrum bolig"}))+SUM(SUMIFS('Ark2'!F11:F126;'Ark2'!E11:E126;"bolig")))

直到现在,通过我的工作,后一个公式一直运行良好,但是对于这个特定值,我需要删除额外的括号。

【问题讨论】:

  • 我把你的函数翻译成英文,任何解决方案也应该用英文提供:)
  • 两个结果之间的差异有多大?两个版本的公式是否在同一个单元格中?
  • 真正的问题是你为什么要把总和相加?附言没有例子,破译你的公式很麻烦
  • 评估公式(在“公式”选项卡下)并逐步检查每一个以查看不同计数的来源。
  • 我认为额外的括号不会改变公式的含义。您是否输入了任何 as 数组公式 (Ctrl+Shift+Enter)?如果单击单元格并查看公式栏,它是否以“{”开头?

标签: excel excel-formula brackets


【解决方案1】:

Jacob 是正确的,它是导致问题的数组位,但实际上问题是由包含数组的表达式中的 + 号引起的,这导致表达式被评估为数组公式。您可以通过将 + 更改为 ; 来解决此问题。 (或您的语言环境中的任何参数分隔符)。

一个更简单的例子(我的语言环境使用 ,而不是 ;):

=SUM({5,10}+20)

结果为 55(表达式评估器使用数组扩展规则创建 (5+20)+(10+20),然后将 {25,30} 传递给 SUM)但是

=SUM({5,10},20)

结果为 35

【讨论】:

  • 好点,我完全忽略了这一点。 SUM() 函数基于“,”或在本例中为“;”来分隔值。因此,在每个值内,它将识别数组并返回两个相加的值。
  • 感谢您的回复。我不知道数组是以这种方式读取的。我只使用数组来为 sumifs 提供更多标准。
【解决方案2】:

在您的第一个 SUMIFS() 中,您将条件列为数组。当单独在第一个 SUMIFS() 周围使用 SUM() 时,它返回满足第一个条件的范围之和在该范围内为真,然后对第二个条件重复,然后添加第二个 SUMIF()。

当您添加括号时,您对第一个数组值的第一个 SUMIF() 和第二个 SUMIF() 进行 SUM(),然后对第二个数组重复。因此,您实际上将第二个 SUMIF() 总数加了两次。

我相信你想要这样的东西:

=SUM(SUMIF('Ark1'!E15:E75;"adgangsareal bolig";'Ark1'!F15:F75);SUMIF('Ark1'!E15:E75;'Ark1'!F15:F75;"fællesrum bolig");SUMIF('Ark2'!E11:E126;"bolig";'Ark2'!F11:F126))

【讨论】:

    【解决方案3】:

    试试这个:

    =(87,35+464,71-87,35-464,71)
    =87,35+464,71-87,35-464,71
    

    第二个公式正确得出ZERO,而
    第一个结果非常少(-0,0000000000000568434)

    添加更多小数位以查看它。 我认为这是一个 BUG,与不同类型的数字(十进制、浮点数等)有关。

    【讨论】:

      猜你喜欢
      • 2012-09-09
      • 2019-01-30
      • 1970-01-01
      • 2019-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      相关资源
      最近更新 更多