<?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: Lookup value based on rows and columns in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762803#M241548</link>
    <description>Thank you for you answer!&lt;BR /&gt;I want for every entry in table B to lookup the corresponding percentage from table A based on the age (ex: 25) and type of product (ex: PROD_A).&lt;BR /&gt;I cannot do a simple join between the two tables as the value from which column I need to recover depends on the type of product.&lt;BR /&gt;I hope this time is clearer.&lt;BR /&gt;</description>
    <pubDate>Fri, 20 Aug 2021 10:39:05 GMT</pubDate>
    <dc:creator>daniela13</dc:creator>
    <dc:date>2021-08-20T10:39:05Z</dc:date>
    <item>
      <title>Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762799#M241545</link>
      <description>&lt;P&gt;Hi all,&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to recover a value from a different table based on two conditions: age that is stored in one variable and product which is stored in different columns.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;As an example:&lt;/P&gt;&lt;P&gt;I have table A that contains the data below (a lot more values in my actual data base):&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Age&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;18&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0666%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0590%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;19&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0687%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0692%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;20&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0698%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0753%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;21&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0678%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0733%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;22&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0740%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0601%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0740%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0724%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;24&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0700%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0633%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0814%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0643%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;26&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0855%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0685%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;27&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0928%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0716%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;28&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0929%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0727%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;29&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,1023%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0819%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,1117%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0902%&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;And I have another table B where I have the age and product.&amp;nbsp; I want to recover the percentage from table A like this:&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Age&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Prod&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0814%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;29&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;26&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0685%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;18&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;24&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;26&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0685%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;30&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,1117%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;27&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0928%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;19&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0643%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;22&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;23&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0324%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;PROD_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0,0643%&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Do you have any suggestions on how I can do this? I am new to SAS and until now I tried only with join and did not find any solution. I am trying to do this in&amp;nbsp;SAS Enterprise Guide 7.1.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Aug 2021 10:07:34 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762799#M241545</guid>
      <dc:creator>daniela13</dc:creator>
      <dc:date>2021-08-20T10:07:34Z</dc:date>
    </item>
    <item>
      <title>Re: Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762800#M241546</link>
      <description>&lt;P&gt;I would start by transposing the first dataset, so that is in the same form as the second dataset. Then a merge to combine both datasets.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=tab1 out=trans name=Prod;
   by Age;
   var Prod:; /* shifts all variables starting with "Prod" into rows */
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;The code for the merge largely depends on what you expect as result, but i don't understand what you want.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 20 Aug 2021 10:26:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762800#M241546</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-08-20T10:26:03Z</dc:date>
    </item>
    <item>
      <title>Re: Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762803#M241548</link>
      <description>Thank you for you answer!&lt;BR /&gt;I want for every entry in table B to lookup the corresponding percentage from table A based on the age (ex: 25) and type of product (ex: PROD_A).&lt;BR /&gt;I cannot do a simple join between the two tables as the value from which column I need to recover depends on the type of product.&lt;BR /&gt;I hope this time is clearer.&lt;BR /&gt;</description>
      <pubDate>Fri, 20 Aug 2021 10:39:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762803#M241548</guid>
      <dc:creator>daniela13</dc:creator>
      <dc:date>2021-08-20T10:39:05Z</dc:date>
    </item>
    <item>
      <title>Re: Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762807#M241551</link>
      <description>&lt;P&gt;If you performed the PROC TRANSPOSE that was in the code provided by &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/15475"&gt;@andreas_lds&lt;/a&gt; , you should be able to look at the resulting data set and from there try to do the merge.&lt;/P&gt;</description>
      <pubDate>Fri, 20 Aug 2021 11:29:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762807#M241551</guid>
      <dc:creator>PaigeMiller</dc:creator>
      <dc:date>2021-08-20T11:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762873#M241569</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data = tableA out=TableA_LONG (rename = _name_ = PROD) prefix=PERCENT;
by AGE;
var PROD_A PROD_B PROD_C;
run;

proc sort data=tableA_long;
by age prod;
run;

data want;
merge TableB TableA_LONG;
by age prod;
run;

&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;or use a merge on age and VVALUEX function but it returns a character value, not a numeric value.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want;
merge tableA TableB;
by Age;
lookup_value = input(vvaluex(prod), best.);
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 20 Aug 2021 15:59:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/762873#M241569</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2021-08-20T15:59:43Z</dc:date>
    </item>
    <item>
      <title>Re: Lookup value based on rows and columns</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/763518#M241823</link>
      <description>Thank you very much, it helped to get the values I wanted!</description>
      <pubDate>Tue, 24 Aug 2021 14:17:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Lookup-value-based-on-rows-and-columns/m-p/763518#M241823</guid>
      <dc:creator>daniela13</dc:creator>
      <dc:date>2021-08-24T14:17:43Z</dc:date>
    </item>
  </channel>
</rss>

