From reading the AmpScript Lookup docs and seeing numerous examples online it seems that the logic of a simple AmpScript lookup can be stated thusly: From {This Data Extension} Return {The Value In This Column} Where {The Value In This Column} Is {This Value}. So if I for example have a simple DE

id, first, last, favColor
1, steve, hamaker, green
2, megan, hartman, orange
3, jason, smith, blue

And I do a simple lookup like so

Set @FavColor = Lookup("fav_colors_de","favColor","id","id")

Shouldn't I be able to then use the value within @FavColor within an IF statement?

%%[IF NOT EMPTY (@FavColor) THEN]%%
Your Favorite Color is: %%favColor%%

But the issue is that regardless, I always have an empty value.

1 Answer 1


You need to reference the id variable in your lookup function.

Also, you're outputting a personalization string for favColor not the variable that you're setting in your AMPScript block.

Should be something like this:

var @id, @favColor
set @id = AttributeValue("id")
Set @favColor = Lookup("fav_colors_de","favColor","id", @id)


%%[IF NOT EMPTY (@FavColor) THEN]%%
Your Favorite Color is: %%=v(@favColor)=%%
  • Ah I see! Thanks for the insight - obviously 'id' needs to have a value..otherwise it's not pointing anywhere. Such a simple mistake! Aug 9, 2016 at 19:58

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .