<?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: Find the nearest match that could add up to zero in the same column in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436747#M282184</link>
    <description>&lt;P&gt;You are missing some details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your output has&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;2000Q2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;2000Q3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why aren't any of the other quarters for AA 2000 included?&lt;/P&gt;
&lt;P&gt;why isn't&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;Matched to&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2001&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;where the&amp;nbsp;sum would be exactly 0?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There appear to be several other limitations that you have not described.&lt;/P&gt;</description>
    <pubDate>Tue, 13 Feb 2018 15:26:40 GMT</pubDate>
    <dc:creator>ballardw</dc:creator>
    <dc:date>2018-02-13T15:26:40Z</dc:date>
    <item>
      <title>Find the nearest match that could add up to zero in the same column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436662#M282183</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My question is how to find the nearest match in the same column. Please see the following for a quick illustration.&amp;nbsp;I am new to SAS programming, and only have a preliminary guess that proc sql might do the work. What I am doing now is manually adjusting - it is painful and especially so for over 3,000 observations.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Firm&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Quarter&lt;/TD&gt;&lt;TD&gt;Value&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;-50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;-50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;150&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to find the nearest "Value" match that could add up to zero. For example, for firm AA in 1st quarter 2000, I want to&amp;nbsp;match the nearest two numbers that could add up to 100. I don't want the 50 for firm AA in 2002Q2 nor firm BB 2000Q4. In addition, I also struggle with the case for firm BB, and have no idea how to perform the matching: the two negative numbers add up to -200, the two positive numbers add up to +200, and they maybe in same or different years. To help you understand better, please find the following table for&amp;nbsp;what I&amp;nbsp;have in mind at the end of the day:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Firm&lt;/TD&gt;&lt;TD&gt;Year&lt;/TD&gt;&lt;TD&gt;Quarter&lt;/TD&gt;&lt;TD&gt;Value&lt;/TD&gt;&lt;TD&gt;Value_matched&lt;/TD&gt;&lt;TD&gt;YQ_matched&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;2000Q2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2000&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;2000Q3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;-50&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;2001Q3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;-50&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;2001Q3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-150&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;2002Q2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AA&lt;/TD&gt;&lt;TD&gt;2002&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-150&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;2002Q4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;TD&gt;50&lt;/TD&gt;&lt;TD&gt;2000Q4&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BB&lt;/TD&gt;&lt;TD&gt;2001&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;-100&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;2001Q1&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;For the BB case, it can be 2001Q3 "-100" matched to "50" in 2000Q4, it is also fine if it matches to "100" in 2001Q1 - the order doesn't matter. Thanks in advance! Any help is really appreciated!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Michael&lt;/P&gt;</description>
      <pubDate>Tue, 13 Feb 2018 12:17:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436662#M282183</guid>
      <dc:creator>yliu315</dc:creator>
      <dc:date>2018-02-13T12:17:01Z</dc:date>
    </item>
    <item>
      <title>Re: Find the nearest match that could add up to zero in the same column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436747#M282184</link>
      <description>&lt;P&gt;You are missing some details.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Your output has&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;2000Q2&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;TD&gt;50&lt;/TD&gt;
&lt;TD&gt;2000Q3&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why aren't any of the other quarters for AA 2000 included?&lt;/P&gt;
&lt;P&gt;why isn't&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2000&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;-100&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;Matched to&lt;/P&gt;
&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD&gt;AA&lt;/TD&gt;
&lt;TD&gt;2001&lt;/TD&gt;
&lt;TD&gt;3&lt;/TD&gt;
&lt;TD&gt;100&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;where the&amp;nbsp;sum would be exactly 0?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;There appear to be several other limitations that you have not described.&lt;/P&gt;</description>
      <pubDate>Tue, 13 Feb 2018 15:26:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436747#M282184</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-02-13T15:26:40Z</dc:date>
    </item>
    <item>
      <title>Re: Find the nearest match that could add up to zero in the same column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436790#M282185</link>
      <description>&lt;P&gt;Sorry for the confusion. Let me explain:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;The one you posted is not a match for me because I would like "nearest" match. By "nearest", I mean within +/- two quarters for a given firm, so 2000Q1 shouldn't be related to 2001Q3 - but your idea is exactly right, the following should also be a valid match (which is missing&amp;nbsp;from the original post)&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2001 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-50 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2002Q1&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AA &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2001 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;-50 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;50 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;2002Q2&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Another clarification is about the case of firm BB - they don't have common entry as the other matches.&amp;nbsp;The reason I post it here is that I have no idea how I should deal with such case, and any ideas would be extremely appreciated. The original data is about cash flows - a story would be that I earn 50 in 2000Q4 and 100 in 2001Q1, and I spent 100 each in 2001Q3 and 2001Q4. I manually checked and the data is consistent with my story.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Feb 2018 17:27:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Find-the-nearest-match-that-could-add-up-to-zero-in-the-same/m-p/436790#M282185</guid>
      <dc:creator>yliu315</dc:creator>
      <dc:date>2018-02-13T17:27:42Z</dc:date>
    </item>
  </channel>
</rss>

