While this seems intuitive. I don't think this will work. From the 'sh-posix' man pages in the parameter substitution discussion you can note: "The shell reads all the characters from ${ to the matching } as part of the same word, even if it contains braces or metacharacters."
One other option you have is to set up associative arrays in awk so that your values are no referenced by numerical values but rather by strings such as "X1","X2","red","Blue".