2010-07-20 72 views
10

試圖破譯一些Excel公式,我看到一些東西像SUMPRODUCT( - 左(...))什麼 - 在Excel中做?

什麼是 - 在做什麼?自然而然,似乎遞減給我,但無法找到任何文件。

謝謝。

回答

14

雙破折號被稱爲雙重一元運算符。

嘗試此鏈接:Why use -- in SUMPRODUCT formulae

具體來說:

SUMPRODUCT()忽略非數字的條目。比較返回一個布爾值(TRUE/FALSE),它是非數字的。 XL在算術運算中自動將布爾值強制爲數值(分別爲1/0)(例如,TRUE + 0 = 1)。

強制值的最有效方法是首先應用一元減法運算符,將TRUE/FALSE強制爲-1/0,然後再次應用它來取反該值,例如+1/0。

單元運算符( - )脅迫真/假值到-1/0。通過使用雙重一元操作符,我們再次將值強制爲1/0

4

一元運算符( - )是將true/false語句轉換爲-1/0的簡寫方法。

一個單一的運營商將轉換 - (真)爲-1,所以雙元運算符是用來給轉換回1:

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

我一直在使用SUMPRODUCT了一段時間,一直使用*符號而不是--。我確定我問過你問過的同一個問題,但我不記得他們給我的原因,但我被告知,由於沒有它,sumproduct管理得很好,所以並不需要--

無論如何,=sumproduct(()*()*()*())一直爲我工作,它不那麼容易混淆。

+0

- 同樣可以在一個時間強制一個數組。 – Noumenon 2015-10-09 01:26:09

0

將excel中的布爾值TRUE和FALSE視爲1和0,但我們需要將它們轉換。要將它們轉換爲數字1或0,請執行一些數學運算。 Unary運算符否定布爾(數學運算),因此將布爾轉換爲數字。 TRUE * FALSE = 0