Hi Lorna,
You can do this with a simple label expression, see attached for my quick attempt:
Prints location name as first line
Then checks to see if sample1 is populated, if it finds data, posts a red fish
Then checks to see if sample2 is populated, if it finds data, posts a green fish
Then checks to see if sample3 is populated, if it finds data, posts a blue fish
The following assumes loc_name, sample1, sample2 and sample3 exist and are text fields in your data
You'll need to add a text field called txt_char to your attribute table and populate it with capital D (this corresponds to a fish symbol in the ESRI Conservation font)
In Layer Properties, goto the Labels tab and click on Expression
Tick Advanced
Delete default code in Expression window and paste all the following, OK, OK:
Function FindLabel ([loc_name],[sample1],[sample2],[sample3],[txt_char])
Dim strInput
strInput = [loc_name]
if [sample1] <> " " then
strInput = strInput & vbnewline & "<FNT name='ESRI Conservation'>" & "<CLR cyan='0' magenta='100' yellow='100' black='0'>" & [txt_char] & "</CLR>" & "</FNT>"
end if
if [sample2] <> " " then
strInput = strInput & vbnewline & "<FNT name='ESRI Conservation'>" & "<CLR cyan='100' magenta='0' yellow='100' black='0'>" & [txt_char] & "</CLR>" & "</FNT>"
end if
if [sample3] <> " " then
strInput = strInput & vbnewline & "<FNT name='ESRI Conservation'>" & "<CLR cyan='100' magenta='100' yellow='0' black='0'>" & [txt_char] & "</CLR>" & "</FNT>"
end if
FindLabel = strInput
End Function
Hope this helps,
Dave