<?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: Processing multiple rows and columns per observation in New SAS User</title>
    <link>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554870#M9585</link>
    <description>&lt;P&gt;I was attempting to explain the rules using an example but clearly that didn't do it&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The ranks are pre-defined. Table 1 shows transactions for a given month (Jan 2019). Table 2 has payments received in subsequent months (Feb-April 2019), these payments should be applied each month&amp;nbsp;to the balances in Table 1 but in the order of the rank specified.&lt;/P&gt;&lt;P&gt;So, in this example, payment amounts received should offset the balances in column TxnTypeA first, and within that column, in the order of increasing rank. Once all of TxnTypeA has been paid off, then the same logic should be followed on the next column TxnTypeB, again in the order of the rank specified.&lt;/P&gt;&lt;P&gt;Thanks for your help in advance!&lt;/P&gt;</description>
    <pubDate>Mon, 29 Apr 2019 21:55:07 GMT</pubDate>
    <dc:creator>PS185</dc:creator>
    <dc:date>2019-04-29T21:55:07Z</dc:date>
    <item>
      <title>Processing multiple rows and columns per observation</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554790#M9568</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have 2 input data sets shown below&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Table 1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Acct&lt;/TD&gt;&lt;TD&gt;Rank&lt;/TD&gt;&lt;TD&gt;TxnTypeA&lt;/TD&gt;&lt;TD&gt;TxnTypeB&lt;/TD&gt;&lt;TD&gt;TxnTypeC&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jan 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;70&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jan 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jan 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;40&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Table 2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Date&lt;/TD&gt;&lt;TD&gt;Acct&lt;/TD&gt;&lt;TD&gt;Amt&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Feb 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;April 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;300&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The Amt value from table 2 should be used to reduce each of the TxnTypeA/TxnTypeB/TxnTypeC amounts in the order of the Rank specified.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For example the 50 from Feb in table 2 should first reduce the 70 from table 1. In this case the result is table 3 as follows. I have also shown how the subsequent amounts of 50 and 300 from table 2 will update the values in table 1.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Output Table 3&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Acct&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;Rank&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;TxnTypeA&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;TxnTypeB&lt;/STRONG&gt;&lt;/TD&gt;&lt;TD&gt;&lt;STRONG&gt;TxnTypeC&lt;/STRONG&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Feb 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;70-50=20&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Feb 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Feb 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;40&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;20-20=0&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;100-30=70&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;40&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;10-10=0&lt;/TD&gt;&lt;TD&gt;50-50=0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;70-70=0&lt;/TD&gt;&lt;TD&gt;50-50=0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;March 1 2018&lt;/TD&gt;&lt;TD&gt;123&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;30-30=0&lt;/TD&gt;&lt;TD&gt;10-10=0&lt;/TD&gt;&lt;TD&gt;40-40=0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The example above is for illustration, I have more columns and many accounts. I was thinking of using arrays but I am not sure how to process the above. Would be glad for any suggestions that the community has, thanks!&lt;/P&gt;</description>
      <pubDate>Mon, 29 Apr 2019 17:44:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554790#M9568</guid>
      <dc:creator>PS185</dc:creator>
      <dc:date>2019-04-29T17:44:20Z</dc:date>
    </item>
    <item>
      <title>Re: Processing multiple rows and columns per observation</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554865#M9584</link>
      <description>&lt;P&gt;You need explain the rules much better.&lt;/P&gt;
&lt;P&gt;When/Why do you move from RANK=1 to RANK=2 etc.?&amp;nbsp; When/Why do you move from first column to second column?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Also what do the dates mean? Are they important?&lt;/P&gt;</description>
      <pubDate>Mon, 29 Apr 2019 21:46:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554865#M9584</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2019-04-29T21:46:03Z</dc:date>
    </item>
    <item>
      <title>Re: Processing multiple rows and columns per observation</title>
      <link>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554870#M9585</link>
      <description>&lt;P&gt;I was attempting to explain the rules using an example but clearly that didn't do it&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The ranks are pre-defined. Table 1 shows transactions for a given month (Jan 2019). Table 2 has payments received in subsequent months (Feb-April 2019), these payments should be applied each month&amp;nbsp;to the balances in Table 1 but in the order of the rank specified.&lt;/P&gt;&lt;P&gt;So, in this example, payment amounts received should offset the balances in column TxnTypeA first, and within that column, in the order of increasing rank. Once all of TxnTypeA has been paid off, then the same logic should be followed on the next column TxnTypeB, again in the order of the rank specified.&lt;/P&gt;&lt;P&gt;Thanks for your help in advance!&lt;/P&gt;</description>
      <pubDate>Mon, 29 Apr 2019 21:55:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/New-SAS-User/Processing-multiple-rows-and-columns-per-observation/m-p/554870#M9585</guid>
      <dc:creator>PS185</dc:creator>
      <dc:date>2019-04-29T21:55:07Z</dc:date>
    </item>
  </channel>
</rss>

