Excel INDEX and MATCH Get Value

柔情痞子 提交于 2019-12-12 20:42:00

问题


I have an excel workbook that I need some help with INDEX and MATCH or any other Formula that can get me my end result.

Here is sheet1:

SIT_ID      METER   SUSE_CD
10834282    DT0061      B 
10834282    AW7931      P 
21676286    CQ9635      P 
21676286    DP4838      B 
21726281    AW7880      P 
21726281    DT0032      B 

Here is Sheet2:

Site ID        B    P
10834282        
21676286        
21726281        

Ultimately what I am trying to do is on Sheet2 is put the Meter that = B for the SITEID in the column and then Put the Meter that = P in the Same row.

I have never used Index or Match and I looked it up online but I am confused and hoping someone can help me with the correct formula or point me in the right direction.

Thanks so much!


回答1:


INDEX first takes a range, then a row number, an optional column number (and an optional area number).

MATCH takes a value to lookup, an array and a mode.

In your problem you can use the following in Sheet2 cell B2:

=INDEX(Sheet1!$B$2:$B$7, MATCH($A2, IF(Sheet1!$C$2:$C$7=B$1,Sheet1!$A$2:$A$7), 0))

This formula is an array formula and will work with Ctrl+Shift+Enter and then you can fill it to the other cells.

I had to use an IF because there're two conditions to check.

EDIT: Use this one if your cell formats are different:

=INDEX(Sheet1!$B$2:$B$7,MATCH($A2*1,IF(Sheet1!$C$2:$C$7=B$1,Sheet1!$A$2:$A$7*1),0))

EDIT2: Adding trimming:

=INDEX(Sheet1!$B$2:$B$7,MATCH($A2*1,IF(TRIM(Sheet1!$C$2:$C$7)=TRIM(B$1),Sheet1!$A$2:$A$7*1),0))

EDIT3: If you're using it on your full data, change the range:

=INDEX(Sheet1!$B:$B,MATCH($A2*1,IF(TRIM(Sheet1!$C:$C)=TRIM(B$1),Sheet1!$A:$A*1),0))



回答2:


Assuming your Sheet1 looks like this:

And your Sheet2 looks like this:

The formula in Sheet2 cell B2 and copied over and down to cell C4 is:

=INDEX(Sheet1!$B$2:$B$7,MATCH(1,INDEX((Sheet1!$A$2:$A$7=$A2)*(Sheet1!$C$2:$C$7=B$1),),0))

Note that this is a regular formula, so no need for Ctrl+Shift+Enter




回答3:


A helper column D is added to initial columns.
D2: =$A2 & $C2

Now it's possible to make a simple search of the concatenated SITE_ID and SUSE_CD:
H2: =MATCH($G2&" B";$D$2:$D$8;0)

The result would be a row number (=1 in this case) for the needed string in array $D$2:$D$8.

INDEX shows the value of the cell, found by counting n-th row (defined by MATCH) and m-th column (=2) in array $A2:$A$8 from the upper left cell (A2).

Altogether: =INDEX($A$2:$B$8;MATCH($G2&" B";$D$2:$D$8;0);2)




回答4:


The easiest way to get around with this is, to use concatenation operator in the match function.

Don't forget to use Ctrl+Shift+Enter

Use below formula in column B of Sheet 2

{=INDEX(Sheet1!$B:$B,MATCH(Sheet2!$A2&Sheet2!$B$1,Sheet1!$A:$A&Sheet1!$C:$C,0))}

And the below formula in column C of Sheet 2

{=INDEX(Sheet1!$B:$B,MATCH(Sheet2!$A2&Sheet2!$C$1,Sheet1!$A:$A&Sheet1!$C:$C,0))}

And then flash fill the remaining rows.



来源:https://stackoverflow.com/questions/18857548/excel-index-and-match-get-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!