ISNA would be true if there is not a match. and I think thats what you are saying that it does. Am I missing some thing here.
For your first problem, you would need to write a custom function to first get the background color. Search the forum, a function to get the background color has been given out many times