ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Extracting value froma table (https://www.excelbanter.com/excel-programming/352386-extracting-value-froma-table.html)

KP

Extracting value froma table
 
I have a table with three variables. I need to extract data based on the
value of three variables. For example:

Column 1 Column2 Column3 Column4 and so on...
4 5
10 8 8-0.25 8-0.375
10 12 10-0.25 10-.0375
12 8 9-0.188 9-0.375
12 12 11-0.375 12-0.25

Based on the above data, I would like to extract data when column1 is 10,
column2 is 12 and value in the first row is 5. The answer should be
10-0.375. I have tried index, match and vlookup. They only give answer for
two variables. Please help. Thanks


Toppers

Extracting value froma table
 
Hi,
Try this:

Enter as UDF function - for example put =XMATCH(A3,D1) in a cell for your
example.

From VBA:

MyAns=XMATCH(Range("A3"),Range("D1")

You will need to change DataRng and ColRng to suit your needs.

HTH


Function XMatch(ByVal rng1 As Range, ByVal rng2 As Range) As String

Dim lastrow As Long
Dim v() As Variant
Dim DataRng As Range, ColRng As Range

lastrow = Cells(Rows.Count, "A").End(xlUp).Row
i = 0
For r = 2 To lastrow ' <=== Create data for row matching
ReDim Preserve v(i)
v(i) = Cells(r, 1) & Cells(r, 2)
i = i + 1
Next r

rowVal = rng1.Value & rng1.Offset(0, 1).Value ' <=== Row indices
colVal = rng2.Value ' Column index
Set DataRng = Range("c2:z50") ' Data table
Set ColRng = Range("c1:z1") ' Column Range

If Application.And(Application.Match(rowVal, v, 0),
Application.Match(colVal, Range("C1:Z1"))) Then
XMatch = Application.Index(DataRng, Application.Match(rowVal, v, 0),
Application.Match(colVal, ColRng))
Else
XMatch = "Not found"
End If
End Function"KP" wrote:

I have a table with three variables. I need to extract data based on the
value of three variables. For example:

Column 1 Column2 Column3 Column4 and so on...
4 5
10 8 8-0.25 8-0.375
10 12 10-0.25 10-.0375
12 8 9-0.188 9-0.375
12 12 11-0.375 12-0.25

Based on the above data, I would like to extract data when column1 is 10,
column2 is 12 and value in the first row is 5. The answer should be
10-0.375. I have tried index, match and vlookup. They only give answer for
two variables. Please help. Thanks



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

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