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!

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

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