ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   vlookup if not in Table (https://www.excelbanter.com/excel-programming/372214-vlookup-if-not-table.html)

Kanga 85

vlookup if not in Table
 
I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


Dave Peterson

vlookup if not in Table
 
Try doubling up on the double quotes and using =if(iserror(

ActiveCell.Formula = _
"=IF(iserror(VLOOKUP(B2,'LookupTable'!$A$1:$B$100, 1,FALSE)),""""," _
& "IF(G20,(G2-J2)*E2/G2,""""))"

But since you're only checking column A, you could use =if(iserror(match(...)))

ActiveCell.Formula = _
"=IF(iserror(match(B2,'LookupTable'!$A$1:$a$100,0) ),""""," _
& "IF(G20,(G2-J2)*E2/G2,""""))"





Kanga 85 wrote:

I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


--

Dave Peterson

Jim Thomlinson

vlookup if not in Table
 
While I would be more inclined to use a countif to see if your value exists
you can use vlookup. What you want to do is to the the ISNA function to check
the return value something like this...

ActiveCell.Formula =
_"=IF(ISNA(VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1, FALSE)),"",IF(G20,(G2-J2)*E2/G2,""))"

--
HTH...

Jim Thomlinson


"Kanga 85" wrote:

I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


Jim Thomlinson

vlookup if not in Table
 
Sorry as Dave points out you need the double quotes...

ActiveCell.Formula =
_"=IF(ISNA(VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1, FALSE)),"""",IF(G20,(G2-J2)*E2/G2,""""))"

or

ActiveCell.Formula =
_"=IF(CountIf('LookupTable'!$A$1:$B$100,B2)=0,"""" ,IF(G20,(G2-J2)*E2/G2,""""))"
--
HTH...

Jim Thomlinson


"Jim Thomlinson" wrote:

While I would be more inclined to use a countif to see if your value exists
you can use vlookup. What you want to do is to the the ISNA function to check
the return value something like this...

ActiveCell.Formula =
_"=IF(ISNA(VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1, FALSE)),"",IF(G20,(G2-J2)*E2/G2,""))"

--
HTH...

Jim Thomlinson


"Kanga 85" wrote:

I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


Dave Peterson

vlookup if not in Table
 
Watch that =countif() version. You'll only want to look at A1:A100.



Jim Thomlinson wrote:

Sorry as Dave points out you need the double quotes...

ActiveCell.Formula =
_"=IF(ISNA(VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1, FALSE)),"""",IF(G20,(G2-J2)*E2/G2,""""))"

or

ActiveCell.Formula =
_"=IF(CountIf('LookupTable'!$A$1:$B$100,B2)=0,"""" ,IF(G20,(G2-J2)*E2/G2,""""))"
--
HTH...

Jim Thomlinson

"Jim Thomlinson" wrote:

While I would be more inclined to use a countif to see if your value exists
you can use vlookup. What you want to do is to the the ISNA function to check
the return value something like this...

ActiveCell.Formula =
_"=IF(ISNA(VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1, FALSE)),"",IF(G20,(G2-J2)*E2/G2,""))"

--
HTH...

Jim Thomlinson


"Kanga 85" wrote:

I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


--

Dave Peterson

Kanga 85

vlookup if not in Table
 
Thanks Dave and Jim

"Dave Peterson" wrote:

Try doubling up on the double quotes and using =if(iserror(

ActiveCell.Formula = _
"=IF(iserror(VLOOKUP(B2,'LookupTable'!$A$1:$B$100, 1,FALSE)),""""," _
& "IF(G20,(G2-J2)*E2/G2,""""))"

But since you're only checking column A, you could use =if(iserror(match(...)))

ActiveCell.Formula = _
"=IF(iserror(match(B2,'LookupTable'!$A$1:$a$100,0) ),""""," _
& "IF(G20,(G2-J2)*E2/G2,""""))"





Kanga 85 wrote:

I need to lookup a Table to find values, but somtimes my entry is not present
and the function returns '#NA'. In this case I want a blank in column M,
otherwise some function.

The following code does not run and has an error somewhere in the
ActiveCell.Formula.
Thanks for any help.

Range("M2").Select
ActiveCell.Formula =
_"=IF((VLOOKUP(B2,'LookupTable'!$A$1:$B$100,1,FALS E)="#NA"),"",IF(G20,(G2-J2)*E2/G2,""))"
With ActiveSheet
.Range("M2").AutoFill Destination:=Range("M" & lastrow),
Type:=xlFillDefault
End With


--

Dave Peterson



All times are GMT +1. The time now is 11:39 PM.

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