My co-worker,
Naveen, had a requirement for a document that would load some financial data from
a file that a client had sent to us. The client had created the file with a “screen
scraping” type of application that captured the number fields as edited numeric
text. For example, a field might contain ($3,046.10) So, that example includes a dollar sign, comma
as a thousands separator, period as a decimal point, and parenthesis to
indicate a negative number or credit.
Naveen needed
to load the data as a number. Here’s how it was done:
We used two
functions. A Num# function converted the text string into a dual field
containing both a text portion and a numeric portion. Then, an outer Num function
extracted just the numeric portion. For example, one of the number fields was
named AUG. In the loadscript, the line that converted the edited number into a
simple numeric field looked like this:
Num(Num#(AUG, '$#,##0;($#,##0)'))
The edit
string or format code, the part within the single quotes, can vary depending on your
requirement. The edit string I used in the example is a good one for the kind
of editing you might find in a financial spreadsheet.
Here's a few other examples of edited number text and how it looks after using this expression:
AUG
|
Num(Num#(AUGUST,'$#,##0;($#,##0)'))
|
$0
|
0
|
$1
|
1
|
$1,251
|
1251
|
$1,465
|
1465
|
$1,466
|
1466
|
$3,724
|
3724
|
$4,158
|
4158
|
($11)
|
-11
|
($132)
|
-132
|
($2)
|
-2
|
($4)
|
-4
|
What now?
|
(this is a
null)
|
19
|
19
|
25.12
|
25.12
|
25.1234
|
25.1234
|
25.3
|
25.3
|
2,070
|
2070
|
★★★