I can't believe I made the same mistake again (corrected in one place but not
the second)... Missed the 0 again...
You have identified the problem...
I should have given you
=INDEX($B$1:$B$20,MATCH(C1,$A$1:$A$20),0)
and not
=INDEX($B$1:$B$20,MATCH(C1,$A$1:$A$20)) as I asked you to do, TWICE :-(
> Sheeloo: your second solution
> =INDEX(B:B,MATCH(C1,A:A,0))
> works fine in Excel 2003
>
> the first solution
> =INDEX($B$1:$B$20,MATCH(C1,$A$1:$A$20))
> has problems with missing matches (it puts a value instead of flagging them
> "#N/A" and maybe also has problems when column A isn't sorted).
>
> "Sheeloo" wrote:
>
> > Peter,
> >
> > I missed the fourth parameter in MATCH...
> >
> > Pl. test with
> >
> > =INDEX($B$1:$B$20,MATCH(C1,$A$1:$A$20))
> >
> > This may also work....
> > =INDEX(B:B,MATCH(C1,A:A,0))
> >
> > You may not need this but this will help someone else...
> >
> > "Peter Stone" wrote:
> >
> > > Both of Jacob's solutions worked (using either the function or the macro).
> > >
> > > Sheeloo's solutions worked sometimes (there were correct replacements mixed
> > > with incorrect repeating replacements).
> > >
> > > Thank you both for taking the time to help.
> > >
> > > Peter
> > >
> > > "Jacob Skaria" wrote:
> > >
> > > > Hi Peter
> > > >
> > > > Solution 1: Using function (This will provide the value in column D)
> > > > Paste this formula in D1...... =VLOOKUP(C1,A$1:B$5,2,FALSE)
> > > > Adjust B$5 to the number of rows you have in column A and B
> > > > Drag the same formula to the other cells in Column D.
> > > >
> > > > Solution 2: Macro. Launch VBE using Alt+F11. On the left treeview, right
> > > > click 'This Workbook' --> Insert--> Module . Paste the below code. Goto
> > > > workbook. Paste your values in column C. Run Macro1 from Tools-->Macro
> > > >
> > > > If this post helps please click Yes
> > > > ---------------
> > > > Jacob Skaria
> > > >
> > > >
> > > > Sub Macro1()
> > > >
> > > > Dim intRowA As Integer
> > > > Dim intRowC As Integer
> > > >
> > > > intRowC = 1
> > > > Do While Range("C" & intRowC) <> ""
> > > > intRowA = 1
> > > > Do While Range("A" & intRowA) <> ""
> > > > If Range("C" & intRowC) = Range("A" & intRowA) Then
> > > > Range("C" & intRowC) = Range("B" & intRowA)
> > > > Exit Do
> > > > End If
> > > > intRowA = intRowA + 1
> > > > Loop
> > > > intRowC = intRowC + 1
> > > > Loop
> > > >
> > > > End Sub
|