PrecisionCalc
xl
Precision
Get Your Numbers Right

 

xlpEXTRACTNUM

Extracts numeric and other desired characters from a number or text.

Requires the 5,000 SD edition of xlPrecision or higher, or the Free Edition.

Decimal:

Negative Numbers:

Exponential Notation:

 

Syntax

xlpEXTRACTNUM(num,numlist...,format)

num Required. The number or text from which to extract numeric and other desired characters

num does not appear in Microsoft Excel's 'Insert Function' dialog. Instead, the first numlist argument is considered the num argument. If the first numlist argument is a range of cells, then the upper-left cell is considered the num argument.

numlist... Optional. The list of characters and/or text strings to extract from num (in addition to numeric characters, which are extracted by default). Accepts up to 29 numlist arguments, or up to 28 if the optional format argument is used.
format Optional. Determines formatting options (formatting negatives with parentheses instead of a leading hyphen, adding thousands separators, adding currency symbol, and formatting in exponential notation), and setting maximum significant digits.

Any argument that begins with the text "format:" (must include the colon at the end) is evaluated as a format argument.

Each of the five format options can be used individually in separate arguments, or any number of them can be combined in the same argument.

When combining multiple format options into one format argument:

  • The text "format:" need only appear at the beginning.
  • The text "negative", thousands", "currency", "exponent", and/or "MSD=" can appear anywhere after the text "format:".
  • Any uninterrupted series of numeric digits appearing right after the text "MSD=" are taken to be the number of maximum significant digits.
  • See below for examples of valid and invalid combination format values.

Must be enclosed in double quotes ("") if included directly in an xlpEXTRACTNUM argument. Double quotes are not necessary if the format argument references a cell in which the format argument is entered.

May be included anywhere but first in the series of xlpEXTRACTNUM arguments -- can be the second argument, or the last, or anywhere in-between.

The format argument is not case sensitive.

format value

Result
format:negative If return value is negative, it is formatted with parentheses ("()") instead of the default leading hyphen ("-").

You can also format negatives with a red font.

format:thousands Return value is formatted with thousands separators (commas in English).
format:currency Return value is formatted with the local 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.
format:exponent Return value is formatted in exponential notation.
format:MSD=n 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.

Examples of valid combination format values

format:negative,thousands,currency,MSD=200
(recognizes negative, thousands, currency, and MSD=200)
format:  negative - thousands - currency - MSD=75  blah blah this extra text is ignored
(recognizes negative, thousands, currency, and MSD=75)
format:negativethousandscurrencyMSD=1000
(recognizes negative, thousands, currency, and MSD=1000)
FORMAT:NEGATIVE,THOUSANDS,CURRENCY,MSD=200
(recognizes negative, thousands, currency, and MSD=200)
Format:Negative,Thousands,cUrReNcY,msD=200
(recognizes negative, thousands, currency, and MSD=200)
format:MSD=200,thousands,negative,currency
(recognizes MSD=200, thousands, negative, and currency)
format:MSD=200  blah blah this extra text is ignored  negative
(recognizes MSD=200 and negative)
format:currency,thousands
(recognizes currency and thousands)
Examples of invalid combination format values
format negative,thousands,currency,MSD=200
(missing colon (:) after "format")
format = negative,thousands,currency,MSD=200
(missing colon (:) after "format")
Examples of partially valid combination format values
format:negative,thousands,currency,MSD200
(recognizes negative, thousands, currency, BUT missing "=" after "MSD")
format:negative,thousands,currency,MSD:200
(recognizes negative, thousands, currency, BUT missing "=" after "MSD")
format:negative,thousand,currency,MSD=200
(recognizes negative, currency, and MSD=200, BUT "thousands" is misspelled as "thousand")
format:negative,thousands,currency,MSD=1,000
(recognizes negative, thousands, currency, BUT MSD is recognized as 1, not 1000, because the comma (",") is not a numeric digit)

Remarks

Examples

Formula Description Result
=xlpEXTRACTNUM("12abc34") Extract numeric characters from "12abc34" 1234
=xlpEXTRACTNUM("1-a2~b.c%3d)&(e@f4") Extract numeric characters from "1-a2~b.c%3d)&(e@f4" 12.34
=xlpEXTRACTNUM("-1(2)abc.34") Extract numeric characters from "-1(2)abc.34" -12.34
=xlpEXTRACTNUM("E+~a-!1b@E.c#2d$Ef%-g^5h&E+") Extract numeric characters from "E+~a-!1b@E.c#2d$Ef%-g^5h&E+" -1.2E-5
=xlpEXTRACTNUM("x1.2E5") Extract numeric characters from "x1.2E5". Note, the "E" is not followed by a "+" or "-". 1.25
=xlpEXTRACTNUM(SUBSTITUTE("x1.2E5","E","E+")) Change all occurrences of "E" in "x1.2E5" to "E+", then extract numeric characters. 1.2E+5
=xlpEXTRACTNUM("1.2abc34","a") Extract numeric characters, and also extract "a", from "1.2abc34" 1.2a34
=xlpEXTRACTNUM(A1:B2)
 
  A B
1 12abcde34 b
2 a c
Extract numeric characters, and also extract values in cells A1:B2 (except A1, because the first argument is a range and A1 is the upper-left corner of the range) from the value in cell A1 12abc34
=xlpEXTRACTNUM(B2,"format:currency",A1:A3,B3,B1)
 
  A B
1    
2 format:thousands a-12bc34.56
3   format:negative
Extract numeric characters, and also extract values in cells A1:A3, B3, and B1, from value in cell B2, and formatting with parentheses for negatives, with thousands separators, and with local currency symbol ($1,234.56)
=xlpEXTRACTNUM(B2,"format:currency",A1:A3)
 
  A B
1    
2 format:exponent a-12bc34.56
3    
Extract numeric characters, and also extract values in cells A1:A3 from value in cell B2, and formatting with parentheses for negatives, in exponential notation, and with local currency symbol $1.23456E+3

See Also

xlpEXCLUDE
xlpEXCLUDENOTNUM
xlpEXTRACT