<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: PROC Export to EXCEL preserves a fake space in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969313#M376829</link>
    <description>&lt;P&gt;Hi:&lt;/P&gt;&lt;P&gt;&amp;nbsp; If this is a new behavior when you change operating systems/editors to create the SAS data, then this is probably an issue you want to raise with SAS Tech Support. They would need to look at all your code and understand the previous operating system/editor versus the current operating system/editor to explain why the difference occurs. You can always open a case with SAS Tech Support by sending mail to &lt;A href="mailto:support@sas.com" target="_blank"&gt;support@sas.com&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Cynthia&lt;/P&gt;</description>
    <pubDate>Wed, 18 Jun 2025 14:21:55 GMT</pubDate>
    <dc:creator>Cynthia_sas</dc:creator>
    <dc:date>2025-06-18T14:21:55Z</dc:date>
    <item>
      <title>PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969219#M376793</link>
      <description>&lt;P&gt;Using SAS Studio&amp;nbsp;&lt;STRONG&gt;Datapool issue Detail:&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Create a SAS data sets with a few variables containing nulls.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Export to excel&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;download to local drive&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;explore the nulls with =isblank(T2)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;result is FALSE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;click on cell T2 and then in the box displaying null value&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;then click in any other cell. NOTE: did not touch the keyboard. ie did not change the value of cell T2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;result changes to TRUE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The result is always TRUE when running the same process not in SAS Studio.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Question: What settings need to change in SAS Studio to make SAS / excel behave when using SAS / Excel outside SAS Studio ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PC SAS and SAS in DCJ environment pose no issue. The issue exists only in SAS Studio&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I did try three reruns of the code with each change&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1. COMPRESS fnt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2. STRIP fnt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3. OPTIONS MISSING='';&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;All outputs had the same result of a 'fake' blank in the cell T2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NOTE: Using notdp&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 17:31:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969219#M376793</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-17T17:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969220#M376794</link>
      <description>&lt;P&gt;Can you clarify what is the issue exactly?&amp;nbsp; I assume ISBLANK() is some EXCEL function?&amp;nbsp; What does it test?&amp;nbsp; Does it test if the cell is EMPTY or if the only characters it has a spaces?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is the variable in question NUMERIC or CHARACTER?&amp;nbsp; If CHARACTER what value does it have in the SAS dataset?&amp;nbsp; Is it completely filled with spaces? or does it have some other invisible code, like a TAB or a LINEFEED or "non-breaking" space?&amp;nbsp; If NUMERIC does the variable have a FORMAT attached to it?&amp;nbsp; And what is the setting for the MISSING= option when you run the "export"?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What exactly do you mean by EXPORT.&amp;nbsp; Did you run PROC EXPORT?&amp;nbsp; If so what value did you use for the DBMS= option of the PROC EXPORT statement?&amp;nbsp; If not then what exactly did you do to export the dataset?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And what the two environments you are using.&amp;nbsp; What is the version of SAS that you are using? You see the version you can check the value of SYSVLONG automatic macro variable.&amp;nbsp; Other than SAS/Studio are you using some other interface to run SAS code in the other environment?&amp;nbsp; Are you running with SAS Display Manager?&amp;nbsp; Enterprise Guide? Something else?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;What is a DCJ environment?&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 18:13:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969220#M376794</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-06-17T18:13:07Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969221#M376795</link>
      <description>&lt;P&gt;PROC EXPORT to excel appears to insert a blank when the SAS value is null.&amp;nbsp; &amp;nbsp;You can test this by using the excel isblank function.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using PC SAS, a null value in the SAS dataset results in a null value in the excel.&amp;nbsp; Using SAS Studio, it results in a blank in excel.&amp;nbsp; Our down stream users of our report can not accept blanks ... only nulls&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 18:18:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969221#M376795</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-17T18:18:58Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969222#M376796</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/303405"&gt;@terryeastman&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;PROC EXPORT to excel appears to insert a blank when the SAS value is null.&amp;nbsp; &amp;nbsp;You can test this by using the excel isblank function.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Using PC SAS, a null value in the SAS dataset results in a null value in the excel.&amp;nbsp; Using SAS Studio, it results in a blank in excel.&amp;nbsp; Our down stream users of our report can not accept blanks ... only nulls&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I will try to translate.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By "NULL" you mean that the SAS character variable only contains spaces. SAS character variables are fixed length and padded with spaces, so they are never "null".&amp;nbsp; SAS numeric variables can have 28 different missing values.&amp;nbsp; The normal missing value, represented by a single period in SAS code could be considered kind of like a "null" value.&amp;nbsp; The other 27 special missing values, represented by in code by a period followed by a single letter or underscore, might also be considered "null" for some operations.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;By "NULL" you mean the cell in EXCEL is completely empty.&amp;nbsp; And the ISBLANK() function in Excel is not testing if the value in the cell only has blanks, but instead is testing if the cell is empty.&amp;nbsp;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you use PROC EXPORT with DBMS=XLSX then character variables that only contain spaces are set to an empty string in EXCEL.&amp;nbsp; Numeric variables with a missing value are set to an empty cell.&amp;nbsp; So the ISBLANK() function will return TRUE for the numeric variable and FALSE for the character variable.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Perhaps the reason you are seeing different results on the two different systems is because in one case the SAS variable was NUMERIC and in the other it as CHARACTER.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can test if the value is empty in EXCEL by comparing it to the string created by typing two double quote characters next to each other.&amp;nbsp; This will work for values created from both numeric and character variables.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;For example to check if the second cell in the second column is empty you could use:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;=IF(B2="",TRUE,FALSE)&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 18:58:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969222#M376796</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-06-17T18:58:40Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969228#M376801</link>
      <description>&lt;P&gt;DATA TEST;&lt;/P&gt;&lt;P&gt;&amp;nbsp; do x=1 to 100;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; y='';&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;PROC EXPORT DATA=test&amp;nbsp; DBMS=xls&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; outfile="o:\SAS_file.xls";&lt;/P&gt;&lt;P&gt;RUN;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The result should show column y as 100 null values in Excel&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;using isblank excel function, the result is FALSE.&amp;nbsp; It should be TRUE&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A comment from the MLE support team was ...&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Cursory examination says its possible that the SAS export or the change of environment (Linux Vs. Windows) means the cell is loading with an empty string instead of true empty until interacted with.&lt;BR /&gt;However this is a question regarding SAS export behavior on Linux Vs Windows, and would better be put to SAS support. Trzaskos, Janel J We have a community hub with SAS for such questions, correct?&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;P&gt;Terry&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 19:59:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969228#M376801</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-17T19:59:18Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969254#M376802</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;&lt;P&gt;&amp;nbsp; If you run PROC CONTENTS, you should see that the variable Y has been defined as &lt;U&gt;&lt;STRONG&gt;character&lt;/STRONG&gt;&lt;/U&gt; with a length of 1 byte. SAS represents missing values for a &lt;U&gt;&lt;STRONG&gt;character&lt;/STRONG&gt;&lt;/U&gt; variable as a space. This is essentially what your assignment statement is telling SAS to assign to the value for Y.&lt;/P&gt;&lt;P&gt;&amp;nbsp; Just because your assignment statement has&lt;/P&gt;&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;y='' (with the 2 quotes next to each other),&lt;/STRONG&gt;&lt;/FONT&gt; in your program it is the same as if you had used&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;y=' '; (quote space quote). &lt;/FONT&gt;&lt;/STRONG&gt;&lt;FONT face="courier new,courier"&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;Either way the stored value for Y is a missing value -- or space for the character variable.&amp;nbsp;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; That should create Y as a character value with a length of 1. So when the data is exported to Excel, the space character is what fills the cell. You call it a "false space" but in fact, it is a real space and your code assigned the space to Y.&lt;/P&gt;&lt;P&gt;Cynthia&lt;/P&gt;</description>
      <pubDate>Tue, 17 Jun 2025 21:48:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969254#M376802</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2025-06-17T21:48:50Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969263#M376805</link>
      <description>&lt;P&gt;Why are you making an XLS file instead of the standard XLSX file format?&amp;nbsp; Note that creating an XLS file instead of an XLSX file does not change how EXCEL handles the blank cells generated from character values that only contain spaces.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why did you use this statement in your SAS code?&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;y='';&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;That is poor coding style as it will confuse novice SAS programmers that are trying to understand what it is doing.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Since you did not tell the data step what type of variable Y should be, nor what storage length it should have, the data step compiler will GUESS that it should be character with a length of&amp;nbsp; one byte.&amp;nbsp; Since SAS character values are fixed length and padded with spaces it will be much clearer to show that space in the SAS code.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;y=' ';&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;What/who is the "MLE support team'?&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jun 2025 03:00:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969263#M376805</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-06-18T03:00:53Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969266#M376806</link>
      <description>Yes. There is a white blank in T2 column. So you would got FALSE .&lt;BR /&gt;If you need TRUE, try :&lt;BR /&gt;=IF(LEN(TRIM(T2))=0, TRUE, FALSE)</description>
      <pubDate>Wed, 18 Jun 2025 03:48:54 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969266#M376806</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2025-06-18T03:48:54Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969301#M376821</link>
      <description>&lt;P&gt;This was a simple example of the true data step.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jun 2025 12:43:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969301#M376821</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-18T12:43:10Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969303#M376823</link>
      <description>The actual data step has been in use for nearly 2 decades. The issue of the stored results in excel only started as we move to SAS Studio / MLE</description>
      <pubDate>Wed, 18 Jun 2025 12:44:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969303#M376823</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-18T12:44:51Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969304#M376824</link>
      <description>&lt;P&gt;The issue stems from the downstream user of our output no longer able to use it (after 2 decades of non-issue) b/c SAS Studio / MLE either populates excel differently or, as an MLE support person suggested, there may be an issue when transferring the excel output out of MLE / SAS Studio&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jun 2025 12:47:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969304#M376824</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-18T12:47:58Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969313#M376829</link>
      <description>&lt;P&gt;Hi:&lt;/P&gt;&lt;P&gt;&amp;nbsp; If this is a new behavior when you change operating systems/editors to create the SAS data, then this is probably an issue you want to raise with SAS Tech Support. They would need to look at all your code and understand the previous operating system/editor versus the current operating system/editor to explain why the difference occurs. You can always open a case with SAS Tech Support by sending mail to &lt;A href="mailto:support@sas.com" target="_blank"&gt;support@sas.com&lt;/A&gt;&amp;nbsp;.&lt;/P&gt;&lt;P&gt;Cynthia&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jun 2025 14:21:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969313#M376829</guid>
      <dc:creator>Cynthia_sas</dc:creator>
      <dc:date>2025-06-18T14:21:55Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969314#M376830</link>
      <description>&lt;P&gt;Thank you.&amp;nbsp; I started that too.&lt;/P&gt;</description>
      <pubDate>Wed, 18 Jun 2025 14:25:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969314#M376830</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-18T14:25:32Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969342#M376833</link>
      <description>I think it has nothing to do with sas.&lt;BR /&gt;In sas, a blank means missing value of character variable, unlike Excel or other DataBase which could have a special character NULL/NA to represent the missing value . So you can't apply isBlank() or isNull() into sas data.</description>
      <pubDate>Thu, 19 Jun 2025 00:54:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969342#M376833</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2025-06-19T00:54:55Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969360#M376837</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/303405"&gt;@terryeastman&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I've used Proc Export to create a .xlsx (not .xls).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I can replicate what you describe and for me it happens both in a Linux and Windows environment using SAS EG.&lt;/P&gt;
