captainentropy
Board Regular
- Joined
- Jan 7, 2011
- Messages
- 52
Hi,
I'm out of my league on this one. I have a complicated question. First, I've searched for some time in the boards here with respect to VLOOKUP and partial matches but I've only found answers that partially, or rather, selectively, work.
I have a large table, this one in particular has ~59,000 rows and 15 columns. Not all of the columns are important. But the one that IS important for what I need to do has multiple values in it separated by a delimiter, in this case a bar "|". I have a list (~2000 values long) that I need to check against the table. If a value in the list matches, no problem, I can get it to report that. What I can't figure out how to do is if a value in the list does NOT match I need it to search for the value in the cell with delimited values. Below is an example table:
<table width="386" border="0" cellpadding="0" cellspacing="0"><col style="width: 48pt;" width="64" span="2"> <col style="width: 146pt;" width="194"> <col style="width: 48pt;" width="64"> <tbody><tr style="height: 15pt;" height="20"> <td style="height: 15pt; width: 48pt;" width="64" height="20">
</td> <td class="xl66" style="width: 48pt;" width="64">A</td> <td class="xl66" style="width: 146pt;" width="194">B</td> <td class="xl66" style="width: 48pt;" width="64">C</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">1</td> <td class="xl65">gene1</td> <td class="xl65" style="border-left: medium none;">g1_aka1|g1_aka2|g1_aka3</td> <td class="xl65" style="border-left: medium none;">gene1</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">2</td> <td class="xl65" style="border-top: medium none;">gene2</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g2_aka1|g2_aka2|g2_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene2</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">3</td> <td class="xl65" style="border-top: medium none;">gene3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g3_aka1|g3_aka2|g3_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene3</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">4</td> <td class="xl65" style="border-top: medium none;">gene4</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g4_aka1|g4_aka2|g4_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene4</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">5</td> <td class="xl65" style="border-top: medium none;">gene5</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g5_aka1|g5_aka2|g5_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene5</td> </tr> </tbody></table>
Column B, obviously, is the column with delimited values.
This would be an example list:
<table width="128" border="0" cellpadding="0" cellspacing="0"><col style="width: 48pt;" width="64" span="2"> <tbody><tr style="height: 15pt;" height="20"> <td style="height: 15pt; width: 48pt;" width="64" height="20">
</td> <td class="xl67" style="width: 48pt;" width="64">A</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">9</td> <td class="xl65">gene1</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">10</td> <td class="xl65" style="border-top: medium none;">gene5</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">11</td> <td class="xl65" style="border-top: medium none;">g3_aka2</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">12</td> <td class="xl65" style="border-top: medium none;">gene2</td> </tr> </tbody></table>
So, in the event that the formula I'm using, =IFERROR(VLOOKUP,A9,$A$1:$C$5,1,FALSE),""), returns nothing (such as with "g3_aka2") I want to have another column with some formula where "g3_aka2" is found in column B, and then return the corresponding value in column C - "gene3". Does that make sense? Oh, and the values in the list WILL be in either column A or B. I suppose I could create new columns for each delimited value and then new formulas looking in each of those columns but I'm hoping there is a shorter way. Some of these cells in column B have 15 or more delimited values.
Thanks for any help you can provide
I'm out of my league on this one. I have a complicated question. First, I've searched for some time in the boards here with respect to VLOOKUP and partial matches but I've only found answers that partially, or rather, selectively, work.
I have a large table, this one in particular has ~59,000 rows and 15 columns. Not all of the columns are important. But the one that IS important for what I need to do has multiple values in it separated by a delimiter, in this case a bar "|". I have a list (~2000 values long) that I need to check against the table. If a value in the list matches, no problem, I can get it to report that. What I can't figure out how to do is if a value in the list does NOT match I need it to search for the value in the cell with delimited values. Below is an example table:
<table width="386" border="0" cellpadding="0" cellspacing="0"><col style="width: 48pt;" width="64" span="2"> <col style="width: 146pt;" width="194"> <col style="width: 48pt;" width="64"> <tbody><tr style="height: 15pt;" height="20"> <td style="height: 15pt; width: 48pt;" width="64" height="20">
</td> <td class="xl66" style="width: 48pt;" width="64">A</td> <td class="xl66" style="width: 146pt;" width="194">B</td> <td class="xl66" style="width: 48pt;" width="64">C</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">1</td> <td class="xl65">gene1</td> <td class="xl65" style="border-left: medium none;">g1_aka1|g1_aka2|g1_aka3</td> <td class="xl65" style="border-left: medium none;">gene1</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">2</td> <td class="xl65" style="border-top: medium none;">gene2</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g2_aka1|g2_aka2|g2_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene2</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">3</td> <td class="xl65" style="border-top: medium none;">gene3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g3_aka1|g3_aka2|g3_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene3</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">4</td> <td class="xl65" style="border-top: medium none;">gene4</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g4_aka1|g4_aka2|g4_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene4</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">5</td> <td class="xl65" style="border-top: medium none;">gene5</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">g5_aka1|g5_aka2|g5_aka3</td> <td class="xl65" style="border-top: medium none; border-left: medium none;">gene5</td> </tr> </tbody></table>
Column B, obviously, is the column with delimited values.
This would be an example list:
<table width="128" border="0" cellpadding="0" cellspacing="0"><col style="width: 48pt;" width="64" span="2"> <tbody><tr style="height: 15pt;" height="20"> <td style="height: 15pt; width: 48pt;" width="64" height="20">
</td> <td class="xl67" style="width: 48pt;" width="64">A</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">9</td> <td class="xl65">gene1</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">10</td> <td class="xl65" style="border-top: medium none;">gene5</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">11</td> <td class="xl65" style="border-top: medium none;">g3_aka2</td> </tr> <tr style="height: 15pt;" height="20"> <td class="xl66" style="height: 15pt;" height="20">12</td> <td class="xl65" style="border-top: medium none;">gene2</td> </tr> </tbody></table>
So, in the event that the formula I'm using, =IFERROR(VLOOKUP,A9,$A$1:$C$5,1,FALSE),""), returns nothing (such as with "g3_aka2") I want to have another column with some formula where "g3_aka2" is found in column B, and then return the corresponding value in column C - "gene3". Does that make sense? Oh, and the values in the list WILL be in either column A or B. I suppose I could create new columns for each delimited value and then new formulas looking in each of those columns but I'm hoping there is a shorter way. Some of these cells in column B have 15 or more delimited values.
Thanks for any help you can provide