Get Your Numbers Right



Subtracts one number from another, with up to 32,767 significant digits of precision.



number1 Required. The number from which number2 will be subtracted.
number2 Required. The number that will be subtracted from number1.
format_negative Optional. Determines whether negatives are formatted with a leading hyphen ("-"), or parentheses ("()"). Set to 1 to format negatives with a leading hyphen. Set to 2 for parentheses. 1 by default.

You can also format negatives with a red font.

format_thousands Optional. Determines whether thousands separators are included. Set to TRUE to include thousands separators. FALSE by default.
format_currency Optional. Determines whether currency symbol is included. Set to TRUE to include currency symbol. The currency symbol will be added either to the beginning or to the end of the result, whichever is appropriate for the locale. FALSE by default.
exponential_notation Optional. Determines whether result is formatted in exponential notation. Set to TRUE to format in exponential notation. FALSE by default.
maximum_significant_digits Optional. Determines the maximum number of significant digits to be returned. Default is 100, or the user's custom maximum set in the About box, or the maximum number allowed by the edition of xlPrecision, whichever is less.
format_decimal_place Optional. Determines whether to add or remove decimal places as required to return the exact specified number of decimal places.

When format_decimal_place causes decimal places to be removed, the remaining decimals are rounded, exactly as Excel's number formatting does.

Set format_decimal_place to the number of decimal places desired. For example, set to 3 to specify that the result should have exactly 3 decimal places, so that:

  • "123.4" is formatted as "123.400"
  • "12.3456" is formatted as "12.346"
  • "9.9999" is formatted as "10.000"

Use the Insert Function Dialog to easily enter these arguments:
(available on most editions of xlPrecision, but not recommended with the Free Edition as it causes the Free Edition dialog to appear multiple times)




Formula Description Result
=xlpSUBTRACT(1,2) 1 - 2 -1

To prevent Excel from truncating the numbers to 15 digits, enter them in quotes as shown.

123456789123.456789 - 123456.789123456789, without letting Excel truncate to 15 significant digits 123456665666.667665543211
(25 significant digits)
=xlpSUBTRACT(1,2,2) 1 - 2, formatted with parentheses if negative (1)
=xlpSUBTRACT(2000,2,,TRUE) 2,000 - 2, formatted with localized thousands separators 1,998  (in the USA)
1.998  (in Germany)
1 998  (in France)
=xlpSUBTRACT(2000,2,,,TRUE) 2,000 - 2, formatted with the local currency symbol $1,998  (in the USA)
1.998  (in Germany)
1 998  (in France)
1.998 kr  (in Estonia)
1,998Lek  (in Albania)
=xlpSUBTRACT(2000,2,,,,TRUE) 2,000 - 2, formatted in exponential notation 1.998E+3
=xlpSUBTRACT("1.002E+3","3.004E+3",,,,TRUE) '1.002E+3' - '3.004E+3', formatted in exponential notation -2.002E+3

To prevent Excel from truncating the numbers in cells A1 & A2 to 15 digits, preformat those cells as "Text" number format, or enter a leading apostrophe.

A1 - A2, with up to 500 (or 500,000, or the number in A3) significant digits of precision.

Allows A1, A2, and the return value to each be up to 500 (or 500,000, or the number in A3) significant digits.

=xlpSUBTRACT(12.3,23,,,,,,3) 12.3 - 23, formatted to 3 decimal places. -10.700
(padded with zeros to meet the specified number of decimal places)
=xlpSUBTRACT(12.3,0.123,,,,,,2) 12.3 - 0.123, formatted to 2 decimal places. 12.18
(rounded to fit the specified number of decimal places)
=xlpSUBTRACT(2,2000,2,TRUE,TRUE,,500,2) 2 - 2,000, formatted with:
  • parentheses if negative
  • localized thousands separators
  • local currency symbol
  • up to 500 significant digits of precision
  • 2 decimal places
($1,998.00)  (in the USA)
998,00 )  (in Germany)
998,00 )  (in France)
(1 998.00 kr)  (in Estonia)
998,00Lek)  (in Albania)



xlPrecision Home Page
PrecisionCalc Home Page