BookmarkSubscribeRSS Feed
RVA
Fluorite | Level 6 RVA
Fluorite | Level 6

I wanted to export formulas from SAS to Excel, using ODS EXCEL.  However, the Excel file did not recognize the formulas.  It showed the formulas instead of the calculated numbers.  Does anyone know how to fix the problem?  Thank you.

Below are the codes I used.  (You can run them if you have SAS 9.4.)

-------------------------------------------

proc sql;

create table cars as

select distinct make, model, msrp, invoice

from sashelp.cars

where make = 'Audi'

; quit;

data cars_b; set cars;

row_num + 1;

if first.make then row_num = 1;

row_num_b = strip(put(sum(row_num,4),8.));

diff = '='||'C'||row_num_b||'-'||'D'||row_num_b;

diff_b = compress(diff);

run;

options missing      = ' '

papersize    = letter

topmargin    = 0.5 in

leftmargin   = 0.5 in

rightmargin  = 0.5 in

bottommargin = 1.0 in

;

ods excel

file = 'I:\1 Academic Affairs\Faculty\1 Salary\FERIP\ODS EXCEL (test)\diff_in_prices.xlsx'

style = normal

options (

embedded_titles        = 'yes'

embedded_footnotes     = 'yes'

print_footer           = ' '

center_horizontal      = 'yes'

absolute_column_width  = '8,30,12,12,12'

fittopage              = 'no'

pages_fitheight        = '100'

orientation            = 'portrait'

row_repeat             = '3-5'

sheet_interval         = 'none'    

sheet_name             = 'Diff'

merge_titles_footnotes = 'yes'

title_footnote_width   = ' '

);

title1 'XXX';

title2 'Difference in Price';

proc print data = cars_b label NOOBS;

var make model msrp invoice diff_b;

label diff_b = 'Difference';

run;

footnote;

ods excel close;

6 REPLIES 6
Reeza
Super User

Have you tried adding in formulas='yes' to the options?

Its in Tagsets.excelxp but not sure about ODS Excel

EDIT: According to page 18 it's still valid - http://support.sas.com/resources/papers/proceedings14/SAS177-2014.pdf

RVA
Fluorite | Level 6 RVA
Fluorite | Level 6

I just added formulas = 'yes' to the options, but it still did not work.

Reeza
Super User

I think you need to use RC format not A# format.

Base SAS: Demo: ExcelXP Tagset and Microsoft Excel

RVA
Fluorite | Level 6 RVA
Fluorite | Level 6

Thank you Reeza.  I used ods excelxp tagset (instead of ods excel) and RC format.  It worked now.  This is my next problem: I wanted to format the calculated column, using the dollar format.  However, SAS did not accept it as I was trying to use a numeric format to a character column.  Do you have any solutions for this?  Many thanks!

proc print data = cars_b label NOOBS;

format diff_b dollar9.;

var make model msrp invoice diff_b;

label diff_b = 'Difference';

run;

ERROR: You are trying to use the numeric format DOLLAR with the character variable diff_b in data set WORK.CARS_B.

SASKiwi
PROC Star

You need to add an Excel-style format not a SAS one as it is applied once the formula is calculated in Excel:

var diff_b style=[textalign=right tagattr="format:$#,##0.00"];

RVA
Fluorite | Level 6 RVA
Fluorite | Level 6

Thank you!

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 3264 views
  • 0 likes
  • 3 in conversation