ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   vlookup/match to find column name (https://www.excelbanter.com/excel-worksheet-functions/187907-vlookup-match-find-column-name.html)

sailingHLA

vlookup/match to find column name
 
I'm a little stuck. I have a table with gene names as column headers and
patient samples as the row headers. In our lab testing, each patient sample
will have at least one (many times more) genes that have a numerical value
associated with it. For example, sample A987 may have a result in the table
under gene A, gene D and gene L. All other cells for which a patient does
not have a sepcific gene is blank. I need to find a function that can look
at the table in the row for sample A987 and tell me which genes the patient
has (i.e. the column headers of gene A, gene B, etc.). If it is possible to
have each gene listed as a value in one cell all in the same column, that
would be great. Thanks in advance for any help.

daddylonglegs

vlookup/match to find column name
 
How many headers do you have? You could string together a series of IF
functions, one for each column, to do what you want, e.g. if headers are in
B1:F1 then use this formula in row 2 copied down

=TRIM(IF(B2<"",B$1&" ","")&IF(C2<"",C$1&" ","")&IF(D2<"",D$1&"
","")&IF(E2<"",E$1&" ","")&IF(F2<"",F$1&" ",""))

Of course it will get a little long if you have many headers....

Excel doesn't have a native function to concatenate an array so, without
VBA, your only other option, for a shorter formula, would be to use MCONCAT
function from morefunc add-in and then you could use this formula

=TRIM(MCONCAT(IF(B2:F2<"",B$1:F$1&" ","")))

confirmed with CTRL+SHIFT+ENTER

Of course, this can be more easily extended to cater for a large header range

Here's a link for morefunc;

http://xcell05.free.fr/english/



"sailingHLA" wrote:

I'm a little stuck. I have a table with gene names as column headers and
patient samples as the row headers. In our lab testing, each patient sample
will have at least one (many times more) genes that have a numerical value
associated with it. For example, sample A987 may have a result in the table
under gene A, gene D and gene L. All other cells for which a patient does
not have a sepcific gene is blank. I need to find a function that can look
at the table in the row for sample A987 and tell me which genes the patient
has (i.e. the column headers of gene A, gene B, etc.). If it is possible to
have each gene listed as a value in one cell all in the same column, that
would be great. Thanks in advance for any help.


Jim Cone[_2_]

vlookup/match to find column name
 
Or add this code to a standard module.
Then use it by entering this function "=WhichOnes()" in the column immediately
to the right of your data. It assumes the column headings are in Row 1.

'-------- code starts here
Function WhichOnes() As String
'Jim Cone - Portland Oregon - May 2008
On Error GoTo NoOne
Dim N As Long
Dim C As Long
Dim rCell As Range
Dim rCaller As Range
Dim strList As String

Application.Volatile
Set rCaller = Application.Caller
N = rCaller.Row
C = rCaller.Column - 1
If C < 2 Then
WhichOnes = "Wrong Column"
Else
For Each rCell In Range(Cells(N, 2), Cells(N, C))
If Len(rCell) Then
strList = strList & " " & rCell.Offset(-N + 1, 0).Value
End If
Next
WhichOnes = strList
End If
Set rCell = Nothing
Set rCaller = Nothing
Exit Function

NoOne:
WhichOnes = "Error " & Err.Number
End Function
'-------- code ends here

Jim Cone
Portland, Oregon USA
http://www.realezsites.com/bus/primitivesoftware
(Excel Add-ins / Excel Programming)





"sailingHLA"

wrote in message
I'm a little stuck. I have a table with gene names as column headers and
patient samples as the row headers. In our lab testing, each patient sample
will have at least one (many times more) genes that have a numerical value
associated with it. For example, sample A987 may have a result in the table
under gene A, gene D and gene L. All other cells for which a patient does
not have a sepcific gene is blank. I need to find a function that can look
at the table in the row for sample A987 and tell me which genes the patient
has (i.e. the column headers of gene A, gene B, etc.). If it is possible to
have each gene listed as a value in one cell all in the same column, that
would be great. Thanks in advance for any help.


All times are GMT +1. The time now is 07:07 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com