<?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: Format variable values based on values in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430466#M106399</link>
    <description>&lt;P&gt;A variable can have just one format.&amp;nbsp; The best you can do is to create a new variable, based on the existing data.&amp;nbsp; For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;select (name);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; when ('A') amount2 = put(amount, comma9.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; when ('Acat1') amount2 = put(amount, dollar15.2);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ... more WHEN statements for the remaining cases ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; otherwise;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's up to you to select the proper formats for each WHEN statement.&lt;/P&gt;</description>
    <pubDate>Wed, 24 Jan 2018 14:58:58 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2018-01-24T14:58:58Z</dc:date>
    <item>
      <title>Format variable values based on values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430447#M106394</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Need help to apply formats to SAS variables.&lt;/P&gt;&lt;P&gt;Below is the scenario.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have table structure as below.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Name&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Amount&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;A&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;&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;4568442&lt;BR /&gt;&amp;nbsp;Acat1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;628727452.17&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 819125592.25&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9491576104.14&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat4&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;221336147.01&lt;BR /&gt;&amp;nbsp;Aset1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2026005&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Aset2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1247890 &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need&amp;nbsp;Output as below. Needs to apply multiple formats to the input data based on variable value.&lt;/P&gt;&lt;P&gt;Could you please help me how to achieve same.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Name&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Amount&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;A&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;&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;4,568,442&lt;BR /&gt;&amp;nbsp;Acat1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$628,727,452.17&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $819,125,592.25&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat3&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; $9,491,576,104.14&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Acat4&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$221,336,147.01&lt;BR /&gt;&amp;nbsp;Aset1&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;2,026,005&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Aset2&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1,247,890&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2018 14:33:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430447#M106394</guid>
      <dc:creator>Banu</dc:creator>
      <dc:date>2018-01-24T14:33:27Z</dc:date>
    </item>
    <item>
      <title>Re: Format variable values based on values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430466#M106399</link>
      <description>&lt;P&gt;A variable can have just one format.&amp;nbsp; The best you can do is to create a new variable, based on the existing data.&amp;nbsp; For example:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data want;&lt;/P&gt;
&lt;P&gt;set have;&lt;/P&gt;
&lt;P&gt;select (name);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; when ('A') amount2 = put(amount, comma9.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; when ('Acat1') amount2 = put(amount, dollar15.2);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; ... more WHEN statements for the remaining cases ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; otherwise;&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's up to you to select the proper formats for each WHEN statement.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2018 14:58:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430466#M106399</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2018-01-24T14:58:58Z</dc:date>
    </item>
    <item>
      <title>Re: Format variable values based on values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430469#M106400</link>
      <description>&lt;P&gt;You can create custom formats that apply different appearance for ranges of values.&lt;/P&gt;
&lt;P&gt;However if&amp;nbsp;you mean the format has to change according to another variable, such as your Name variable,&amp;nbsp;that is not possible. Is that what you are attempting?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can create a text variable that is created conditional on the value of your name value such as&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;length newvar $ 16;&lt;/P&gt;
&lt;P&gt;if name in ('Acat1' 'Acat2' 'Acat3' 'Acat4') then newvar=put(value,dollar16.2);&lt;/P&gt;
&lt;P&gt;else if name in ('Aset1' 'Aset2') then newvar = put(value,comma10.);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Though if the "Amount" value actually has different meanings such as Acat are "Sales in dollars" and Aset are "numbers sold" they really should be different variables and then the format issue would be trivial.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2018 15:02:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430469#M106400</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-01-24T15:02:38Z</dc:date>
    </item>
    <item>
      <title>Re: Format variable values based on values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430477#M106404</link>
      <description>&lt;P&gt;It is not possible to attach multiple formats to one variable. If you don't need the actual number in later calculations, you could use something like:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data work.narf;
   length Name $ 10 Amount 8 NumFormatted $ 40;

   input Name $ Amount;

   NumFormatted = left(putn(Amount, ifc(index(put(Amount, best.), '.') &amp;gt; 0, 'dollar15.2', 'comma15.')));

datalines;
 A 4568442
 Acat1 628727452.17 
 Acat2 819125592.25 
 Acat3 9491576104.14 
 Acat4 221336147.01
 Aset1 2026005 
 Aset2 1247890
 ;
 run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Edit: Assuming the&amp;nbsp; dollar-format should be used on values having decimals, and comma-format for values without decimals.&lt;/P&gt;</description>
      <pubDate>Wed, 24 Jan 2018 15:13:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430477#M106404</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2018-01-24T15:13:58Z</dc:date>
    </item>
    <item>
      <title>Re: Format variable values based on values</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430837#M106506</link>
      <description>&lt;P&gt;Thank you Andrea for your info.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now I have the required data in SAS dataset. Then&amp;nbsp;I tried to generate excel sheet by using ODS tagsets excelxp,&lt;/P&gt;&lt;P&gt;excel sheet contains only Dollar values(like $1,234,976.10) but comma formatted values are vanished(as 123456).&lt;/P&gt;&lt;P&gt;I need both Dollar formatted and Comma formatted values in excel sheet by using ODS TAGSETS.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Current data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;39,442,499&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$828,727,452.17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$519,125,592.25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$1,491,576,104.14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;421,336,147&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Once I use odstagsets excelxp. got output as below. But need output as above. Need both dollar formatted values and comma formatted values in my excel sheet. Please help me.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;39442499&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$828,727,452.17&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$519,125,592.25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;$1,491,576,104.14&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;421336147&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Thu, 25 Jan 2018 09:57:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Format-variable-values-based-on-values/m-p/430837#M106506</guid>
      <dc:creator>Banu</dc:creator>
      <dc:date>2018-01-25T09:57:32Z</dc:date>
    </item>
  </channel>
</rss>

