Ten vzorec je skalárny súčin dvoch polí (v exceli rozsahy buniek, v matematike vektory). V prvom sú jednotky a nuly podľa toho, či ich chce zarátať do sumy alebo nie. V druhom sú hodnoty, ktoré sa potom prirátavajú podľa prvého poľa (buď jedenkrát alebo nulakrát).
1. Tento vzorec použil preto, že v tom prvom poli si môže ľubovoľne definovať podmienku pomocou vzorca - to sa pomocou SUMIF nedá. Aby to fungovalo, musia to ale byť polia čísel (TRUE ani FALSE nie je číslo).
2. Áno, -- je klasické + z matematiky. Je to tam preto, aby sa z TRUE/FALSE stalo číslo. Samotné + nestačí, dalo by sa tam ale dať napríklad 0+. Kvôli zrozumiteľnosti je najlepšie použiť funkciu N.
3. Napríklad takto zrušíš všetky medzery hneď pri vkladaní:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim aCell As Range
Dim aString As String
For Each aCell In Target
If Not aCell.HasFormula Then
aString = Trim(aCell)
If aCell.Value <> aString Then
aCell.Value = aString
End If
End If
Next aCell
End Sub