&lt;P&gt;I don't believe that it has anything to do with "PC SAS" or SAS Studio but with the version of SAS and potentially Microsoft Excel components (if SAS uses them at all for creation of the xlsx) where you execute your code.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If I look into the cell value itself then it's NULL (not a single blank) but function isnull(&amp;lt;cell&amp;gt;) returns FALSE. Once I click into the cell and then into the pane where I would type formulas and then into another cell the value changes to TRUE.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In my test case if I compare the xml of the sheet before and after these actions then I can see that it changed - the highlighted bit got removed. No clue what this means.&lt;/P&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1750331131181.png" style="width: 400px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/107902iAE05DF1A456D5B05/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Patrick_0-1750331131181.png" alt="Patrick_0-1750331131181.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Using Shift + F9 to recalculate all formulas in the active sheet had no impact. The result of isnull(&amp;lt;cell&amp;gt;) remains FALSE even though there is not even a blank in the cell.&lt;/P&gt;
&lt;P&gt;What did return the expected result what using formula&amp;nbsp;LEN(&amp;lt;cell&amp;gt;)=0&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I suggest you take this up with SAS Tech Support. Don't expect a speedy resolution though as it's likely something in the bowels of SAS or Microsoft.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;In the meantime the workaround using&amp;nbsp;LEN(&amp;lt;cell&amp;gt;)=0 instead of&amp;nbsp;isnull(&amp;lt;cell&amp;gt;) should get you going.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;From what I understand the "fake space" is not an actual blank but the observed issue is due to the generated xml that makes the isnull() function return the wrong result.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 19 Jun 2025 11:45:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969360#M376837</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2025-06-19T11:45:41Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969372#M376838</link>
      <description>&lt;P&gt;Interesting, I googled a bit of that XML block, and google's AI came back with below.&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQAQ" data-processed="true"&gt;In the context of the XML structure of an Excel file (which is in the Open XML format, essentially a zipped collection of XML files), the code snippet&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;c r="A3" t="s"&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;represents a cell within a worksheet.&lt;SPAN class="" data-wiz-rootname="ohfaMd" data-processed="true"&gt;&lt;SPAN class="vKEkVd" data-animation-atomic="" data-processed="true"&gt;&amp;nbsp;&lt;BUTTON class="rBl3me" tabindex="0" data-amic="true" data-icl-uuid="d47c5fb0-9c1e-4421-b162-f9b0c1ec3797" aria-label="View related links" data-ved="2ahUKEwj_y8L0vv2NAxWMF1kFHTZLFpYQye0OegQIABAC" data-processed="true"&gt;&lt;/BUTTON&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQAw" data-processed="true"&gt;Here's a breakdown:&lt;/DIV&gt;
