【问题标题】:What does -- do in Excel formulas?-- 在 Excel 公式中的作用是什么?
【发布时间】:2010-07-20 00:47:20
【问题描述】:

试图破译一些 Excel 公式,我看到一些东西,例如 SUMPRODUCT(--Left(...)...)

-- 在做什么?自然对我来说似乎是递减,但找不到任何文档。

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    双破折号称为双一元运算符。

    试试这个链接:Why use -- in SUMPRODUCT formulae

    具体来说:

    SUMPRODUCT() 忽略非数字条目。比较返回一个非数字的布尔 (TRUE/FALSE) 值。 XL 在算术运算(例如,TRUE + 0 = 1)中自动将布尔值强制转换为数值(分别为 1/0)。

    强制该值最有效的方法是首先应用一元减号运算符,将 TRUE/FALSE 强制为 -1/0,然后再次应用它来否定该值,例如 +1/0。

    单个一元运算符 (-) 将 true/false 值强制转换为 -1/0。通过使用双一元运算符,我们再次将值强制为 1/0

    【讨论】:

      【解决方案2】:

      一元运算符 (-) 是将真/假语句转换为 -1/0 的简写方法。

      单个运算符会将 -(true) 转换为 -1,因此使用双一元运算符将其转换回 1:

      -(-(true)) = -(-(1)) = 1
      -(-(false)) = -(-(0)) = 0
      

      【讨论】:

        【解决方案3】:

        我使用 SUMPRODUCT 已经有一段时间了,并且一直使用 * 符号而不是 --。我确定我问过你问过的同样问题,但我不记得他们给我的原因,但有人告诉我,真的不需要--,因为 sumproduct 在没有它。

        不管怎样,=sumproduct(()*()*()*()) 一直对我有用,而且不那么令人困惑。

        【讨论】:

        • -- 一次可以强制一个数组。
        【解决方案4】:

        excel中的布尔值TRUE和FALSE被视为1和0,但我们需要将它们转换。要将它们转换为数字 1 或 0,请进行一些数学运算。一元运算符否定布尔值(数学运算),因此将布尔值转换为数字。同样适用于 TRUE * FALSE = 0

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2022-08-14
          • 1970-01-01
          • 2020-11-11
          • 1970-01-01
          • 2018-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多