&lt;UL class="U6u95" data-processed="true"&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;c&amp;gt;&lt;/CODE&gt;:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;This is the XML tag representing a cell.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;r="A3"&lt;/CODE&gt;:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;This attribute specifies the cell's location or reference, which is "A3" in this case.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;t="s"&lt;/CODE&gt;:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;This attribute indicates the data type of the cell's value. The value "s" signifies that the cell contains a&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;EM class="eujQNb" data-processed="true"&gt;shared string&lt;/EM&gt;.&lt;/SPAN&gt;&lt;SPAN class="" data-wiz-rootname="ohfaMd" data-processed="true"&gt;&lt;SPAN class="vKEkVd" data-animation-atomic="" data-processed="true"&gt;&amp;nbsp;&lt;BUTTON class="rBl3me" tabindex="0" data-amic="true" data-icl-uuid="90a48330-e23f-4f41-879b-b93937f375d1" aria-label="View related links" data-ved="2ahUKEwj_y8L0vv2NAxWMF1kFHTZLFpYQye0OegQIABAF" data-processed="true"&gt;&lt;/BUTTON&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQBg" data-processed="true"&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;Shared String Table:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQCA" data-processed="true"&gt;When the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;t&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;attribute is set to "s", the actual text content of the cell is not stored directly within the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;c&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;element. Instead, the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;v&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;element inside the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;c&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;element will contain an index that refers to an entry in the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;Shared String Table&lt;/STRONG&gt;.&lt;SPAN class="" data-wiz-rootname="ohfaMd" data-processed="true"&gt;&lt;SPAN class="vKEkVd" data-animation-atomic="" data-processed="true"&gt;&amp;nbsp;&lt;BUTTON class="rBl3me" tabindex="0" data-amic="true" data-icl-uuid="68c7493c-2a42-4ab8-bf32-8aa894115c39" aria-label="View related links" data-ved="2ahUKEwj_y8L0vv2NAxWMF1kFHTZLFpYQye0OegQIABAJ" data-processed="true"&gt;&lt;/BUTTON&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQCg" data-processed="true"&gt;The Shared String Table is a separate part of the Excel XML file, typically found in a file named&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;xl/sharedStrings.xml&lt;/CODE&gt;. It's a space-saving optimization where duplicate strings are stored only once and referenced by multiple cells. This means that multiple cells containing the same text can all point to the same entry in the Shared String Table, reducing file size.&lt;SPAN class="" data-wiz-rootname="ohfaMd" data-processed="true"&gt;&lt;SPAN class="vKEkVd" data-animation-atomic="" data-processed="true"&gt;&amp;nbsp;&lt;BUTTON class="rBl3me" tabindex="0" data-amic="true" data-icl-uuid="19eab040-3781-408f-b12d-3023dafc4785" aria-label="View related links" data-ved="2ahUKEwj_y8L0vv2NAxWMF1kFHTZLFpYQye0OegQIABAL" data-processed="true"&gt;&lt;/BUTTON&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/DIV&gt;
&lt;DIV class="Y3BBE" data-hveid="CAAQDA" data-processed="true"&gt;&lt;STRONG class="Yjhzub" data-processed="true"&gt;In summary,&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;c r="A3" t="s"&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;tells us:&lt;/STRONG&gt;&lt;/DIV&gt;
&lt;UL class="U6u95" data-processed="true"&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;This is a cell.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;Its location is A3.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI data-processed="true"&gt;&lt;SPAN class="T286Pc" data-processed="true"&gt;It contains a string, and its value is stored in the Shared String Table, referenced by an index within the&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;CODE class="o8j0Mc" data-processed="true"&gt;&amp;lt;v&amp;gt;&lt;/CODE&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;element.&lt;/SPAN&gt;&lt;SPAN class="" data-wiz-rootname="ohfaMd" data-processed="true"&gt;&lt;SPAN class="vKEkVd" data-animation-atomic="" data-processed="true"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/UL&gt;</description>
      <pubDate>Thu, 19 Jun 2025 12:35:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969372#M376838</guid>
      <dc:creator>Quentin</dc:creator>
      <dc:date>2025-06-19T12:35:19Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969375#M376840</link>
      <description>&lt;P&gt;Thank you&lt;/P&gt;</description>
      <pubDate>Thu, 19 Jun 2025 13:05:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969375#M376840</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-19T13:05:42Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969532#M376864</link>
      <description>&lt;P&gt;The core issue appears to be populating Excel with a LIBNAME statement vs PROC EXPORT.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LIBNAME treats a NULL as a NULL.&amp;nbsp; PROC EXPORT introduces a fake blank.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Using a LIBNAME in MLE allows for only an XLSX extension (I'm waiting for MLE support to see is XLS is in any way available besides PROC EXPORT where it fails the test).&amp;nbsp; Our downstream users insist on an XLS report.&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In a perfect world,&amp;nbsp;in SAS Studio MLE, we would use&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;LIBNAME rbretail pcfiles path=''&amp;amp;transformations_macro_var";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;In our non SAS Studio code we have need using the following for over 15 yrs &amp;nbsp; LIBNAME rbretail pcfiles path="&amp;amp;PATHOUT\rb_retail_B3R.xls";&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;They will not accept xlsx.&lt;/P&gt;</description>
      <pubDate>Mon, 23 Jun 2025 12:59:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969532#M376864</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-23T12:59:57Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969534#M376865</link>
      <description>&lt;P&gt;That is not the situation you asking about in your original post.&amp;nbsp; So now your question makes more sense.&lt;/P&gt;
&lt;P&gt;You have not actually been using PROC EXPORT before and then had it change its behavior.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Instead you have been using a SAS PCFILES server to use EXCEL to create the XLS file.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;To see what has changed you need to check what servers you are using to run the PCFILES server process and what version of EXCEL is running on those server.&amp;nbsp; Has something changed there?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is there some reason you cannot use the PCFILES libref engine with your MLE sessions?&amp;nbsp; Does it not allow you to define your own librefs?&lt;/P&gt;</description>
      <pubDate>Mon, 23 Jun 2025 13:44:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969534#M376865</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2025-06-23T13:44:36Z</dc:date>
    </item>
    <item>
      <title>Re: PROC Export to EXCEL preserves a fake space</title>
      <link>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969601#M376889</link>
      <description>&lt;P&gt;You're right.&amp;nbsp; That wasn't the situation of my original post.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It appears SAS procedures do not work the same as a LIBNAME statement when interacting with EXCEL.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;BOTH PROC EXPORT and PROC DBLOAD generate fake blanks regardless of the server environment - PC SAS, UNIX, SAS Studio.&amp;nbsp; &amp;nbsp;LIBNAME preserves a true null w/o turning it into a fake blank.&amp;nbsp; I tested and confirmed this.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regretfully, we can not use a LIBNAME statement in SAS / MLE&amp;nbsp; b/c the enduser insists on an XLS extension.&amp;nbsp; MLE was designed such that PCFILES is not an option.&amp;nbsp; Only XLSX extensions are possible with a LIBNAME statement in MLE.&amp;nbsp; Confirmed with MLE support.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 24 Jun 2025 13:59:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/PROC-Export-to-EXCEL-preserves-a-fake-space/m-p/969601#M376889</guid>
      <dc:creator>terryeastman</dc:creator>
      <dc:date>2025-06-24T13:59:29Z</dc:date>
    </item>
  </channel>
</rss>

